资源简介
基于python3.6实现的,Keras相关资源:LSTM预测模型训练,IMDB数据加载,国际旅行人数预测,IMDB影评分类预测,数据标准化,模型保存到本地,从本地加载训练好的模型,plt图形绘制,以及IMDB数据和国际旅行人数数据包。
代码片段和文件信息
from keras.models import Sequential
from keras.layers import Dense
from keras.optimizers import SGD
from keras.layers import Dropout
from keras.wrappers.scikit_learn import KerasClassifier
from sklearn.model_selection import cross_val_score
from sklearn.model_selection import KFold
from keras.callbacks import LearningRateScheduler
from sklearn import datasets
import numpy as np
# 设定随机数种子
seed=7
np.random.seed(seed)
# 导入数据
dataset = np.loadtxt(‘pima-indians-diabetes.csv‘ delimiter=‘‘)
# 分割输入x和输出Y
x = dataset[: 0 : 8]#数据
y = dataset[: 8]#标签
def Createfisrt_model(xy):
“““输入数据训练模型并返回“““
# 创建模型
model = Sequential()
model.add(Dense(16 input_dim=8 activation=‘relu‘))#第一层隐藏元12个
model.add(Dense(8 activation=‘relu‘))#第二层隐藏元8个
model.add(Dense(1 activation=‘sigmoid‘))#输出层一个神经元
# 编译模型
model.compile(loss=‘binary_crossentropy‘ optimizer=‘adam‘ metrics=[‘accuracy‘])
# 训练模型
model.fit(x=x y=y epochs=150 batch_size=10 validation_split=0.2)
# 评估模型
scores = model.evaluate(x=x y=y verbose=0)
print(‘\n%s : %.2f%%‘ % (model.metrics_names[1] scores[1]*100))
return model
def get_model(filename=‘model‘choosemodel=‘json‘):
“““
载入训练好的模型json
:param filename:模型名
:return: model:返回模型
“““
if choosemodel==‘json‘:
from keras.models import model_from_json
model = model_from_json(open(filename+‘.json‘).read())
model.load_weights(filename+‘.h5‘)
model.compile(loss=‘binary_crossentropy‘ optimizer=‘adam‘ metrics=[‘accuracy‘])
print(“Get json model!“)
return model
elif choosemodel==‘yaml‘:
from keras.models import model_from_yaml
model=model_from_yaml(open(filename+‘.yaml‘).read())
model.load_weights(filename+‘.h5‘)
model.compile(loss=‘binary_crossentropy‘ optimizer=‘adam‘ metrics=[‘accuracy‘])
print(“Get yaml model!“)
return model
def save_model(modelfilename=‘model‘choosemodel=‘json‘):
“““
保存训练好的模型json
:param model: 传入模型
:param filename: 保存模型名
:return: None
“““
if choosemodel==‘json‘:
json_string = model.to_json()
open(filename+‘.json‘‘w‘).write(json_string)
model.save_weights(filename+‘.h5‘ overwrite=True)
print(“Save json model!“)
elif choosemodel==‘yaml‘:
yaml_string=model.to_yaml()
open(filename+‘.yaml‘‘w‘).write(yaml_string)
model.save_weights(filename+‘.h5‘overwrite=True)
print(“Save yaml model!“)
def plt_model(historyhistorylist=[‘val_loss‘‘val_acc‘‘loss‘‘acc‘]):
“““
绘制model的相关参数准确度和损失的训练梯度走势
:param history: 传入model.fit()
:param historylist: history.history.keys()的参数数组
:return: 绘制显示结果
“““
# print(history.history.keys())#可以通过打印查看historylist的值
from matplotlib import pyplot as plt
def pltshow(modeltestval_modeltest):
plt.plot(history.history[modeltest])
plt.plot(history.history[val_modeltest])
plt.title(‘model‘+
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 17464789 2018-12-04 20:34 LSTM\imdb.npz
文件 1898 2018-12-05 19:26 LSTM\international-airline-passengers.csv
文件 7115 2018-12-04 19:43 LSTM\Keras基础.py
文件 8230 2018-12-06 17:14 LSTM\LSTM_Forecast.py
文件 7600 2018-12-06 21:04 LSTM\LSTM_imdb_nn.py
目录 0 2018-12-06 21:22 LSTM
----------- --------- ---------- ----- ----
17489632 6
评论
共有 条评论