zoukankan      html  css  js  c++  java
  • 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取均值。

  • 相关阅读:
    ios英语口语800句应用源码
    乐够GO应用源码完整版
    学生信息管理系统应用ios源码iPad版
    安卓版蝌蚪播放器客户端应用源码完整版
    一个Brushes笔画应用ios源码完整版
    模仿百度卫士应用最新版源码下载
    高仿QQ的即时通讯应用带服务端软件安装
    较好的IOS新闻客户端应用源码
    中国科学报客户端应用源码
    二叉树基础操作
  • 原文地址:https://www.cnblogs.com/Robin008/p/9985947.html
Copyright © 2011-2022 走看看