热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

tensorflow框架学习(二)——Variable变量、Constant常量、Placeholder占位符

Variable变量1、Variable变量的创建说明:Variable是tensorflow中的一个类,需要实例化,变量根据传入的初始值

 

Variable变量

 

1、Variable变量的创建

说明:

Variable是tensorflow中的一个类,需要实例化,变量根据传入的初始值的shape决定变量的shape,如传入2*2的矩阵,则变量的shape为2*2。

 

Variable的构造函数:

tf.Variable.__init__(initial_value,trainable=True, collections=None, dtype=None, validate_shape=True, name=None)

  • initial_value:初始值,一个tensor或者是可以转化成tensor的python对象,如np.arange(10)
  • trainable:是否可训练,如果是,则可以用优化器optimizer来训练
  • name:变量名,可以用于在tensorboard中显示名字等,tensorboard是可视化工具。
  • dtype:用来设置数据类型,如tf.float32、tf.float64

 

2、初始化

说明:

变量的初始化必须在模型的其它操作运行之前先明确地完成。最简单的方法就是添加一个给所有变量初始化的操作,并在使用模型之前首先运行那个操作。

 

方法:

  1. 初始化所有:tf.global_variables_initializer()
  2. 初始化单个变量:Variable.initialized_value()

 

 3、代码示例:

import tensorflow as tf
import numpy as np#创建shape=1*1的变量
v1=tf.Variable(1)#创建shape=2*2的变量,并命名
v2=tf.Variable([[1,2],[3,4]],name='v2')#用numpy数组创建变量,设置数据类型为tf.float32
v3=tf.Variable(np.arange(0,9).reshape(3,3),dtype=tf.float32)#用tensoflow的随机tensor创建变量
v4=tf.Variable(tf.random_normal(shape=[3,3],mean=0,stddev=1))#用另一个变量的初始值*2来创建,这里别调用的变量传入要初始化
v5 = tf.Variable(v4.initialized_value()*2, name="w_twice")#创建初始化节点
init=tf.global_variables_initializer()#创建Saver保存数据
saver = tf.train.Saver()# #保存单个变量,用字典的形式传入数据{'储存名':'变量名'},对变量v2进行保存
#
saver = tf.train.Saver({'save_v2':'v2'})

with tf.Session() as sess:sess.run(init)
print('v1:\n',sess.run(v1))print('v2:\n', sess.run(v2))print('v3:\n', sess.run(v3))print('v4:\n', sess.run(v4))print('v5:\n', sess.run(v5))

 


Constant常量

说明:value与shape都固定的tensor

 

1、创建常量

用函数tf.constant()返回,函数的形式如下:

tf.constant(
    value,
    dtype=None,
    shape=None,
    name='Const',
    verify_shape=False
)

参数说明:

  • value: 符合tf中定义的数据类型的常数值或者常数列表;
  • dtype:数据类型,可选;
  • shape:常量的形状,可选;
  • name:常量的名字,可选;
  • verify_shape:常量的形状是否可以被更改,默认不可更改

 

2、代码示例

import tensorflow as tf
import numpy as npconst=tf.constant(np.arange(1,2),dtype=tf.float32)with tf.Session() as sess:print(sess.run(const))

 


Placeholder占位符

说明:作用是用来占位的,当要传入的数据不确定的时候,可以用占位符,可以使数据的使用更灵活,但是在执行Session.run()的时候如果有placeholder,必须用fetch字典给placeholder传入数据。

 

1、创建占位符

用函数tf.placeholder()返回,函数的形式如下:

tf.placeholder(
    dtype,
    shape=None,
    name=None

)

参数说明:

  • dtype:数据类型
  • shape:数据形状
  • name:名称

 

2、代码示例

import tensorflow as tf
import numpy as np
import random#创建两个2维占位符[None,1]表示不确定行数1列的数据
p=tf.placeholder(tf.float32,[None,1])#创建10*1的随机数组
arr=np.random.randn(10,1)#让两个占位符进行加法运算
add_=tf.add(p,1)#创建会话
with tf.Session() as sess:for i in range(3):#传入i+1行1列的数据p_in=arr[:i+1]print('传入的数据为:\n',p_in)#执行加法运算,由于有placeholder,所以要对feed_dict传入字典{占位符:传入数据}print('执行加法结果为:\n',sess.run(add_,feed_dict={p:p_in}))

 

 

 

转:https://www.cnblogs.com/dwithy/p/11250644.html



推荐阅读
author-avatar
日月星辰淡定鍀好男孩_933
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有