【发布时间】: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