質問編集履歴

1 tensorflowのバージョンを明記しました。

Kuro3210

Kuro3210 score 13

2019/04/09 15:50  投稿

tensorflow-gpu使用したGPUによるCNN演算処理におけるエラーについて
### 前提・実現したいこと
<環境>
Windows10, Anaconda, JupyterLab, 仮想環境, Pythohn3.5, CUDA9.0
Windows10, Anaconda, JupyterLab, 仮想環境, Pythohn3.5, CUDA9.0, tensorflow-gpu 1.13.1
tensorflowを用いたGPUによるCNNの演算処理が可能な状態にしたいのですが、エラーメッセージが表示されます。
CUDAのバージョンが古いのでしょうか? 対処法がわかりません。
### 発生している問題・エラーメッセージ
```
InternalError: cudaGetDevice() failed. Status: CUDA driver version is insufficient for CUDA runtime version
```
### 該当のソースコード
```ここに言語名を入力
# TensorFlowのインポート
import tensorflow as tf
#kerasのインポート
from tensorflow import keras
# ヘルパーライブラリのインポート
import numpy as np
```
```
#画像データのロード
from keras.datasets import cifar10
(x_train, y_train), (x_test, y_test) = cifar10.load_data()
```
```
#データセットのラベルをone-hot表現に変換
from keras.utils import np_utils
y_train = np_utils.to_categorical(y_train)
y_test = np_utils.to_categorical(y_test)
```
```
#RGB値を0~1で正規化
x_train = x_train / 255.0
x_test = x_test / 255.0
```
```
#Alex_Netのレイヤーを構築
def Alex_Net_model():
   model = tf.keras.Sequential()
   
   #1st convolutional layer
   model.add(tf.keras.layers.Conv2D(96, 4, strides=(2, 2), padding='valid', data_format='channels_last', activation='relu', bias_initializer='ones', input_shape=(32,32,3)))
   model.add(tf.keras.layers.BatchNormalization(axis=1))
   model.add(tf.keras.layers.MaxPooling2D(pool_size=(2, 2), strides=(1, 1), padding='valid', data_format='channels_last'))
   
   #2nd convolutional layer
   model.add(tf.keras.layers.Conv2D(256, 4, strides=(2, 2), padding='valid', data_format='channels_last', activation='relu', bias_initializer='zeros'))
   model.add(tf.keras.layers.BatchNormalization(axis=1))
   model.add(tf.keras.layers.MaxPooling2D(pool_size=(1, 1), strides=(1, 1), padding='valid', data_format='channels_last'))
   
   #3rd~5th convolutional layer
   model.add(tf.keras.layers.Conv2D(384, 2, strides=(1, 1), padding='valid', data_format='channels_last', activation='relu', bias_initializer='zeros'))
   model.add(tf.keras.layers.Conv2D(384, 2, strides=(1, 1), padding='valid', data_format='channels_last', activation='relu', bias_initializer='ones'))
   model.add(tf.keras.layers.Conv2D(384, 2, strides=(1, 1), padding='valid', data_format='channels_last', activation='relu', bias_initializer='ones'))
   model.add(tf.keras.layers.MaxPooling2D(pool_size=(2, 2), strides=(1, 1), padding='valid', data_format='channels_last'))
   
   
   # 6th flatten and whole junction layer
   model.add(tf.keras.layers.Flatten())
   model.add(tf.keras.layers.Dense(768))
   model.add(tf.keras.layers.Activation('relu'))
   model.add(tf.keras.layers.Dropout(0.5))
   model.add(tf.keras.layers.Dense(768))
   model.add(tf.keras.layers.Activation('relu'))
   model.add(tf.keras.layers.Dropout(0.5))
   
   #7th Softmax layer
   model.add(tf.keras.layers.Dense(10, activation='softmax'))
   
   #損失関数とパラメータの更新方法を設定
   model.compile(optimizer=tf.keras.optimizers.SGD(lr=0.01), loss='categorical_crossentropy', metrics=['accuracy'])
   
   return model
```
```
#学習
history = model.fit(x_train, y_train, epochs=3, batch_size=1000, shuffle=True, validation_split=0.25)
```
エラー
```
InternalError: cudaGetDevice() failed. Status: CUDA driver version is insufficient for CUDA runtime version
```
  • Python 3.x

    19280 questions

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

  • 機械学習

    3228 questions

    機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る