【发布时间】:2018-05-30 10:29:53
【问题描述】:
对于一个学校项目,我正在尝试使用 keras 框架预测数据,但是当我尝试获取预测数据时,它会返回“nan”损失和值。
源代码:
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=5)
# create model
model = Sequential()
model.add(Dense(950, input_shape=(425,), activation='relu'))
model.add(Dense(425, activation='relu'))
model.add(Dense(200, activation='relu'))
model.add(Dense(50, activation='relu'))
model.add(Dense(1, activation='sigmoid'))
# Compile model
sgd = optimizers.SGD(lr=0.1, decay=1e-6, momentum=0.9, nesterov=True)
model.compile(loss='mean_squared_error', optimizer='sgd')
# Fit the model
model.fit(X_train, y_train, epochs=20, batch_size=1, verbose=1)
#evaluate the model
y_pred = model.predict(X_test)
score = model.evaluate(X_test, y_test,verbose=1)
print(score)
# calculate predictions
predictions = model.predict(X_pred)
数据:
X_train 和 X_test 是 5000 行(样本数)* 425 列(维数)的 (panda) 数据帧。
y_train 和 y_test 看起来像:
array([ 1.17899644, 1.46080518, 0.9662137 , ..., 2.40157461,
0.53870386, 1.3192718 ])
你能帮我吗?
感谢您的帮助!
【问题讨论】:
-
尝试将 SGD 学习率降低到 0.01
-
您创建一个 sgd 对象,然后传递一个“sgd”字符串作为优化器。什么?!
标签: python machine-learning keras