python - 在张量流中训练时使用自定义损失值
问题描述
我想使用我自己的自定义损失值来训练我的神经网络。因此,我想对一个小批量执行前馈传播以将激活存储在内存中,然后使用我自己的损失值执行反向传播。这将使用 tensorflow 来完成。
最后,我需要做一些类似的事情:
sess.run(optimizer, feed_dict={x: training_data, loss: my_custom_loss_value}
那可能吗?我假设优化器取决于损失,而损失本身取决于输入。因此,我想将输入输入到图表中,但我想将我的值用于损失。
解决方案
我猜由于优化器依赖于激活,它们将被评估,换句话说,输入将被馈送到网络中。这是一个例子:
import tensorflow as tf
a = tf.Variable(tf.constant(8.0))
a = tf.Print(input_=a, data=[a], message="a:")
b = tf.Variable(tf.constant(6.0))
b = tf.Print(input_=b, data=[b], message="b:")
c = a * b
optimizer = tf.train.AdadeltaOptimizer(learning_rate=0.1).minimize(c)
init_op = tf.global_variables_initializer()
with tf.Session() as sess:
sess.run(init_op)
value, _ = sess.run([c, optimizer], feed_dict={c: 1})
print(value)
最后,打印的值为 1.0,而控制台显示:a:[8]b:[6]
这意味着输入已被评估。
推荐阅读
- stm32 - 目标/stm32f1x.cfg:74:错误:目标需要 -dap 参数而不是 -chain-position!开放式强迫症
- python - tensorflowjs_converter WIN[126] 找不到指定的模块
- reactjs - 陈旧的道具/没有重新渲染作为道具传递的孩子
- flutter - 颤振中的多个孩子
- powershell - 在 Powershell 中将 JSON-String 转换为正确的对象
- r - 将数据帧与包含在单独数据帧中的字符串中的键值合并
- graph - Marginsplot 如何从图中删除某些数据
- apache - apache httpd log:过滤掉包含字符串的行
- laravel - 未在某些路线上显示模式 cookie 政策
- stripe-payments - 条纹 application_fee 与 transfer_data