• TensorFlow和cnn神经网络学习入门


      学习了基本的神经网络知识后,要使用框架了,这样才能出来更加复杂的情况,更快的开发出模型。

      首先安装后,按照官网写了一个例子,但是又好多不懂,但只是第一步,

    看这段代码,其实给你提供了很多学习tf的线索,TensorFlow中有很多变量,变量操作也是一个模块。

    a = tf.constant(34)
    print(type(a))
    <class 'tensorflow.python.framework.ops.Tensor'>
    b = tf.zeros() # 这个函数是最容易理解的了

    还有tf.train.GradientDescentOptimizer这个对象,真的囊括了之前做的很多工作,

    __init__(
        learning_rate,  # 这个属性有默认值啊
        use_locking=False,
        name='GradientDescent'
    )
    # 看看这个train方法,有点不知道什么意思,在自己写神经网络的时候,都是按照梯度下降的公式来的,这里什么也没见到,很可能是作者隐藏了
    # 这里应该看到一个方法,update(param,gradient),使用梯度值来更新参数,这就是升级网络的核心。
    def train(cost, global_step): optimizer = tf.train.GradientDescentOptimizer(learinng_rate) train_op = optimizer.minimize(cost,global_step= global_step) return accuracy

     tf的一些张量运算方法

    tf.log(x, #   name=None)  # x不仅是数字,而可以扩展至tensor,所以TensorFlow中好多都是针对tensor的计算。
    x = tf.constant([[1., 1.], [2., 2.]])
    tf.reduce_mean(x)  # 1.5
    tf.reduce_mean(x, 0)  # [1.5, 1.5]
    tf.reduce_mean(x, 1)  # [1.,  2.]  # mean是平均值的意思,体会这个reduce的意思,大体理解就是降维。类似的tf.reduce_sum()等 



      1、神经网络最基本的原理也是函数拟合,所以lose function就显得非常重要了,我们训练的目的之一就是减小损失函数,常用的损失函数参考:https://www.cnblogs.com/hypnus-ly/p/8047214.html,比如entropy_cross,比较两个概率分布的差异,同时又使得反向传播时好计算。

      2、神经网络训练都是以一个batch为训练单位,即一批一批的训练,那么反向传播时怎么计算导数呢?可以体会,这个batch轴对于w没有什么影响,对于b有一些影响。只不过反向传播时,loss function取均值。

  • 相关阅读:
    浅谈桶排思想及[USACO08DEC]Patting Heads 题解
    【知识总结】CSS中样式覆盖优先顺序
    【知识总结】Activiti工作流学习入门
    mac下安装nginx问题解决
    spring项目中dubbo相关的配置文件出现红叉的问题
    mybatis对java自定义注解的使用——入门篇
    自学spring过程中碰到的问题list,一个一个解决
    mac下常用软件整理
    小米面试题目(测试开发岗位——不是测试,是测试工具和平台的开发岗位)
    Knockoutjs:Component and Custom Elements(翻译文章)
  • 原文地址:https://www.cnblogs.com/Robin008/p/9985947.html
Copyright © 2020-2023  润新知