我刚开始用Keras做回归模型。我尝试了自己的照片,但我得到了损失作为Nan
和准确度为零的输出。有人能解释为什么吗?你知道吗
data=pd.read_excel('Data.xlsx',sheet_name=2)
data.head(2)
features=data.drop('PRHP',axis=1)
labels=data['PRHP']
# Normalizing data:
m_features=features.mean(axis=0)
m_labels=labels.mean(axis=0)
std_features=features.std(axis=0)
std_labels=labels.std(axis=0)
nor_features=(features-m_features)/std_features
nor_labels=(labels-m_labels)/std_labels
# Build Model:
model=Sequential([Dense(12,input_shape=(7,),activation='linear'),Dense(1,activation='linear')])
model.summary()
model.compile(adam(lr=0.01),loss='mean_squared_error',metrics=['accuracy'])
model.fit(nor_features,nor_labels, batch_size=10, epochs=10, shuffle=True,verbose=2)
输出:
Epoch 1/10
- 0s - loss: nan - acc: 0.0000e+00
Epoch 2/10
- 0s - loss: nan - acc: 0.0000e+00
Epoch 3/10
- 0s - loss: nan - acc: 0.0000e+00
Epoch 4/10
- 0s - loss: nan - acc: 0.0000e+00
...
nan
丢失的原因之一是训练数据本身中存在nan
值。如果原始数据中有任何nan
值,请尝试用一些值填充它们或完全删除它们对应的行样本。否则,如果原始数据中没有丢失的数据,因为您正在通过除以std进行规范化,可能std的值为零,因此导致除以零。为防止出现这种情况,请在执行除法时添加一个小常量:至于准确度为零,您必须记住Keras中的
'accuracy'
度量仅用于分类问题。在这里,因为您正在进行回归,所以使用'accuracy'
作为度量是毫无意义的。相反,您可以使用其他度量,如mae
(即平均绝对误差),或者根本不使用任何度量。你知道吗相关问题 更多 >
编程相关推荐