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

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

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

Anacondaは、Python本体とPythonで利用されるライブラリを一括でインストールできるパッケージです。環境構築が容易になるため、Python開発者間ではよく利用されており、商用目的としても利用できます。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

0回答

3389閲覧

TensorFlowのプログラムが実行できないーGPUの環境設定でエラーが発生してしまった。

sadamtk

総合スコア10

Anaconda

Anacondaは、Python本体とPythonで利用されるライブラリを一括でインストールできるパッケージです。環境構築が容易になるため、Python開発者間ではよく利用されており、商用目的としても利用できます。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2018/10/18 08:08

前提・実現したいこと

Anaconda3上にtensolflow-gpuを使用できる環境を作り、KerasのNeuralNetworkのプログラムを実行させることができました。

と思いきや確認してみるとCPUしか認識されていなかったので、GPUを認識させるよう環境を構築しなおしました。

しかしうまくいっていたプログラムがエラーを出してハマってしまいました。

エラーの問題は「GPU指定」なんだと思いますが、解決策がどうしてもわからないので教えてください。

改めて、質問内容はこちらです。

・エラーの原因はGPUの設定が間違っているからですか?(どう間違っていますか?)
・エラーの対策方法を教えてください。

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

--------------------------------------------------------------------------- InternalError Traceback (most recent call last) <ipython-input-5-5b0b57d8dfbf> in <module> 14 verbose=1, 15 validation_split=0.1, ---> 16 callbacks=[es, csv_logger]) 17 ~\AppData\Local\conda\conda\envs\tfgpu\lib\site-packages\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, **kwargs) 1037 initial_epoch=initial_epoch, 1038 steps_per_epoch=steps_per_epoch, -> 1039 validation_steps=validation_steps) 1040 1041 def evaluate(self, x=None, y=None, ~\AppData\Local\conda\conda\envs\tfgpu\lib\site-packages\keras\engine\training_arrays.py in fit_loop(model, f, ins, out_labels, batch_size, epochs, verbose, callbacks, val_f, val_ins, shuffle, callback_metrics, initial_epoch, steps_per_epoch, validation_steps) 197 ins_batch[i] = ins_batch[i].toarray() 198 --> 199 outs = f(ins_batch) 200 outs = to_list(outs) 201 for l, o in zip(out_labels, outs): ~\AppData\Local\conda\conda\envs\tfgpu\lib\site-packages\keras\backend\tensorflow_backend.py in __call__(self, inputs) 2713 return self._legacy_call(inputs) 2714 -> 2715 return self._call(inputs) 2716 else: 2717 if py_any(is_tensor(x) for x in inputs): ~\AppData\Local\conda\conda\envs\tfgpu\lib\site-packages\keras\backend\tensorflow_backend.py in _call(self, inputs) 2673 fetched = self._callable_fn(*array_vals, run_metadata=self.run_metadata) 2674 else: -> 2675 fetched = self._callable_fn(*array_vals) 2676 return fetched[:len(self.outputs)] 2677 ~\AppData\Local\conda\conda\envs\tfgpu\lib\site-packages\tensorflow\python\client\session.py in __call__(self, *args, **kwargs) 1397 ret = tf_session.TF_SessionRunCallable( 1398 self._session._session, self._handle, args, status, -> 1399 run_metadata_ptr) 1400 if run_metadata: 1401 proto_data = tf_session.TF_GetBuffer(run_metadata_ptr) ~\AppData\Local\conda\conda\envs\tfgpu\lib\site-packages\tensorflow\python\framework\errors_impl.py in __exit__(self, type_arg, value_arg, traceback_arg) 524 None, None, 525 compat.as_text(c_api.TF_Message(self.status.status)), --> 526 c_api.TF_GetCode(self.status.status)) 527 # Delete the underlying status object from memory otherwise it stays alive 528 # as there is a reference to status from this from the traceback due to InternalError: Blas GEMM launch failed : a.shape=(1000, 7), b.shape=(7, 500), m=1000, n=500, k=7 [[{{node dense_1/MatMul}} = MatMul[T=DT_FLOAT, _class=["loc:@training/RMSprop/gradients/dense_1/MatMul_grad/MatMul_1"], transpose_a=false, transpose_b=false, _device="/job:localhost/replica:0/task:0/device:GPU:0"](_arg_dense_1_input_0_0/_45, dense_1/kernel/read)]] [[{{node loss/mul/_61}} = _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_621_loss/mul", tensor_type=DT_FLOAT, _device="/job:localhost/replica:0/task:0/device:CPU:0"]()]]

該当のソースコード

python

1 2# coding: utf-8 3# パッケージをインポート 4import keras 5import keras.backend as K 6import pandas as pd 7import numpy as np 8import sklearn 9import tensorflow as tf 10from sklearn import preprocessing 11from keras.models import Sequential 12from keras.layers.core import Dense, Dropout, Activation 13from keras.optimizers import RMSprop 14from keras.callbacks import EarlyStopping, CSVLogger 15%matplotlib inline 16import matplotlib.pyplot as plt 17 18~(略)~ 19 20# モデルのコンパイル 21model.compile(loss='sparse_categorical_crossentropy', 22 optimizer=RMSprop(), 23 metrics=['accuracy']) 24 25es = EarlyStopping(monitor='val_loss', patience=2) 26csv_logger = CSVLogger('training.log') 27hist = model.fit(x_train, y_train, 28 batch_size=batch_size, 29 epochs=epochs, 30 verbose=1, 31 validation_split=0.1, 32 callbacks=[es, csv_logger]) #ここでエラー発生? 33

試したこと

もともと、tensorflow-gpuを入れたのにCPUしか認識していなかったことが発端で、構築し直してからおかしくなりました。
その原因は特定でき、「conda install -n (任意の環境名) (パッケージ名)」としてインストールするところ「pip install ~」としていたためだとわかりました。

最新のCUDAのインストール及びcuDNNを適切に配置し、Anaconda上にTensorFlow-gpuをインストールしました。
念のためGPUの認識を確認しました。

python

1from tensorflow.python.client import device_lib 2device_lib.list_local_devices() 3 4>>> 5from tensorflow.python.client import device_lib 6device_lib.list_local_devices() 7 8>>> 9 [name: "/device:CPU:0" 10 device_type: "CPU" 11 memory_limit: 268435456 12 locality { 13 } 14 incarnation: 17828608210128374212, name: "/device:GPU:0" 15 device_type: "GPU" 16 memory_limit: 9213191127 17 locality { 18 bus_id: 1 19 links { 20 } 21 } 22 incarnation: 14191326970748114540 23 physical_device_desc: "device: 0, name: GeForce GTX 1080 Ti, pci bus id: 0000:01:00.0, compute capability: 6.1"] 24

この後、肝心のプログラムの「コンパイル」ではまってしまいました。

参考にしたのはこちらのサイトです。
http://liaoyuan.hatenablog.jp/entry/2017/12/30/000155

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

Anaconda3
pythonのバージョン:Python 3.6.6
tensorflow-gpuのバージョン:1.11.0
kerasのバージョン: 2.2.4

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問