1

自分のコンピューターで同じオペレーティング システムと Python バージョンを使用して、この tensorflow 分散チュートリアルを試しています。最初のスクリプトを作成してターミナルで実行した後、別のターミナルを開いて 2 番目のスクリプトを実行すると、次のエラーが発生します。

E0629 10:11:01.979187251   15265 tcp_server_posix.c:284]     bind addr=[::]:2222: Address already in use
E0629 10:11:01.979243221   15265 server_chttp2.c:119]        No address added out of total 1 resolved
Traceback (most recent call last):
File "worker0.py", line 7, in <module>
task_index=0)
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/training/server_lib.py", line 142, in __init__
server_def.SerializeToString(), status)
File "/usr/lib/python2.7/contextlib.py", line 24, in __exit__
self.gen.next()
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/framework/errors.py", line 450, in raise_exception_on_not_ok_status
pywrap_tensorflow.TF_GetCode(status))
tensorflow.python.framework.errors.InternalError: Could not start gRPC server

公式の配布チュートリアルを試すと、同様のエラーが発生します。

編集:同じパッケージを使用している別のマシンでこれを試したところ、次のエラーログが表示されました:

E0629 11:17:44.500224628   18393 tcp_server_posix.c:284]     bind addr=[::]:2222: Address already in use
E0629 11:17:44.500268362   18393 server_chttp2.c:119]        No address added out of total 1 resolved
Segmentation fault (core dumped)

問題は何ですか?

4

1 に答える 1

3

問題はおそらく、両方のワーカーに同じポート番号 (2222) を使用していることです。各ポート番号は、特定のホスト上の 1 つのプロセスでのみ使用できます。それが、「bind addr=[::]:2222: Address already in use」というエラーの意味です。

クラスター仕様に "localhost:2222" が 2 回含まれているか、2 つのタスクに同じ task_index を指定していると思います。

それが役立つことを願っています!

于 2016-06-29T15:56:34.140 に答える