【问题标题】: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)
    

    【讨论】:

      猜你喜欢
      • 2020-03-19
      • 1970-01-01
      • 2016-04-05
      • 2020-09-19
      • 1970-01-01
      • 2019-11-17
      • 1970-01-01
      • 2019-06-15
      • 2018-05-20
      相关资源
      最近更新 更多