资源简介
用遗传算法优化对LSTM网络的层数及每层的神经元数进行优化,包括一个LSTM程序和一个GA程序,运行时只运行GA.py即可。

代码片段和文件信息
import tensorflow as tf
import tensorflow.keras as keras
from tensorflow.keras import models layers optimizers
import matplotlib.pyplot as plt
import numpy as np
# 定义LSTM层函数
def create_lstm(inputs units return_sequences):
lstm = layers.Bidirectional(layers.LSTM(units return_sequences=return_sequences))(inputs)
return lstm
# 定义Dense层函数
def create_dense(inputs units):
dense = layers.Dense(units kernel_regularizer=keras.regularizers.l2(0.001) activation=‘relu‘)(inputs)
dense_dropout = layers.Dropout(0.2)(dense)
dense_batch = layers.BatchNormalization()(dense_dropout)
return dense dense_dropout dense_batch
def load():
# Mnist数据集加载
(x_train y_train) (x_test y_test) = keras.datasets.mnist.load_data()
# Mnist数据集简单归一化
x_train x_test = x_train / 255.0 x_test / 255.0
print(‘Load finished!‘)
return x_train y_train x_test y_test
def classify(x_train y_train x_test y_test num):
# 设置LSTM层参数
lstm_num_layers = num[0]
lstm_units = num[2: 2 + lstm_num_layers]
lstm_name = list(np.zeros((lstm_num_layers)))
# 设置LSTM_Dense层参数
lstm_dense_num_layers = num[1]
lstm_dense_units = num[2 + lstm_num_layers: 2 + lstm_num_layers + lstm_dense_num_layers]
lstm_dense_name = list(np.zeros((lstm_dense_num_layers)))
lstm_dense_dropout_name = list(np.zeros((lstm_dense_num_layers)))
lstm_dense_batch_name = list(np.zeros((lstm_dense_num_layers)))
inputs_lstm = layers.Input(shape=(x_train.shape[1] x_train.shape[2]))
for i in range(lstm_num_layers):
if i == 0:
inputs = inputs_lstm
else:
inputs = lstm_name[i - 1]
if i == lstm_num_layers - 1:
return_sequences = False
else:
return_sequences = True
lstm_name[i] = create_lstm(inputs lstm_units[i] return_sequences)
for i in range(lstm_dense_num_layers):
if i == 0:
inputs = lstm_name[lstm_num_layers - 1]
else:
inputs = lstm_dense_batch_name[i - 1]
lstm_dense_name[i] lstm_dense_dropout_name[i] lstm_dense_batch_name[i] = create_dense(inputs
lstm_dense_units[i])
outputs_lstm = layers.Dense(10 activation=‘softmax‘)(lstm_dense_batch_name[lstm_dense_num_layers - 1])
LSTM_model = keras.Model(inputs_lstm outputs_lstm)
LSTM_model.compile(optimizer=keras.optimizers.Adam()
loss=‘sparse_categorical_crossentropy‘
metrics=[‘accuracy‘])
history = LSTM_model.fit(x_train y_train batch_size=32 epochs=1 validation_split=0.1 verbose=0)
print(‘LSTM finished!‘)
# 验证模型:
results = LSTM_model.evaluate(x_test y_test verbose=0)
return results[1]
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 2980 2020-03-04 18:22 deep_learning.py
文件 2655 2020-03-04 18:15 GA.py
相关资源
- QGA 量子遗传算法
- 基于遗传算法的排课系统
- 遗传算法的M文件
- 遗传算法PPT(Genetic_Algorithms.ppt)
- 遗传算法的堆石料非线性本构模型参
- 遗传算法越野小车unity5.5
- 车间布局遗传算法
- 基于双向LSTM+tensorflow中文分词
- 遗传算法论文11篇
- 基于遗传算法的立体车库车位调度研
- 遗传算法解决TSP旅行商问题程序开源
- 基于GA-ELM的瓦斯涌出量预测
- 5种多旅行商问题(MTSP)的遗传算法
- 人工智能和遗传算法的结合推荐必读
- 遗传算法0-1背包问题论文
- 改进的k_均值聚类排挤小生境遗传算法
- 深度学习框架下LSTM网络在短期电力负
- 基于遗传优化的无刷直流电机模糊控
- 用RNN与LSTM网络原理进行唐诗生成.ta
- GA+ICP代码
- 计算智能大作业合集
- 遗传算法与工程优化_玄光男_程润伟
- NSGA和NSGAII算法
- LSTMandRNN.zip
- 群体智能.ppt
- Qt写的遗传算法加画图程序
- 遗传算法优化支持向量机算法
- 天池大数据竞赛LSTM预测算法分享
- 遗传算法原理及应用--选择交叉变异算
- 使用神经网络与遗传算法的小游戏
评论
共有 条评论