1つのpythonアプリケーションでmodel.fit()と並列化されたいくつかの異なるモデルを訓練したいと思います。使用されているモデルは共通して必要なものを持っていませんが、異なる時間に1つのアプリケーションで起動されます。テンソルフロー/ケラスでのマルチスレッド
まず、別のスレッドで問題なく、メインスレッドから1つのmodel.fit()を起動します。
start_learn(self:)
tf_session = K.get_session() # this creates a new session since one doesn't exist already.
tf_graph = tf.get_default_graph()
keras_learn_thread.Learn(learning_data, model, self.env_cont, tf_session, tf_graph)
learning_results.start()
:
Exception in thread Thread-1:
tensorflow.python.framework.errors_impl.InvalidArgumentError: Node 'hidden_1/BiasAdd': Unknown input node 'hidden_1/MatMul'
彼らは両方のコードの同じ行でメソッドから始めるされています。私は今)は、第2のmodel.fitを(起動したい場合は、私は、次のエラーメッセージが表示されます目と呼ばれるクラス/メソッドは、次のようになります。
def run(self):
tf_session = self.tf_session # take that from __init__()
tf_graph = self.tf_graph # take that from __init__()
with tf_session.as_default():
with tf_graph.as_default():
self.learn(self.learning_data, self.model, self.env_cont)
# now my learn method where model.fit() is located is being started
は私が何とか新しいtf_sessionと各シングルスレッドのための新しいtf_graphを割り当てることがあると思います。しかし、私はそれについてはあまりよく分かりません。私はこれであまりにも長い間座っているので、私はすべての短いアイデアについて嬉しいです。
おかげ