如何在张量流中多次运行模型?

时间:2018-12-30 23:26:21

标签: python tensorflow google-colaboratory

我想对文件ConvNet.py进行几次训练,以便生成有关其训练的一些统计信息,例如精度,混淆矩阵等。因此,我尝试(在Google colab中)做类似的事情

for k in range(10:
    %run ConvNet.py

第一次训练进行得很好,但是在第二次训练开始时就出现了问题。它说“ weights变量已被定义,不允许使用”(weights是我在ConvNet.py中定义的第一变量),脚本停止了。

我尝试用os kill清除变量,但是仍然存在问题。我该如何解决?

1 个答案:

答案 0 :(得分:0)

如果直接用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)