我正在与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]]
将输出层更改为以下
model.add(Dense(1))
请参阅本回归指南,它讨论一个输出。 https://www.tensorflow.org/tutorials/keras/basic_regression
首先,不需要规范化(或格式化)输入样本。在
其次,对于零精度的问题,这是因为您使用了“准确度”作为用于分类模型的度量。在您的例子中,您应该在编译方法中使用类似“mse”或“mae”(在Keras中)作为度量,例如
我在回答我自己的问题:
这里的问题是优化器!训练数据和其他设置都不是那么重要。您必须尝试其他优化器,以改变结果。 现在可以结束这个问题了。谢谢你的帮助!在
相关问题 更多 >
编程相关推荐