Tôi muốn đào tạo một số mô hình khác nhau với model.fit() song song trong một ứng dụng python. Các mô hình được sử dụng không có một điểm chung nào đó, chúng được bắt đầu trong một ứng dụng tại các thời điểm khác nhau.Đa luồng trong tensorflow/keras
Trước tiên, tôi bắt đầu một mô hình.() Không có vấn đề gì trong một chuỗi riêng biệt, sau đó là chuỗi chính. Nếu bây giờ tôi muốn bắt đầu một model.fit thứ hai(), tôi nhận được thông báo lỗi sau:
Exception in thread Thread-1:
tensorflow.python.framework.errors_impl.InvalidArgumentError: Node 'hidden_1/BiasAdd': Unknown input node 'hidden_1/MatMul'
Họ đều bắt đầu từ một phương pháp mà theo các dòng cùng một đoạn mã:
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()
Th được gọi là lớp/phương pháp trông giống như sau:
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
Tôi nghĩ bằng cách nào đó tôi phải gán một tf_session mới và một tf_graph mới cho mỗi chuỗi đơn. Nhưng tôi không hoàn toàn chắc chắn về điều đó. Tôi sẽ vui mừng về mọi ý tưởng ngắn, vì tôi đang ngồi đây quá lâu rồi.
Cảm ơn