使用相同的保存模型,每次运行时model.evaluate返回不同​​的值

时间:2019-09-05 13:35:55

标签: python keras

我正在尝试使用keras和电影镜头1m数据集制作电影推荐系统,但是每次运行模型时,评估(保存模型后)都会得到不同的结果,这是第一次发生这种情况,在此之前,我已经使用嵌入层制作了一些模型,它们运行良好,有人可以向我解释为什么会这样吗?谢谢=)

train, test = train_test_split(df, test_size=0.2, random_state=42)
print(test.head(10))
train_rating = train.rating
test_rating = test.rating
train.drop(['rating'], axis=1, inplace=True)
test.drop(['rating'], axis=1, inplace=True)

# constructing the model
model = Sequential()
model.add(Dense(64, input_shape=(4,), activation='linear'))
model.add(Dense(32, activation='linear'))
model.add(Dense(16, activation='linear'))
model.add(Dense(8, activation='linear'))
model.add(Dense(1))
model.compile(optimizer=optimizers.Adam(), loss='mean_absolute_error')

#Training the predicting
if(os.path.exists('reg.h5')):
    load_model('reg.h5')
else:
    # model.fit([train.age, train.gender, train.occupation, train.genre], train_rating)
    model.fit(train, train_rating,  epochs=10, validation_split=0.2)
    model.save('reg.h5')

effeciency = model.evaluate(test, test_rating)
print(effeciency)

predictions = model.predict(test.head(10))
for i in range(0, 10):
    print(predictions[i], test_rating.iloc[i])

0 个答案:

没有答案