zoukankan      html  css  js  c++  java
  • TensorFlow2_200729系列---15、交叉熵求梯度实例

    TensorFlow2_200729系列---15、交叉熵求梯度实例

    一、总结

    一句话总结:

    loss = tf.reduce_mean(tf.losses.categorical_crossentropy(tf.one_hot(y,depth=2), logits, from_logits=True))

    1、测试例子中输入x=tf.random.normal([1,3]),x是[1,3]和[2,3]分别表示什么意思?

    x是[1,3]:前面的1表示是一个输入(对应的y就是一个),后面的3表示下一层三个节点
    x是[2,3]:前面的2表示是2个输入(对应的y就是两个),后面的3表示下一层三个节点

    二、交叉熵求梯度实例

    博客对应课程的视频位置:

    import tensorflow as tf 
    
    
    tf.random.set_seed(4323)
    # 这里的[1,3]表示只有一个输入
    # 如果这里是2,3,表示的就是两个输入
    # 如果这里是两个输入,那么y的真实值(label)也要是两个
    x=tf.random.normal([1,3])
    
    w=tf.random.normal([3,2])
    
    b=tf.random.normal([2])
    
    y = tf.constant([0])
    
    
    with tf.GradientTape() as tape:
    
        tape.watch([w, b])
        logits = (x@w+b)
        print(logits)
        loss = tf.reduce_mean(tf.losses.categorical_crossentropy(tf.one_hot(y,depth=2), logits, from_logits=True))
    
    grads = tape.gradient(loss, [w, b])
    print('w grad:', grads[0])
    
    print('b grad:', grads[1])
    tf.Tensor([[ 0.09070531 -0.5579208 ]], shape=(1, 2), dtype=float32)
    w grad: tf.Tensor(
    [[-0.12150346  0.12150346]
     [-0.47514102  0.47514102]
     [-0.30336627  0.30336627]], shape=(3, 2), dtype=float32)
    b grad: tf.Tensor([-0.3432992  0.3432992], shape=(2,), dtype=float32)
     
    我的旨在学过的东西不再忘记(主要使用艾宾浩斯遗忘曲线算法及其它智能学习复习算法)的偏公益性质的完全免费的编程视频学习网站: fanrenyi.com;有各种前端、后端、算法、大数据、人工智能等课程。
    博主25岁,前端后端算法大数据人工智能都有兴趣。
    大家有啥都可以加博主联系方式(qq404006308,微信fan404006308)互相交流。工作、生活、心境,可以互相启迪。
    聊技术,交朋友,修心境,qq404006308,微信fan404006308
    26岁,真心找女朋友,非诚勿扰,微信fan404006308,qq404006308
    人工智能群:939687837

    作者相关推荐

  • 相关阅读:
    Ubuntu 下配置ftp服务端
    mysql的sql文件的备份与还原
    Virtualbox后台管理之VBoxManage
    主从库延迟对项目质量的影响
    jenkins / ant / jmeter 持续集成接口自动化
    infer 检验IOS项目
    pmd静态代码分析
    利用线上数据验证系统 Gor
    python flask (一)
    python SQLAlchemy
  • 原文地址:https://www.cnblogs.com/Renyi-Fan/p/13432931.html
Copyright © 2011-2022 走看看