• 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

    作者相关推荐

  • 相关阅读:
    可变参数函数总结
    小例子一步一步解释“函数调用过程中栈的变化过程”
    自己动手实现C标准库中sqrt()函数
    无符号整数翻转函数实现reverse_bits(unsigned int value)
    stdarg.h源代码
    判断两个字符串s1 s2所含字符是否相同
    亚马逊20120915网上机试第一题:atoi函数
    [wp7软件]wp7~~HTC官方软件~~集合贴~~
    [wp7软件]wp7~~相册加密软件~~集合贴~~
    [wp7软件]wp7~~密码管理软件~~集合贴~~
  • 原文地址:https://www.cnblogs.com/Renyi-Fan/p/13432931.html
Copyright © 2020-2023  润新知