【问题标题】:How to run several times a model in tensorflow?如何在tensorflow中多次运行模型?
【发布时间】:2018-12-30 23:26:21
【问题描述】:
我想对一个文件 ConvNet.py 进行多次训练,以便生成一些关于其训练的统计数据,例如精度、混淆矩阵等。所以,我尝试(在 google colab 中)做类似的事情
for k in range(10:
%run ConvNet.py
第一次训练很顺利,但是当第二次开始时,出现了问题。它说“weights 变量已经定义,不允许”(weights 是我在 ConvNet.py 中定义的第一个变量)并且脚本停止。
我尝试用 os kill 清除变量,但还是有问题。我该如何解决这个问题?
【问题讨论】:
标签:
python
tensorflow
google-colaboratory
【解决方案1】:
如果您直接在 Python 中进行迭代训练可能会更好。
您没有分享太多关于您的设置的信息,但您可以执行以下操作:
import tensorflow as tf
mnist = tf.keras.datasets.mnist
(x_train, y_train), (x_test, y_test) = mnist.load_data()
def build_model():
model = tf.keras.models.Sequential()
model.add(tf.keras.layers.Flatten(input_shape=(28,28,)))
model.add(tf.keras.layers.Dense(32, activation="relu"))
model.add(tf.keras.layers.Dense(10, activation="sigmoid"))
model.compile(optimizer=tf.train.AdamOptimizer(),
loss='sparse_categorical_crossentropy',
metrics=['accuracy'])
return model
for i in range(10):
model = build_model()
model.fit(x_train, y_train)
model.save_weights(f"./weights-{i}.hdf5")
当你想进行分析时:
for i in range(10):
model = build_model()
model.load_weights(f"./weights-{i}.hdf5")
do_analysis(model)