神经网络参数与tensorflow变量

20人阅读 评论(0) 收藏 举报

神经网络中的参数,包括权重、偏置等等,tensorflow是如何保存使用这些参数的呢?事实上在tensorflow中,用变量tf.Variable保存和使用这些参数,和其他语言类似,tensorflow中的变量在使用时也需要指定初始值,一般使用随机数给tensorflow中的变量初始化。

Weights = tf.Variable(tf.random_normal([2,3],stddev=2))

通常在c语言中,我们定义一个变量时会用到如下函数:

int a = 2 #定义一个整形变量a,并初始化a的值为2

而在python中呢:

a = 2

不需要做任何类型声明,这也是python的优势所在。

而我们上面在tensorflow中定义的weights变量呢,用到tf.Variable变量声明函数:下面是在python交互式环境jupyter的编译器下,官方给出的变量声明函数的用法:

可以看到:括号内第一个参数赋初始值之外,还需要指定大量其他参数,我们暂且不讨论,在这赋初始值我们用到了tf.random_normal()函数,同样,给出这个函数的用法:

我在这解释下这个函数,tf.random_normal()函数:从正态分布中输出随机值,这个值可以是常数或者n维数组,可以看到函数的参数指定了函数的几个属性:shape:输出值的维度,类似于之前提到的张量。mean=0.0,意思是输出的元素的均值是0,stdeev = 1,意思是输出的元素的标准差是1。当然这些都是默认值,我们可以根据自己的实际需要指定。我之所以把它这么详细的写出来,就是为了提醒大家,当大家在以后的学习中,遇到自己没有使用过的函数时,一定要自己亲自去查一查,具体的函数用法,这样不断的积累,不断的使用,就会越来越熟悉。这里提到的是正态分布的随机数,除了正态分布随机数,还有一些其他随机数生成器下面列出tensorflow支持的所有随机数生成器:

函数名随机数分布主要参数
tf.random_normal正态分布平均值、标准差、取值类型
tf.truncated_normal正态分布,如果随机出来的值偏离平均值超过2个标准差,这个数将会被重新随机平均值、标准差、取值类型
tf.random_uniform均匀分布最小、最大取值,取值类型
tf.random_gamma伽马分布形状参数aplha,尺寸参数beta,取值类型

此外,tensorflow还支持常数声明来初始化变量。

函数名称功能样例
tf.zeros(别丢了s)产生全0的数组tf.zeros([2,3],int32)------[[0,0,0],[0,0,0]]
tf.ones(别丢了??哈哈)产生全1 的数组tf.ones([2,3],int32)-------[[1,1,1],[1,1,1]]
tf.fill产生一个全部为给定数字的数组tf.fill([2,3],9)---------[[9,9,9],[9,9,9]]
tf.constant产生一个给定值的常量tf.constant([1,2,3])----[1,2,3]
在神经网络中,我们通常会使用常数来设置偏置项初始值。除了随机数和常数,tensorflow还支持通过使用其他变量的初始值来初始化新的变量。下面给出相关代码:
w2 = tf.Variable(w1.initialized_value())#把w1的初始值赋给w2
w3 = tf.Variable(w1.initialized_value()*3)#把w1的初始值的2倍赋值给w3

查看评论

机器学习之神经网络

本课程主要讲解神经元模型、权重、阈值、激活函数等定义,讲解感知机与多层网络,讲解误差逆传播算法,全局最小和局部最小的概念,讲解梯度寻优方法,过拟合问题,深度学习由来等知识点。
  • 2018年01月09日 03:13

Tensorflow变量表示神经网络参数

上一部分我们讲到神经网络结构中每个神经元都有参数,那么这些神经网络参数该如何在Tensorflow中呈现呢?通常我们知道用变量可表示相应的参数,那么Tensorflow中变量(tf.Variable)...
  • zhonghua18517
  • zhonghua18517
  • 2017-06-06 20:37:38
  • 747

【TensorFlow】神经网络参数与变量(四)

TensorFlow神经网络参数与变量
  • brucewong0516
  • brucewong0516
  • 2017-12-12 00:20:39
  • 94

tensorflow的基本用法(十)——保存神经网络参数和加载神经网络参数

tensorflow的基本用法(十)——保存神经网络参数和加载神经网络参数
  • Quincuntial
  • Quincuntial
  • 2017-04-20 19:57:47
  • 3254

tensorflow存储读取神经网络参数

import tensorflow as tf import numpy as np #W = tf.Variable([[1,2,3],[3,4,5]], dtype = tf.float32,...
  • fireflychh
  • fireflychh
  • 2017-06-24 20:06:31
  • 809

神经网络参数和tensorflow变量

神经网络参数是神经网络实现分类和回归的重要部分,要了解tensorflow如何组织、保存以及使用神经网络中的参数的。tensorflow中的变量tf.Variable()的作用就是保存和更新神经网络的...
  • gentelyang
  • gentelyang
  • 2018-03-05 17:03:29
  • 33

神经网络参数和Tensorflow变量

tensorflow中的变量是张量的一种。定义变量:weights=tf.Variable(tf.random_normal([2,3]),stddev=2)#产生一个2*3的矩阵,矩阵的元素是均值为...
  • qq_30339595
  • qq_30339595
  • 2018-02-09 22:01:57
  • 58

【神经网络学习笔记1】利用tensorflow完成的简单BP神经网络&超参数简单分析

菜鸡分享一下自己的学习历程 由于网上有很多对神经网络的更为详细和深度的介绍,在我的文章中更重于对结果的探讨而不是原理的理解(其实我自己也不明白咋回事手动滑稽) 这次利用的是tensorflow官方...
  • Cfather
  • Cfather
  • 2018-02-04 22:18:06
  • 77

tensorflow冻结部分层,只训练某一层

其实fine tune就是这样子的,如何把某些层冻结,然后训练最后一层。那么在tensorflow里如何实现呢?优化的时候,只选择优化特定层的参数即可。如下:-Python 代码1#定义优化算子2op...
  • b876144622
  • b876144622
  • 2018-04-16 16:45:11
  • 98

Tensorflow 实现经典卷积神经网络AlexNet

AlexNet将CNN的基本原理应用到很深很广的网络中,AlexNet主要使用到的新技术点如下: (1)成功使用ReLU作为CNN的激活函数,并验证其效果在较深网络中超过了Sigmoid成功解决了S...
  • Eason_oracle
  • Eason_oracle
  • 2018-01-10 14:35:30
  • 207
    个人资料
    等级:
    访问量: 0
    积分: 98
    排名: 0
    文章分类
    文章存档