質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
87.20%
Keras

Kerasは、TheanoやTensorFlow/CNTK対応のラッパーライブラリです。DeepLearningの数学的部分を短いコードでネットワークとして表現することが可能。DeepLearningの最新手法を迅速に試すことができます。

JupyterLab

JupyterLabは、Jupyter notebookの後継の対話型開発環境(IDE)です。データの可視化がインタラクティブで、プラグイン作成により新しいコンポーネントの追加および既存のコンポーネントも統合可能。サーバに閉じているため、データ分析に向いています。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

解決済

python 実行環境の違いによるInternalErrorの解決方法

harug
harug

総合スコア22

Keras

Kerasは、TheanoやTensorFlow/CNTK対応のラッパーライブラリです。DeepLearningの数学的部分を短いコードでネットワークとして表現することが可能。DeepLearningの最新手法を迅速に試すことができます。

JupyterLab

JupyterLabは、Jupyter notebookの後継の対話型開発環境(IDE)です。データの可視化がインタラクティブで、プラグイン作成により新しいコンポーネントの追加および既存のコンポーネントも統合可能。サーバに閉じているため、データ分析に向いています。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

1回答

0評価

0クリップ

554閲覧

投稿2022/06/20 09:35

前提

家庭用PC(ノートパソコン)と大学PC(デスクトップ)での実行環境が違うため、jupyter lab上で同じプログラムを実行しても家庭用PCの方ではエラーが出ないのですが、大学PCの方ではエラーが出てしまうという問題が生じています。
なお、大学PCはGPUサーバを使って実行しています。

実現したいこと

  • 家庭用PCと同じように、大学PCでもプログラムを正常に実行できるようにする。

発生している問題・エラーメッセージ

問題の、大学PCでプログラムを実行した際に吐かれたエラーです。

--------------------------------------------------------------------------- InternalError Traceback (most recent call last) <ipython-input-28-bf3054b856d5> in <module> 17 steps_per_epoch = 100, ---> 18 validation_data=([te_pairs[:, 0], te_pairs[:, 1]], te_y)) 19 /usr/local/lib/python3.5/dist-packages/tensorflow/python/keras/engine/training.py in fit(self, x, y, batch_size, epochs, verbose, callbacks, validation_split, validation_data, shuffle, class_weight, sample_weight, initial_epoch, steps_per_epoch, validation_steps, max_queue_size, workers, use_multiprocessing, **kwargs) 1637 initial_epoch=initial_epoch, 1638 steps_per_epoch=steps_per_epoch, -> 1639 validation_steps=validation_steps) 1640 1641 def evaluate(self, /usr/local/lib/python3.5/dist-packages/tensorflow/python/keras/engine/training_arrays.py in fit_loop(model, inputs, targets, sample_weights, batch_size, epochs, verbose, callbacks, val_inputs, val_targets, val_sample_weights, shuffle, initial_epoch, steps_per_epoch, validation_steps) 152 callbacks.on_batch_begin(step_index, batch_logs) 153 try: --> 154 outs = f(ins) 155 except errors.OutOfRangeError: 156 logging.warning('Your dataset iterator ran out of data; ' /usr/local/lib/python3.5/dist-packages/tensorflow/python/keras/backend.py in __call__(self, inputs) 2984 2985 fetched = self._callable_fn(*array_vals, -> 2986 run_metadata=self.run_metadata) 2987 self._call_fetch_callbacks(fetched[-len(self._fetches):]) 2988 return fetched[:len(self.outputs)] /usr/local/lib/python3.5/dist-packages/tensorflow/python/client/session.py in __call__(self, *args, **kwargs) 1437 ret = tf_session.TF_SessionRunCallable( 1438 self._session._session, self._handle, args, status, -> 1439 run_metadata_ptr) 1440 if run_metadata: 1441 proto_data = tf_session.TF_GetBuffer(run_metadata_ptr) /usr/local/lib/python3.5/dist-packages/tensorflow/python/framework/errors_impl.py in __exit__(self, type_arg, value_arg, traceback_arg) 526 None, None, 527 compat.as_text(c_api.TF_Message(self.status.status)), --> 528 c_api.TF_GetCode(self.status.status)) 529 # Delete the underlying status object from memory otherwise it stays alive 530 # as there is a reference to status from this from the traceback due to InternalError: Dst tensor is not initialized. [[{{node _arg_input_2_0_1/_147}} = _Recv[client_terminated=false, recv_device="/job:localhost/replica:0/task:0/device:GPU:0", send_device="/job:localhost/replica:0/task:0/device:CPU:0", send_device_incarnation=1, tensor_name="edge_910__arg_input_2_0_1", tensor_type=DT_FLOAT, _device="/job:localhost/replica:0/task:0/device:GPU:0"]()]] [[{{node loss_2/add_2/_169}} = _Recv[client_terminated=false, recv_device="/job:localhost/replica:0/task:0/device:CPU:0", send_device="/job:localhost/replica:0/task:0/device:GPU:0", send_device_incarnation=1, tensor_name="edge_926_loss_2/add_2", tensor_type=DT_FLOAT, _device="/job:localhost/replica:0/task:0/device:CPU:0"]()]]

ちなみにGPU:1の方を使用して、このようなエラーが発生しました。

GPUサーバのメモリ不足だと思うのですが、7952MiBのGPUサーバを使用しているので,このようにメモリ不足になることは考えにくいです…(ましてやこれよりもスペックの低い家庭用PCでは実行できたので)
他にも、家庭用PCと大学PCのライブラリのバージョンが違うことが挙げられますが具体的に何をどのようにすればよいのか分かりません、何か解決方法やご指摘等ございましたら教えていただきたいです。

該当のソースコード

python

tr_y = tf.cast(tr_y, dtype='float32') te_y = tf.cast(te_y, dtype='float32') rms = RMSprop() model.compile(loss=contrastive_loss, optimizer=rms, metrics=[accuracy]) H = model.fit([tr_pairs[:, 0], tr_pairs[:, 1]], tr_y, epochs=20, verbose=1, steps_per_epoch = 100, validation_data=([te_pairs[:, 0], te_pairs[:, 1]], te_y))

補足情報(FW/ツールのバージョンなど)

家庭用PC

OS : Windows10(64bit)
CPU : Intel(R) Core(TM) i5-8250U CPU @ 1.60GHz 1.80 GHz
RAM : 8GB
グラフィックボード : Intel(R) UHD Graphics 620

Python : 3.9.12
TensorFlow-gpu : 2.6.0
Keras : 2.6.0
こちらはGPU環境はないですが、TensorFlow-gpuは入れてあるといった状態です。

GPUサーバPC

OS : Ubuntu 16.04.5 LTS
CPU : Intel(R) Xeon(R) W-2123 CPU @ 3.60GHz
RAM : 32GiB
グラフィックボード : GeForce RTX 2080 x2

Python : 3.5.2
TensorFlow : 1.13.0-rc0
CUDA : 10.0.130
cuDNN : 7.4.2
Keras : 2.3.1

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

harug

2022/06/20 11:54

お返事ありがとうございます。 現在までの進展はありませんが、この問題はOSのバージョンを上げれば解決できる可能性があるということでしょうか。 また、ライブラリのバージョンが低いことも原因としてあるのでしょうか。
jbpb0

2022/06/20 13:48

> 7952MiBのGPUサーバを使用しているので,このようにメモリ不足になることは考えにくい https://teratail.com/questions/2vj6fy7grdqc6c にも書きましたが、nvidia-smiで、 ・jupyter起動前 ・jupyterでpython実行中 ・jupyterのRestart the Kernelボタンをクリック後 ・jupyterのshutdownボタンをクリック後 のそれぞれの状態でのGPUのメモリーの使用量を確認して、余裕があるかを確認してください https://note.nkmk.me/nvidia-smi-monitoring-gpu/
fourteenlength

2022/06/20 21:31

> この問題はOSのバージョンを上げれば解決できる可能性があるということでしょうか。また、ライブラリのバージョンが低いことも原因としてあるのでしょうか。 1. Ubuntu16のユーザーはUbuntu18のユーザーより少ない(体感)なので、OSに起因する相性問題がある(しかもOSが古いことを理由にバグがほったらかしになっている可能性がある)のと、 2. TFがすでに2.xに移行しているのに1.13を使っているのであれば、これもTFのバージョンに起因する相性問題がある(しかも新しいバージョンではすでにバグが潰されている可能性がある) ということを危惧しています。先のコメントにも書きましたが、TF1.1xはまだ発展途上でTF1.3かTF1.5くらいから急激に安定性が上がったような気がします。 jbpb0さんのコメントにあるように、多分メモリリーク関連の問題と思います。
harug

2022/06/21 01:53

jbpb0さんのご指摘のとおり、各場合に対してメモリの使用状況を確認しました。 ・jupyter lab起動前(GPUサーバ上) 0MiB / 7952MiB ・jupyter labでpython実行中 7622MiB / 7952MiB ・jupyter labのRestart the Kernelボタンをクリック後 0MiB / 7952MiB ・jupyterのshutdownボタンをクリック後(GPUサーバ上) 0MiB / 7952MiB 1つ目と4つ目はコマンドプロンプトで実行した結果になります。 python 実行中以外はメモリを使用していないようでした。。。
jbpb0

2022/07/29 07:00 編集

> ・jupyter labでpython実行中 7622MiB / 7952MiB そんなにカツカツだと、いつ落ちてもおかしくありません 瞬間的にメモリー使用量が増えた時に、残り容量が無くなって落ちます 経験的には、実行中の普段は最低でも0.5GB以上空いてないと、よく落ちます > 大学PCはGPUサーバを使って実行しています。 GPUは、メモリー不足になると確実に落ちます > これよりもスペックの低い家庭用PCでは実行できた CPUだと、メモリー不足になっても、ある程度はストレージ(ハードディスクやSSD)をメモリー代わりに使ってくれるので、(遅くなるけど)落ちなくて実行できます

まだ回答がついていません

会員登録して回答してみよう

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
87.20%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

Keras

Kerasは、TheanoやTensorFlow/CNTK対応のラッパーライブラリです。DeepLearningの数学的部分を短いコードでネットワークとして表現することが可能。DeepLearningの最新手法を迅速に試すことができます。

JupyterLab

JupyterLabは、Jupyter notebookの後継の対話型開発環境(IDE)です。データの可視化がインタラクティブで、プラグイン作成により新しいコンポーネントの追加および既存のコンポーネントも統合可能。サーバに閉じているため、データ分析に向いています。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。