Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/tensorflow/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Tensorflow 在一个脚本中训练多个Keras模型_Tensorflow_Keras - Fatal编程技术网

Tensorflow 在一个脚本中训练多个Keras模型

Tensorflow 在一个脚本中训练多个Keras模型,tensorflow,keras,Tensorflow,Keras,我想在一个队列中训练不同的Keras模型(或者在某些情况下只是对同一模型进行多次运行以比较结果)(如果需要的话,使用TensorFlow作为后端)。在我当前的设置中,我在一个大型python脚本中创建并适应所有这些模型,例如(以简化的方式): create\u model(i)函数为i的第次运行创建特定的模型。例如,这包括更改输入/标签的数量。每次运行的编译函数也可能不同(例如,不同的优化器) 虽然这段代码对我有效,我没有发现任何问题,但我不清楚这是否是正确的方法,因为所有模型都位于同一张Ten

我想在一个队列中训练不同的Keras模型(或者在某些情况下只是对同一模型进行多次运行以比较结果)(如果需要的话,使用TensorFlow作为后端)。在我当前的设置中,我在一个大型python脚本中创建并适应所有这些模型,例如(以简化的方式):

create\u model(i)
函数为
i
的第次运行创建特定的模型。例如,这包括更改输入/标签的数量。每次运行的编译函数也可能不同(例如,不同的优化器)

虽然这段代码对我有效,我没有发现任何问题,但我不清楚这是否是正确的方法,因为所有模型都位于同一张TensorFlow图中(如果我正确理解Keras/TensorFlow的工作方式)。我的问题是:

  • 这是运行多个独立模型的正确方法吗。(我不希望
    I
    第次运行对
    I+1
    第次运行产生任何影响)
  • 从技术上讲,从不同的python脚本(在本例中为model1.py、model2.py、…model9.py)运行模型是否更好(这里我不是指可读性/可再现性),因为每个模型都有自己单独的TensorFlow图/会话
  • 在这种情况下,如果在save函数之后运行(
    for
    循环中的
    some\u函数to\u save\u model()
    ),则通过
    keras.backend.clear\u Session()
    清除会话/删除图表是否有任何影响?与当前设置相比,这在某种程度上是否有益
  • 再次重申:如果所有模型都集中在一个脚本中,而不是每个模型一个脚本,那么我不关心由于创建混乱的代码而可能出现的问题,而只是单独创建和训练模型

    不幸的是,我没有找到一个简洁的答案(只有使用这两种方法的建议)。也许这里有人能启发我

    编辑:也许我应该更精确一些。基本上,我想就以下三种情况的差异(优点和缺点)进行技术解释:

  • 创建_和_train.py:

    for i in range(10):
        model = create_model(i)
        model.compile(...)
        model.fit(...)
        some_function_to_save_model(model)
    
    for i in range(10):
        model = create_model(i)
        model.compile(...)
        model.fit(...)
        some_function_to_save_model(model)
        # clear session:
        keras.backend.clear_session()
    
  • 创建_和_train.py:

    for i in range(10):
        model = create_model(i)
        model.compile(...)
        model.fit(...)
        some_function_to_save_model(model)
    
    for i in range(10):
        model = create_model(i)
        model.compile(...)
        model.fit(...)
        some_function_to_save_model(model)
        # clear session:
        keras.backend.clear_session()
    
  • 使用[0,1,…,9]中的i创建_和_train_i.py:

    i = 5 # (e.g.)
    model = create_model(i)
    model.compile(...)
    model.fit(...)
    some_function_to_save_model(model)
    
    例如,一个bash脚本循环通过这些