介绍
本篇文章给大家分享的是有关使用tensorflow怎么自定义损失函数,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。
import tensorflow as tf 得到numpy.random import  RandomState batch_size =8 #,两个输入节点 x =, tf.placeholder (tf.float32,=(没有,,2),形状,name=皒-input") #,回归问题一般只有一个输出节点 y_ =, tf.placeholder (tf.float32,=(没有,,1),形状,name=皔-input") #,定义了一个单层的神经网络前向传播的过程,这里就是简单加权和 w1 =, tf.Variable (tf.random_normal ((2, 1), stddev=1,种子=1)) 时间=y tf.matmul (x,, w1) #,定义预测多了和预测少了的成本 loss_less =10 loss_more =1 #在windows下、下面用这个地方替代,因为调用tf.select会报的错 loss =, tf.reduce_sum (tf.where (tf.greater (y), y_),, (y 作用;y_) * loss_more,, (y_-y) * loss_less)) 时间=train_step tf.train.AdamOptimizer (0.001) .minimize(损失) #通过随机数生成一个模拟数据集 时间=rdm RandomState (1) dataset_size =128 时间=X rdm.rand (dataset_size, 2) “““ 设置回归的正确值为两个输入的和加上一个随机量,之所以要加上一个随机量是 为了加入不可预测的噪音,否则不同损失函数的意义就不大了,因为不同损失函数 都会在能完全预测正确的时候最低。一般来说,噪音为一个均值为0的小量,所以 这里的噪音设置为-0.05,,0.05的随机数。 “““ 时间=Y [[+ x1 x2 +, rdm.rand ()/10.0 - -0.05], for (x1, x2),拷贝X] with tf.Session (), as 税:=,,init  tf.global_variables_initializer () ,sess.run (init) steps =, 5000 ,for 小姐:拷贝范围(步骤): start 才能=,(小姐:*,batch_size), % dataset_size 最终获得才能=,分钟(时间+ start batch_size,, dataset_size) sess.run才能(train_step, feed_dict={x:[开始:结束],y_: Y[开始:结束]}) ,打印(sess.run (w1)) 1.01934695 [[,] [1.04280889],
最终结果如上面所示。
因为我们当初生成训练数据的时候,y是x1 + x2,所以回归结果应该是1,1才对。
但是,由于我们加了自己定义的损失函数,所以,倾向于预估多一点。
如果,我们将loss_less和loss_more对调,我们看一下结果:
[[0.95525807]
引用>
[0.9813394]]使用tensorflow怎么自定义损失函数