将两个模型保存在两个不同的文件夹中

时间:2019-07-04 14:52:07

标签: python-3.x tensorflow keras

我在python程序中使用了两个不同的神经网络顺序模型。

一个这样定义的RNN模型:

import tensorflow as tf
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import LSTM, Dense, CuDNNLSTM

ModelRNN = Sequential()

ModelRNN.add(CuDNNLSTM(150, return_sequences=True, batch_size=None, input_shape=(None,10)))
ModelRNN.add(CuDNNLSTM(150, return_sequences=True))
ModelRNN.add(Dense(100, activation='relu'))
ModelRNN.add(Dense(10, activation='relu'))
optimizer = tf.keras.optimizers.Adam(lr=0.001)

ModelRNN.compile(loss='mean_squared_error', optimizer=optimizer, metrics=['accuracy'])

这样定义一个密集模型:

ModelDense = Sequential()

ModelDense.add(Dense(380, batch_size=None, input_shape=(1,380), activation='elu'))
ModelDense.add(Dense(380, activation='elu'))
ModelDense.add(Dense(380, activation='elu'))
ModelDense.add(Dense(380, activation='elu'))
optimizer = tf.keras.optimizers.Adam(lr=0.00025)

ModelDense.compile(loss='mean_squared_error', optimizer=optimizer, metrics=['accuracy'])

所以我的问题是两个网络将一起工作,所以我必须在同一个tensorflow会话中运行它们两个,但我想将它们保存在两个不同的文件夹中。 我真的不知道是否有可能,因为我根本对运行tensorflow图完全不感兴趣,而且我只知道当我使用tensorflow saver时,我只会将会话和路径作为参数。

所以我的问题是如何将模型的存储空间分开放在两个文件夹中?

  

我想要这样做是因为我希望能够轻松更改我的RNN,而不必重新训练我的两个网络或不必覆盖我训练有素的RNN

如果我不清楚,请询问我更多详细信息

1 个答案:

答案 0 :(得分:2)

  

所以我的问题是如何将模型的存储分为两个   文件夹?

Keras模型的save方法接受文件路径,因此可以为各个模型指定不同的文件夹。

ModelRNN.save('folder1/<filename.h5>')
ModelDense.save('folder2/<filename.h5>')

https://www.tensorflow.org/tutorials/keras/save_and_restore_models#save_the_entire_model