Keras输入/输出

2024-04-26 05:52:32 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在与Tensorflow/keras的挑战作斗争,如果有人能帮我的话就太好了。在

我在Keras中建立了一个神经网络,输入μdim=3,然后是10个神经元,输出1。在

输入是一个带浮点的三维向量,输出应该是一个简单的浮点值。在

我的问题是,我不知道浮动应该如何格式化(>1,从0到1?,以及该任务的损失函数(我猜不是二进制的)。我想让神经网络从三维向量中计算出一个简单的浮点值。但它永远不会成功,因为我的输出总是一样的。在

如果我忘了什么,请告诉我,如果你有什么想法太好了!在

你好

编辑:我意识到我需要一个关于机器学习的整个主题的介绍,我现在正在做这个。同时,我想知道如何使用keras来验证/实际使用机器学习。我很抱歉问一些愚蠢的问题,但我希望有人能帮助我。在

输入:我认为输入的格式可能是“错误的”,它不是标准化的等等,但是我将得到的值转换为下面提到的间隔。在

这是我的简单模型:

model = Sequential()
model.add(Dense(10, input_dim=3, init='normal', activation='sigmoid'))
model.add(Dense(1, init='normal', activation='sigmoid'))
model.compile(loss='mse', optimizer='sgd', metrics=['accuracy'])
model.fit(X_Train, Y_Train, nb_epoch=100, batch_size=32, verbose=1)

X_Train和Y_Train是从.csv文件中提取的值。例如,我的输入值是[a,b,c,d],其中0<;a,b,c<;1和-1<;d<;1(d是输出)。在

输出:

Epoch 500/500

32/32 [==============================] - 0s - loss: 0.0813 - acc: 0.0000e+00

示例(随机生成的值),所有输出在0.43左右几乎相同:

[ 0.97650245 0.30383579 0.74829968] [[ 0.43473071]]

[ 0.94985165 0.75347051 0.72609185] [[ 0.43473399]]

[ 0.18072594 0.18540003 0.20763266] [[ 0.43947196]]


Tags: lt机器addmodelinittrain神经网络activation
3条回答

将输出层更改为以下 model.add(Dense(1))

请参阅本回归指南,它讨论一个输出。 https://www.tensorflow.org/tutorials/keras/basic_regression

首先,不需要规范化(或格式化)输入样本。在

其次,对于零精度的问题,这是因为您使用了“准确度”作为用于分类模型的度量。在您的例子中,您应该在编译方法中使用类似“mse”或“mae”(在Keras中)作为度量,例如

model.compile(loss='mse', optimizer='sgd', metrics=['mae'])

我在回答我自己的问题:

这里的问题是优化器!训练数据和其他设置都不是那么重要。您必须尝试其他优化器,以改变结果。 现在可以结束这个问题了。谢谢你的帮助!在

相关问题 更多 >

    热门问题