聞きたいこと
テーブルデータに対して、Kerasを使って多層パーセプトロンによる教師あり学習をしたいと
考えています。
乱数シードを固定して予測結果を再現したいと考えているのですが、うまくいきません。
乱数の固定はrandom.set_seedで出来ると思ったのですが、下記コードを実行すると
毎回予測結果が異なっています。
対象コード
python
1# 乱数シード固定 2tf.random.set_seed(0) 3 4# 標準化 5scaler = StandardScaler() 6X_tr_std = scaler.fit_transform(X_tr) 7X_val_std = scaler.transform(X_val) 8 9# ニューラルネットモデルの構築 10clf = Sequential() 11clf.add(Dense(256, activation='relu', input_shape=(X_tr_std.shape[1],))) 12clf.add(Dropout(0.2)) 13clf.add(Dense(256, activation='relu')) 14clf.add(Dropout(0.2)) 15clf.add(Dense(1, activation='sigmoid')) 16clf.compile(loss='binary_crossentropy', 17 optimizer='adam', metrics=['accuracy']) 18 19# 学習の実行 20batch_size = 128 21epochs = 10 22history = clf.fit(X_tr_std, y_tr, 23 batch_size=batch_size, epochs=epochs, 24 verbose=1, validation_data=(X_val_std, y_val)) 25 26# 予測 27y_pred = clf.predict(X_val_std) 28y_proba = clf.predict_proba(X_val_std) 29
環境
python 3.7.3
tensorflow 2.0.0
keras 2.3.1
※ jupyternotebookを使用しています。
自分で調べたこと
以下のQiitaの記事を見つけましたが、記事内で使用されているtensorflowの
versionが古いこともあり、うまくいきませんでした。
あなたの回答
tips
プレビュー