前提・実現したいこと
あるpythonを使う機械学習の講座を受けています。
その講座で用いられるコードをjupyter notebook上で試したのですがどうしても上手くいきません。
お力をお貸しくださいorz
実際に使用したコードを以下に示します。
::
import tensorflow as tf
from tensorflow.keras.preprocessing.image import ImageDataGenerator
train_datagen = ImageDataGenerator(rescale = 1./255,shear_range = 0.2,zoom_range = 0.2,horizontal_flip = True)
training_set = train_datagen.flow_from_directory('dataset/training_set',target_size = (64, 64),batch_size = 32,class_mode = 'binary')
test_datagen = ImageDataGenerator(rescale = 1./255)
test_set = test_datagen.flow_from_directory('dataset/test_set',target_size = (64, 64),batch_size = 32,class_mode = 'binary')
cnn = tf.keras.models.Sequential()
cnn.add(tf.keras.layers.Conv2D(filters=32, kernel_size=3, activation='relu', input_shape=[64, 64, 3]))
cnn.add(tf.keras.layers.MaxPool2D(pool_size=2, strides=2))
cnn.add(tf.keras.layers.Conv2D(filters=32, kernel_size=3, activation='relu'))
cnn.add(tf.keras.layers.MaxPool2D(pool_size=2, strides=2))
cnn.add(tf.keras.layers.Flatten())
cnn.add(tf.keras.layers.Dense(units=128, activation='relu'))
cnn.add(tf.keras.layers.Dense(units=1, activation='sigmoid'))
cnn.compile(optimizer = 'adam', loss = 'binary_crossentropy', metrics = ['accuracy'])
cnn.fit(x = training_set, validation_data = test_set, epochs = 25)
::
この処理ではdatasetフォルダの中に各訓練データ、テストデータが内包されていて、そのデータを元に畳み込みニューラルネットワークを使って機械学習させています。
■■な機能を実装中に以下のエラーメッセージが発生しました。
jupyter notebookでは一行ずつコードを入力していき、処理が進まなくなったのは上記の最終行です。cnn.fit()で訓練データによるモデルの訓練を実施しているときに本来ならば進むはずの処理が進まず、処理が異常終了してしまう形になります。
発生している問題・エラーメッセージ
コードの出力上は
Train for 250 steps, validate for 63 steps Epoch 1/25
で止まっていて、本来ならばEpochが2/25,3/25.....と徐々に大きくなって処理が進んでいきます。
上の画像は実際にjupyter notebook上で表示されたエラーメッセージです。
いったい何が起こっているのでしょうか。
該当のソースコード
python
1cnn.fit(x = training_set, validation_data = test_set, epochs = 25)
試したこと
anacondaを最新版にした。
講義で必要だと言われたpillow,scipy,tensorflowのパッケージはインストールしてあることを確認した。
pythonのバージョンは3.6でした。
補足情報(FW/ツールのバージョンなど)
anacondaからjupyter notebookを開いて使っています。
Udemyの講師の方にはメモリの不足を示唆されましたが納得できません。
どうなんでしょう実行中・後のメモリ使用率?の推移ですが...
今はmac book air でCPUがcorei5,メモリは8Gbなのですが、このような機械学習のプログラミングにはスペック不足になるのでしょうか....
ターミナルの画面にヒントになりそうな文章が出現しました!どんな意味なのでしょうか?
「
Shuffle buffer filled.
OMP: Error #15: Initializing libiomp5.dylib, but found libiomp5.dylib already initialized.
OMP: Hint This means that multiple copies of the OpenMP runtime have been linked into the program. That is dangerous, since it can degrade performance or cause incorrect results. The best thing to do is to ensure that only a single OpenMP runtime is linked into the process, e.g. by avoiding static linking of the OpenMP runtime in any library. As an unsafe, unsupported, undocumented workaround you can set the environment variable KMP_DUPLICATE_LIB_OK=TRUE to allow the program to continue to execute, but that may cause crashes or silently produce incorrect results. For more information, please see http://www.intel.com/software/products/support/.
[I 10:00:36.812 NotebookApp] KernelRestarter: restarting kernel (1/5), keep random ports
kernel 80ab163a-e346-4e45-aa41-fdbf202c2460 restarted
」
回答1件
あなたの回答
tips
プレビュー