资源简介
用遗传算法优化对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
相关资源
- 使用遗传算法PID整定寻优 代码和仿真
- Ansys遗传算法优化
- 遗传算法两基因度与多基因度
- 基于遗传算法的阵列天线赋形波束综
- 多目标优化遗传算法实现
- 遗传算法的各种应用含源码
- PID参数整定 遗传算法
- 二维多重背包问题及基于遗传算法的
- sheffield_gatbx工具箱
- CVRP问题遗传算法实现
- 这里运用了鲸鱼算法和遗传算法的结
- RAGA_PPC投影程序
- Long Short-term Memory
- 基于遗传算法的任务分配与调度
- 基于遗传算法优化的模糊控制仿真研
- 遗传算法优化BP神经网络权值和阈值
- 基于遗传算法的SVM方法
- 遗传算法求TSP问题
- 遗传算法最优保留
- 遗传算法 NSGA II
- 实值编码遗传算法源程序.txt
- 遗传算法用于机械臂运动规划
- 整数规划问题的遗传算法
- NSGA-III代码
- 基于遗传算法的控制系统的系统辨识
- keras tensorflow lstm 多变量序列的预测
- 结合遗传算法优化BP神经网络的结构和
- 基于遗传算法的机组组合
- 基于遗传算法的作业车间调度优化
- 遗传算法解决TSP问题全
评论
共有 条评论