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

  统计/机器学习 Python 损失函数 TensorFlow    浏览次数:8853        分享
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面试题库 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面试题库 DS面经

Jeremy   2017-09-02 04:44



  相关讨论

tensorflow如何实现F1值作为损失函数?

tensorflow如何给要预测的标签增加约束?

神经网络的输出值总是一样

关于利用卷积神经网络多任务学习的loss问题

tf.add和直接使用加号+有什么区别吗?

tf.placeholder和tf.variable什么区别?

如何通过docker安装TensorFlow

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

pycharm+anaconda的安装问题

tf.truncated_normal和tf.random_normal有什么区别?

  随便看看

如何重命名pandas的dataframe的列名

机器学习基础

在jupyter后台进程没有shutdown的notebook一直会占用内存吗?

线性回归需要满足哪些基本前提假设

Python的Jupyter Notebook环境下怎么制作一个动态显示的进度条?