每次我在jupyter筆記本中運行Keras的LSTM網絡時,我得到了不同的結果,並且我搜索了很多,並且嘗試了一些不同的解決方案,但沒有一個他們的工作,這裏有一些解決方案,我想:如何在使用Tensorflow後端運行Keras時獲得可重現的結果
集numpy的隨機種子
random_seed=2017 from numpy.random import seed seed(random_seed)
設置tensorflow隨機種子
from tensorflow import set_random_seed set_random_seed(random_seed)
一套內置的隨機種子
import random random.seed(random_seed)
集PYTHONHASHSEED
import os os.environ['PYTHONHASHSEED'] = '0'
在jupyter筆記本kernel.json添加PYTHONHASHSEED
{ "language": "python", "display_name": "Python 3", "env": {"PYTHONHASHSEED": "0"}, "argv": [ "python", "-m", "ipykernel_launcher", "-f", "{connection_file}" ] }
和我的ENV的版本是:
Keras: 2.0.6
Tensorflow: 1.2.1
CPU or GPU: CPU
,這是我的代碼:
model = Sequential()
model.add(LSTM(16, input_shape=(time_steps,nb_features), return_sequences=True))
model.add(LSTM(16, input_shape=(time_steps,nb_features), return_sequences=False))
model.add(Dense(8,activation='relu'))
model.add(Dense(1,activation='linear'))
model.compile(loss='mse',optimizer='adam')
結果可以因爲不同的原因(例如,變量隨機引發)而變化。所以除非你提供一些模型代碼,否則我們只能提供很多幫助 – dv3