Kerasを用いてディープラーニングのモデルの結果について質問があります。
データ、学習パラメータなどの設定を変えずに、同じプログラムを実行すると、
実行のたびに出力結果(損失関数値や精度値)が変わるのはKerasの仕様なのでしょうか。
またその理由について教えていただければ幸いです。
↓プログラムの一部。プログラムを最初から実行するたびに、結果が変わります。
python
1# プログラムの一部 2# モデルの定義 3model = Sequential() 4 5# 隠れ層1 6# model.add(Dense(H, activation='relu', input_shape=(D,), kernel_initializer=initializers.RandomNormal(mean=0.0, stddev=0.05, seed=None))) 7model.add(Dense(H, activation='relu', input_shape=(D,))) 8 9# 隠れ層2 10# model.add(Dense(H, activation='relu', kernel_initializer='random_uniform')) 11model.add(Dense(H, activation='relu')) 12 13# 出力層 14model.add(Dense(num_classes, activation='softmax')) 15 16# コンパイル 17sgd = optimizers.SGD(lr=0.01) # 初期値 18model.compile(loss = 'categorical_crossentropy', 19 optimizer = sgd, 20 metrics=['accuracy']) 21 22# 学習 23batch_size = 512 24 25# 繰り返し回数 26nb_epoch = 100 27 28# モデルの学習 29history1 = model.fit( 30 x_train, 31 y_train_ohe, 32 batch_size = batch_size, 33 epochs = nb_epoch, 34 verbose = 1, 35 validation_data = (x_test, y_test_ohe))
〇実行結果その1
Epoch 100/100
118/118 [==============================] - 1s 5ms/step - loss: 0.1431 - accuracy: 0.9593 - val_loss: 0.1521 - val_accuracy: 0.9562
〇実行結果その2
Epoch 100/100
118/118 [==============================] - 1s 5ms/step - loss: 0.1441 - accuracy: 0.9593 - val_loss: 0.1518 - val_accuracy: 0.9551
上記のように同じ設定で実行しても結果が変わります。
回答1件
あなたの回答
tips
プレビュー