zoukankan      html  css  js  c++  java
  • tensorflow--交叉熵

    学而不思则罔,思而不学则怠。

    最近在看《TensorFlow 实战Google深度学习框架第二版》这本书。从头开始学习深度学习,对于细节方面进行探究。相当于重新拾起来这门”手艺“。

    这篇随笔重点是交叉熵。在本书中出现的位置是62页,章节是3.4.5完整神经网络样例程序的20行附近(可能空行不一致),这里示例代码中出现了损失函数,代码如下:

     1 import tensorflow as tf
     2 from numpy.random import RandomState
     3 
     4 batch_size = 8
     5 
     6 w1 = tf.Variable(tf.random_normal((2,3), stddev=1, seed=1))
     7 w2 = tf.Variable(tf.random_normal((3,1), stddev=1, seed=1))
     8 
     9 #定义输入的张量,第一维设为None,方便变化
    10 x = tf.placeholder(tf.float32, shape=(None, 2), name='x-input')
    11 y_ = tf.placeholder(tf.float32, shape=(None, 1), name='y-input')
    12 
    13 a = tf.matmul(x, w1)
    14 y = tf.matmul(a, w2)
    15 
    16 #cross_entropy就是损失函数
    17 y = tf.sigmoid(y)
    18 cross_entropy = -tf.reduce_mean(
    19     y_ * tf.log(tf.clip_by_value(y, 1e-10, 1.0))
    20     + (1-y_)*tf.log(tf.clip_by_value(1-y, 1e-10, 1.0)))

    我们可以看到18行这里是我修改过的代码,根据交叉熵的理论,在这个例子中交叉熵的公式应该为

    loss = -y *log(y_)-(1-y)log(1-y_)

    应该是二值分布。不过书中给的代码有谬误,20行中1-y_写成了1-y。

    参考博客https://www.cnblogs.com/qggg/p/6850120.html

    如果本文有理解错误的地方还请评论指正,你的帮助是我进步的动力。

    可以图形化看到的东西坚决不会用命令行ORZ

  • 相关阅读:
    mac配置git和github
    更新hosts后,如何清理edge的DNS缓存
    初次运行 Git 前的配置
    mac安装homebrew
    xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun
    AJAX
    HTTP协议
    HTTP状态码大全
    SQL Servers数据库_删除
    Hello Word
  • 原文地址:https://www.cnblogs.com/IGNB/p/10789648.html
Copyright © 2011-2022 走看看