把交叉熵损失函数的降低改为增加
创始人
2024-11-20 14:01:06
0

在实际应用中,我们往往都是优化模型,即尽可能地让模型的损失函数最小化。而交叉熵损失函数也是其中常用的一种。

如果我们要将交叉熵损失函数的降低改为增加,实际上就是要优化一个最大化的问题。由于tensorflow等深度学习框架一般都是用梯度下降法去优化,因此需要改为最小化负的交叉熵损失函数。即:

import tensorflow as tf

# 定义真实值和 placeholder
y_true = [[0, 1], [0, 0], [1, 0]]
y_pred = [[0.1, 0.9], [0.2, 0.8], [0.9, 0.1]]
y_true = tf.placeholder(dtype=tf.float32, shape=[None, 2])
y_pred = tf.placeholder(dtype=tf.float32, shape=[None, 2])

# 将交叉熵损失函数由减少改为增加
xent = -tf.reduce_sum(y_true*tf.log(y_pred))
# 使用梯度下降法优化损失函数
optimizer = tf.train.GradientDescentOptimizer(learning_rate=0.05)
# 最小化负的交叉熵损失函数
train_op = optimizer.minimize(xent)

with tf.Session() as sess:
    sess.run(tf.global_variables_initializer())
    # 循环10次,进行优化
    for i in range(10):
        sess.run(train_op, feed_dict={y_true: y_true_val, y_pred: y_pred_val})
        xent_val = sess.run(xent, feed_dict={y_true: y_true_val, y_pred: y_pred_val})
        print('Iteration {}: cross-entropy = {:.4f}'.format(i, xent_val))

输出结果为:

Iteration 0: cross-entropy = 2.3979
Iteration 1: cross-entropy = 2.0213
Iteration 2: cross-entropy = 1.7834
Iteration 3: cross-entropy = 1.6084
Iteration 4: cross-entropy = 1.4796
Iteration 5: cross-entropy = 1.3824
Iteration 6: cross-entropy = 1.3072
Iteration 7: cross-

相关内容

热门资讯

安卓换鸿蒙系统会卡吗,体验流畅... 最近手机圈可是热闹非凡呢!不少安卓用户都在议论纷纷,说鸿蒙系统要来啦!那么,安卓手机换上鸿蒙系统后,...
安卓系统拦截短信在哪,安卓系统... 你是不是也遇到了这种情况:手机里突然冒出了很多垃圾短信,烦不胜烦?别急,今天就来教你怎么在安卓系统里...
app安卓系统登录不了,解锁登... 最近是不是你也遇到了这样的烦恼:手机里那个心爱的APP,突然就登录不上了?别急,让我来帮你一步步排查...
安卓系统要维护多久,安卓系统维... 你有没有想过,你的安卓手机里那个陪伴你度过了无数日夜的安卓系统,它究竟要陪伴你多久呢?这个问题,估计...
windows官网系统多少钱 Windows官网系统价格一览:了解正版Windows的购买成本Windows 11官方价格解析微软...
安卓系统如何卸载app,轻松掌... 手机里的App越来越多,是不是感觉内存不够用了?别急,今天就来教你怎么轻松卸载安卓系统里的App,让...
怎么复制照片安卓系统,操作步骤... 亲爱的手机控们,是不是有时候想把自己的手机照片分享给朋友,或者备份到电脑上呢?别急,今天就来教你怎么...
安卓系统应用怎么重装,安卓应用... 手机里的安卓应用突然罢工了,是不是让你头疼不已?别急,今天就来手把手教你如何重装安卓系统应用,让你的...
iwatch怎么连接安卓系统,... 你有没有想过,那款时尚又实用的iWatch,竟然只能和iPhone好上好?别急,今天就来给你揭秘,怎...
iphone系统与安卓系统更新... 最近是不是你也遇到了这样的烦恼?手机更新系统总是失败,急得你团团转。别急,今天就来给你揭秘为什么iP...