tensorflow里面怎么自定义一个loss function?

  统计/机器学习 Python 损失函数 TensorFlow    浏览次数: 3279
2

我的模型的loss function是自己设计的,有没有人了解tensorflow里面怎么自定义一个loss function?

 

batmanX   2017-05-25 11:33



   2个回答 
4

有两个办法:

其一、你自己用C++写一个。你需要把tensorflow的源代码下载下来,然后自己用C++写一个函数。可参考Adding an op

其二、你把你自己定义的损失函数用tensorflow中的标准函数表示出来。比如你需要MSE(虽然这个已经有了),可以写成

loss = tf.reduce_mean(tf.square(tf.sub(y_real, y_pred)))



SofaSofa数据科学社区 DS面经 问答 实战

可爱多   2017-05-26 12:14

2

比如说你有一个function: f(x1,x2) = exp(x1)/(exp(x1)+exp(x2)) 或者可以写成 f(x1,x2) = 1/(1+exp(x2-x1)).

你可以这么定义:

x = np.float32(np.repeat(0.5,2).reshape(2)) 

varX = tf.Variable(x, name='varX', dtype=tf.float32)

varX1 = tf.slice(varX,begin=[0],size=[1])

varX2 = tf.slice(varX,begin=[1],size=[1])

f = -1./(1+tf.exp(varX2-varX1))

opt = tf.train.GradientDescentOptimizer(your_learning_rate)

train = opt.minimize(f)


SofaSofa数据科学社区 DS面经 问答 实战

Jeremy   2017-09-02 04:44



  相关主题

tf.placeholder和tf.variable什么区别?   1回答

怎么print或者查看tf.tensor中的数值   1回答

用tensorflow实现强化学习的dql算法报错:tensorflow.python.framework.errors_impl.InternalError: Could not find valid device for node. Node: {{node OneHot}} = OneHot[T=DT_FLOAT, TI=DT_FLOAT, axis=-1](dummy_input, dummy_input, dummy_input, dummy_input)   0回答

tf.reduce_sum是什么函数   1回答

pycharm+anaconda的安装问题   1回答

模仿tensorflow教程10-11的代码,报错,求解~~~~~~   1回答

如何通过docker安装TensorFlow   1回答

tf.truncated_normal和tf.random_normal有什么区别?   1回答

标准化训练数据后,测试与线上部署的数据如何进行标准化?   1回答

tf.placeholder(tf.float32, shape=(None, 1024))中的None是什么意思   1回答

tensorflow里出现的strides是什么意思   1回答

tensorflow 训练的时候输出nan   1回答



回答问题时需要注意什么?

我们谢绝在回答前讲“生动”的故事。

我们谢绝“这么简单,你自己想”、“书上有的,你认真看”这类的回答;如果你认为对方的提问方式或者内容不妥,你可以直接忽略该问题,不用进行任何作答,甚至可以对该问题投反对票。

我们谢绝答非所问。

我们谢绝自己不会、硬要回答。

我们感激每一个用户在编写答案时的努力与付出!