機械学習/ディープラーニングにおけるバッチサイズ、イテレーション数、エポック数の決め方の
この幾つかに分けたぞれぞれのサブセットに含まれるデータの数をバッチサイズと呼びます。
を見て、batchsizeは一度に見るサンプルの数であると分かったので(他サイトでも同じような説明がなされていました)、classifier.fit()
のbatch_size = 1
のパラメータをいじって挙動を見てみるとbatch_size = 1
よりもbatch_size = 100
の方が学習速度が速く、batch_size = 1000000000
にすると学習速度が飛躍的に早くなりました。バッチサイズがサブセットに含まれるデータ数なら、455行しか持たない時点でエラーが起きるはずですし(データセットを超える量のデータを一度に学習している)、そもそも一度に1000000000ものデータを学習するとかなり学習速度が遅くなると予想していたのですが、予想に反して学習速度が速くなりました。これはなぜでしょうか?ちなみに、学習結果であるCorrectはbatch_sizeにかかわらずCorrect=114なので全問正解でした
import pandas as pd X_train = pd.read_csv("C:\Users\hoge\demo\YouTube_tutorial/xtrain.csv", header=None) Y_train = pd.read_csv("C:\Users\hoge\demo\YouTube_tutorial/ytrain.csv", header=None) X_test = pd.read_csv("C:\Users\hoge\demo\YouTube_tutorial/xtest.csv", header=None) Y_test = pd.read_csv("C:\Users\hoge\demo\YouTube_tutorial/ytest.csv", header=None) from keras.models import Sequential from keras.layers import Dense classifier = Sequential() classifier.add(Dense(units = 16, activation = 'relu', input_dim = 30)) classifier.add(Dense(units = 8, activation = 'relu')) classifier.add(Dense(units = 6, activation = 'relu')) classifier.add(Dense(units = 1, activation = 'sigmoid')) classifier.compile(optimizer = 'rmsprop', loss = 'binary_crossentropy')
print(X_train.shape) print(Y_train.shape) print(X_test.shape) print(Y_test.shape) >>> (455, 30) >>> (455, 1) >>> (114, 30) >>> (114, 1)
classifier.fit(X_train, Y_train, batch_size = 1, epochs = 100) と classifier.fit(X_train, Y_train, batch_size = 100, epochs = 100) と classifier.fit(X_train, Y_train, batch_size = 1000000000, epochs = 100)
Y_pred = classifier.predict(X_test) Y_pred = [ 1 if y>=0.5 else 0 for y in Y_pred] total = 0 correct = 0 wrong = 0 for i in Y_pred: total=total+1 if(Y_test.at[i, 0] == Y_pred[i]): correct=correct+1 else: wrong=wrong+1 print("Total" + str(total)) print("Correct" + str(correct)) print("Wrong" + str(wrong)) >>> Total114 >>> Correct114 >>> Wrong0
試したこと
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/03/10 12:54
2020/03/10 15:03
2020/03/11 02:13