私はケラス連続モデルを構築するためのpythonスクリプトを持っています。たびに私はスクリプトの変更なしで別の結果を得ています。親切にスクリプトを見てください。私が間違っているところで助けてください。初めての実行で順次モデル毎回異なる結果を返す
thedata = pandas.read_csv("C:/User/Downloads/LSTM/data.csv", sep=', ', delimiter=',', header='infer', names=None)
np.random.seed(1337)
x = thedata['Review']
y = thedata['Polarity_Numeral']
x = x.iloc[:].values
y = y.iloc[:].values
tk = Tokenizer(num_words=40000, lower=True, split=" ")
tk.fit_on_texts(x)
x = tk.texts_to_sequences(x)
max_len = 120
x = pad_sequences(x, maxlen=max_len)
max_features = 40000
testx = x[51000:52588]
print (testx)
testy = y[51000:52588]
x = x[0:50999]
y = y[0:50999]
model = Sequential()
model.add(Embedding(max_features, 128, input_length=max_len))
model.add(SpatialDropout1D(0.3))
model.add(GaussianNoise(0.2))
model.add(LSTM(128 , dropout_W=0.3, dropout_U=0.3, return_sequences=False))
model.add(Dense(1, W_regularizer=l2(0.2)))
model.add(Activation('sigmoid'))
model.summary()
adam = Adam(lr=0.001, beta_1=0.9, beta_2=0.999, epsilon=1e-08, decay=0.00)
model.compile(loss='binary_crossentropy', optimizer=adam,metrics = ['accuracy'])
model_history = model.fit(x, y=y, batch_size=64, epochs=1, verbose=1,validation_split = 0.2)
model.save('C:/User/Downloads/model.h5')
model.save_weights('C:/User/Downloads/weight_model.h5')
predictions = model.predict(testx)
print (predictions)
、私は2番目の時間の走行では57% すなわち取得しています。.. 53% それがランダムに変化している第三... 55% 毎回オン。 助けてくれてありがとう!
テンソルフローバックエンドを使用していますか?この問題(https://github.com/fchollet/keras/issues/2280)に関連する可能性があります。 – sietschie
'tk.fit_on_texts(x)'について、それは何らかのトレーニングですか?その場合は、xとyも保存して、新しいモデルと読み込まれたモデルの両方で正確に同じであることを確認する必要があります。 –
ええ、テキストの前処理です。私は何が起こっているのかを正確に理解することができません。訓練とテスト側で同じデータが設定されていますが、同じモデルがロードされていますが、その精度はまだ異なります。 – user