https://techblog.nhn-techorus.com/archives/8349
上記のサイトを参考にラーメンとそれ以外の麺類を判別する分類器を造ってみようと思ったのでまずこのサイトでコスモスとサクラの判別をする分類器のコードを書いたのですが、
PIL.UnidentifiedImageError: cannot identify image file 'sakura/.DS_Store'
とエラーが出て画像の読み込みがうまくいっていないようです。この解決方法がわかりません。またサイトの下の方にグラフが出ているのですが、これはこのコードでうまく動けばグラフも確認できるということなのでしょうか?
使用しているPCは
MacBook Pro (13-inch, 2019, Two Thunderbolt 3 ports)
プロセッサ 1.4 GHz クアッドコアIntel Core i5
メモリ 8 GB 2133 MHz LPDDR3
環境は
vs code
python3.7.6
tensorflow1.14.0
tensorflowはver2.0以降はまたコードの書き方が異なるようなので1.14.0を指定して入れ直しました。
ほとんどサイトと同じですが、下記に自分で書いたコードを載せます
from keras.layers import Conv2D, MaxPooling2D from keras.layers import Dense, Dropout, Flatten from keras.models import Sequential import keras from sklearn.model_selection import train_test_split from keras.preprocessing import image import numpy as np import tensorflow as tf import random as rn import os from keras import backend as K os.environ['PYTHONHASHSEED'] = '0' np.random.seed(0) rn.seed(0) session_conf = tf.compat.v1.ConfigProto( intra_op_parallelism_threads=1, inter_op_parallelism_threads=1) tf.set_random_seed(0) sess = tf.Session(graph=tf.get_default_graph(), config=session_conf) K.set_session(sess) sess = tf.Session(config=tf.ConfigProto(device_count={'GPU': 0})) input_shape = (224, 224, 3) batch_size = 128 epochs = 100 num_classes = 2 x = [] y = [] for f in os.listdir("sakura"): x.append(image.img_to_array(image.load_img( "sakura/"+f, target_size=input_shape[:2]))) y.append(0) for f in os.listdir("cosmos"): x.append(image.img_to_array(image.load_img( "cosmos/"+f, target_size=input_shape[:2]))) y.append(1) x = np.asarray(x) x /= 255 y = np.asarray(y) y = keras.utils.to_categorical(y, num_classes) x_train, x_test, y_train, y_test = train_test_split( x, y, test_size=0.33, random_state=3) model = Sequential() model.add(Conv2D(32, kernel_size=(3, 3), activation='relu', input_shape=input_shape)) model.add(Conv2D(64, (3, 3), activation='relu')) model.add(MaxPooling2D(pool_size=(2, 2))) model.add(Dropout(0.25)) model.add(Flatten()) model.add(Dense(128, activation='relu')) model.add(Dropout(0.5)) model.add(Dense(num_classes, activation='softmax')) model.compile(loss=keras.losses.categorical_crossentropy, optimizer="SGD", metrics=['accuracy']) history = model.fit(x_train, y_train, batch_size=batch_size, epochs=epochs, verbose=1, validation_data=(x_test, y_test))
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/07/01 06:10
2020/07/01 06:27
2020/07/01 06:31
2020/07/01 06:35
2020/07/01 08:35
2020/07/01 08:38
2020/07/02 02:59
2020/07/02 05:46
2020/07/02 08:42