Python 3.x 输出层的十进制精度(单位:keras)

Python 3.x 输出层的十进制精度(单位:keras),python-3.x,tensorflow,neural-network,keras,Python 3.x,Tensorflow,Neural Network,Keras,我正在从事一个项目,该项目根据与药物相关的各种输入特征预测药物协同作用的价值。synergy值是浮点数,因此我想为我的神经网络设置一个精度范围。 假设实际值为1.342423,我的模型预测为1.30123,那么这个输出应该被视为正确的输出。 换句话说,我想限制用于比较实际答案和预测答案的小数位数。 神经网络: model = Sequential() act = 'relu' model.add(Dense(430, input_shape=(3,))) model.add(Activation

我正在从事一个项目,该项目根据与药物相关的各种输入特征预测药物协同作用的价值。synergy值是浮点数,因此我想为我的神经网络设置一个精度范围。 假设实际值为1.342423,我的模型预测为1.30123,那么这个输出应该被视为正确的输出。 换句话说,我想限制用于比较实际答案和预测答案的小数位数。 神经网络:

model = Sequential()
act = 'relu'
model.add(Dense(430, input_shape=(3,)))
model.add(Activation(act))

model.add(Dense(256))
model.add(Activation(act))
model.add(Dropout(0.42))

model.add(Dense(148))
model.add(Activation(act))
model.add(Dropout(0.3))

model.add(Dense(1))
model.compile(loss='mean_squared_error', optimizer='adam', metrics=['accuracy'])
学习和培训/测试数据的完整源代码: 请询问所需的任何其他详细信息 (将Keras与TensorFlow后端一起使用)

创建一个:

然后在模型编译中使用它:

model.compile(metrics=[myAccuracy],....)

因为你想要一个介于0和1之间的精确值,对吗?所有这些计算都是在“张量”(同时包含所有预测的矩阵)上进行的。
correct
变量是一个张量,有很多个0和很多个1。如果它们都是一,那么准确度就是一。如果它们都为0,则精度为0。如果其中一半是1,则准确度为0.5。我仍然不完全理解。如果y_true=3.10142和y_pred=3.01231模型同时处理大量数据,那么它将返回什么呢?您将获得类似于
y_true=[3.10,2.50,4.10]
y_pred=[3.01,2.47,4.16]
的内容。结果将是
[False,True,False]=33%
的平均值--您可以将
0.05
调整为更大的值。非常感谢您的解释
model.compile(metrics=[myAccuracy],....)