0
私のプロジェクトの1つでテンソルフローとPythonマルチプロセッシングを使用しています。私は、マルチ処理の前にセッションを初期化すると、マルチ処理がどこかでスタックしているように見えます。中断するときTensorflowはマルチプロセスの前にセッションを実行します
import tensorflow as tf
from multiprocessing.pool import Pool
graph = tf.Graph()
with graph.as_default():
X = tf.Variable([10, 1])
init = tf.initialize_all_variables()
graph.finalize()
def run(i):
sess = tf.Session(graph=graph)
sess.run(init)
print sess.run(X)
#uncomment for the bug
#sess = tf.Session(graph=graph)
#sess.close()
p = Pool(4)
res = p.map(run, [1,2,3])
そして、私が得たメッセージ:
Process PoolWorker-1:
Traceback (most recent call last):
File "/usr/lib/python2.7/multiprocessing/process.py", line 258, in _bootstrap
self.run()
File "/usr/lib/python2.7/multiprocessing/process.py", line 114, in run
self._target(*self._args, **self._kwargs)
File "/usr/lib/python2.7/multiprocessing/pool.py", line 102, in worker
task = get()
File "/usr/lib/python2.7/multiprocessing/queues.py", line 374, in get
racquire()
KeyboardInterrupt
質問は何ですか?あなたのコードを修正するには? Tensorflowはマルチプロセッシングで実行するためのものではなく、マルチコアの実行を内部的に処理します – fabrizioM
@fabrizioMありがとう、私はあなたが意味することを理解しています。私はTFの内部配布計算を使用します。 –