我的模型似乎不起作用,因为准确度和损失为 0
My model doesn't seem to work, as accuracy and loss are 0
我尝试使用 keras 设计一个 LSTM 网络,但准确度为 0.00,而损失值为 0.05,我编写的代码如下。
model = tf.keras.models.Sequential()
model.add(tf.keras.layers.Flatten())
model.add(tf.keras.layers.Dense(128, activation = tf.nn.relu))
model.add(tf.keras.layers.Dense(128, activation = tf.nn.relu))
model.add(tf.keras.layers.Dense(1, activation = tf.nn.relu))
def percentage_difference(y_true, y_pred):
return K.mean(abs(y_pred/y_true - 1) * 100)
model.compile(optimizer='sgd',
loss='mse',
metrics = ['accuracy', percentage_difference])
model.fit(x_train, y_train.values, epochs = 10)
我的输入序列和测试数据集已使用 pandas 库导入。特征数为5,目标数为1。不胜感激。
据我所知,您正在使用 神经网络 申请 回归 问题。
回归是通过学习各种独立特征来预测continuous
值的任务。
因此,在回归问题中我们没有 metrics
像 accuracy
因为这是 supervised
学习的 classification
分支。
回归的accuracy
等价物可以是决定系数或R^2 Score
.
from keras import backend as K
def coeff_determination(y_true, y_pred):
SS_res = K.sum(K.square( y_true-y_pred ))
SS_tot = K.sum(K.square( y_true - K.mean(y_true) ) )
return ( 1 - SS_res/(SS_tot + K.epsilon()) )
model.compile(optimizer='sgd',
loss='mse',
metrics = [coeff_determination])
我尝试使用 keras 设计一个 LSTM 网络,但准确度为 0.00,而损失值为 0.05,我编写的代码如下。
model = tf.keras.models.Sequential()
model.add(tf.keras.layers.Flatten())
model.add(tf.keras.layers.Dense(128, activation = tf.nn.relu))
model.add(tf.keras.layers.Dense(128, activation = tf.nn.relu))
model.add(tf.keras.layers.Dense(1, activation = tf.nn.relu))
def percentage_difference(y_true, y_pred):
return K.mean(abs(y_pred/y_true - 1) * 100)
model.compile(optimizer='sgd',
loss='mse',
metrics = ['accuracy', percentage_difference])
model.fit(x_train, y_train.values, epochs = 10)
我的输入序列和测试数据集已使用 pandas 库导入。特征数为5,目标数为1。不胜感激。
据我所知,您正在使用 神经网络 申请 回归 问题。
回归是通过学习各种独立特征来预测continuous
值的任务。
因此,在回归问题中我们没有 metrics
像 accuracy
因为这是 supervised
学习的 classification
分支。
回归的accuracy
等价物可以是决定系数或R^2 Score
.
from keras import backend as K
def coeff_determination(y_true, y_pred):
SS_res = K.sum(K.square( y_true-y_pred ))
SS_tot = K.sum(K.square( y_true - K.mean(y_true) ) )
return ( 1 - SS_res/(SS_tot + K.epsilon()) )
model.compile(optimizer='sgd',
loss='mse',
metrics = [coeff_determination])