python - 卡住神经网络的权重,使其输出在特定点取特定值( tensorflow )

标签 python tensorflow machine-learning neural-network

假设我有一个如下所示的神经网络

def neural_net(x):
    layer_1 = tf.add(tf.matmul(x, weights['h1']), biases['b1'])
    layer_1 = tf.nn.sigmoid(layer_1)

    layer_2 = tf.add(tf.matmul(layer_1, weights['h2']), biases['b2'])
    layer_2 = tf.nn.sigmoid(layer_2)

    out_layer = tf.matmul(layer_2, weights['out']) + biases['out']
    return out_layer

tensorflow 中是否有一种方法可以固定权重,使neural_net(a)始终返回b(其中a,b > 是实数),例如,f(1) = 0

最佳答案

当然,但是,答案有点取决于目的。

最简单的解决方案是仅缩放输出。例如,通过线性回归器运行结果。虽然这给出了所需的结果,但它可能不是您想要的。

但是,更好的方法可能是在训练期间将这个附加目标集成到损失函数中。这样您就可以在额外要求和拟合神经网络权重之间进行权衡。您可以在 https://www.tensorflow.org/api_guides/python/contrib.losses 找到如何调整损失的一般描述。

images, labels = LoadData(...)
predictions = MyModelPredictions(images)

weight = MyComplicatedWeightingFunction(labels)
weight = tf.div(weight, tf.size(weight))
loss = tf.contrib.losses.mean_squared_error(predictions, depths, weight)

您的特殊情况的重量需要非常高。 这样你的标准就不能完全保证,但很有可能。

此外,您需要重写小批量机制以在每个批处理中注入(inject)您的 (x,y) = (1,0) 示例

关于python - 卡住神经网络的权重,使其输出在特定点取特定值( tensorflow ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52898784/

相关文章:

tensorflow - 如何恢复只有一个扩展名为 ".model"的文件的 tensorflow 模型

tensorflow - 如何理解tf.control_dependency?

java - Weka Example,文本行的简单分类

swift - 如何从 Swift 5 中的 MLModel(机器学习模型)获得预测的置信度

python - 如何在Django中导出和导入数据和授权信息?

python - 变压器模型无法保存

python - pygame.error 没有足够大的视频模式

python - 了解 sklearn QuantileTransformer

python - 如何从 Python 中的列表列表中删除值

python - 为什么我的 Pandas 数据框只显示一个数据集的结果?