【问题标题】:Setting output variable in deep learning在深度学习中设置输出变量
【发布时间】:2021-02-13 07:23:14
【问题描述】:

我有这个代码:

from numpy import loadtxt
from keras.models import Sequential
from keras.layers import Dense
dataset = loadtxt('pima-indians-diabetes.csv', delimiter=',')
X = dataset[:,0:8]
y = dataset[:,8]
model = Sequential()
model.add(Dense(12, input_dim=8, activation='relu'))
model.add(Dense(8, activation='relu'))
model.add(Dense(1, activation='sigmoid'))
model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])
model.fit(X, y, epochs=150, batch_size=10)
_, accuracy = model.evaluate(X, y)
print('Accuracy: %.2f' % (accuracy*100))

我需要更改输出列,以便它从分数(例如 1 到一百万)而不是 0 或 1(sigmoid)预测/学习。

【问题讨论】:

  • 似乎您正在尝试进行回归而不是分类。使用model.add(Dense(1)),没有激活,所以它将是线性层。还将损失从binary_crossentropy更改为mse
  • @epsi95 谢谢你,奖金问题,你知道如何让它接受不同数量的列作为输入数据吗?说4到5?现在我的列都是 8 号的,我不得不填充它,但担心它会影响学习。
  • 请不要使用 cmets 空间来回答后续问题。编辑和更新您的帖子或打开一个新帖子。

标签: python tensorflow machine-learning keras deep-learning


【解决方案1】:

至于您的情况,您需要在最后一层(输出层)使用 relu 作为激活函数,而不是 sigmoid relu 的范围是 [0,inf)。那么在这种情况下,您需要使用 'MSE' 作为损失指标。

从概念上讲,您要解决的问题是回归类型的问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-11-10
    • 2019-05-04
    • 2021-01-18
    • 2020-02-21
    • 1970-01-01
    • 2018-01-08
    • 2017-08-25
    • 2018-11-05
    相关资源
    最近更新 更多