热门标签 | 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



推荐阅读
  • 本文介绍了P1651题目的描述和要求,以及计算能搭建的塔的最大高度的方法。通过动态规划和状压技术,将问题转化为求解差值的问题,并定义了相应的状态。最终得出了计算最大高度的解法。 ... [详细]
  • [大整数乘法] java代码实现
    本文介绍了使用java代码实现大整数乘法的过程,同时也涉及到大整数加法和大整数减法的计算方法。通过分治算法来提高计算效率,并对算法的时间复杂度进行了研究。详细代码实现请参考文章链接。 ... [详细]
  • 开源Keras Faster RCNN模型介绍及代码结构解析
    本文介绍了开源Keras Faster RCNN模型的环境需求和代码结构,包括FasterRCNN源码解析、RPN与classifier定义、data_generators.py文件的功能以及损失计算。同时提供了该模型的开源地址和安装所需的库。 ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • 本文介绍了数据库的存储结构及其重要性,强调了关系数据库范例中将逻辑存储与物理存储分开的必要性。通过逻辑结构和物理结构的分离,可以实现对物理存储的重新组织和数据库的迁移,而应用程序不会察觉到任何更改。文章还展示了Oracle数据库的逻辑结构和物理结构,并介绍了表空间的概念和作用。 ... [详细]
  • 本文介绍了使用Java实现大数乘法的分治算法,包括输入数据的处理、普通大数乘法的结果和Karatsuba大数乘法的结果。通过改变long类型可以适应不同范围的大数乘法计算。 ... [详细]
  • Java容器中的compareto方法排序原理解析
    本文从源码解析Java容器中的compareto方法的排序原理,讲解了在使用数组存储数据时的限制以及存储效率的问题。同时提到了Redis的五大数据结构和list、set等知识点,回忆了作者大学时代的Java学习经历。文章以作者做的思维导图作为目录,展示了整个讲解过程。 ... [详细]
  • 本文介绍了九度OnlineJudge中的1002题目“Grading”的解决方法。该题目要求设计一个公平的评分过程,将每个考题分配给3个独立的专家,如果他们的评分不一致,则需要请一位裁判做出最终决定。文章详细描述了评分规则,并给出了解决该问题的程序。 ... [详细]
  • 本文介绍了C#中数据集DataSet对象的使用及相关方法详解,包括DataSet对象的概述、与数据关系对象的互联、Rows集合和Columns集合的组成,以及DataSet对象常用的方法之一——Merge方法的使用。通过本文的阅读,读者可以了解到DataSet对象在C#中的重要性和使用方法。 ... [详细]
  • 本文介绍了OC学习笔记中的@property和@synthesize,包括属性的定义和合成的使用方法。通过示例代码详细讲解了@property和@synthesize的作用和用法。 ... [详细]
  • baresip android编译、运行教程1语音通话
    本文介绍了如何在安卓平台上编译和运行baresip android,包括下载相关的sdk和ndk,修改ndk路径和输出目录,以及创建一个c++的安卓工程并将目录考到cpp下。详细步骤可参考给出的链接和文档。 ... [详细]
  • sklearn数据集库中的常用数据集类型介绍
    本文介绍了sklearn数据集库中常用的数据集类型,包括玩具数据集和样本生成器。其中详细介绍了波士顿房价数据集,包含了波士顿506处房屋的13种不同特征以及房屋价格,适用于回归任务。 ... [详细]
  • 本文详细介绍了Java中vector的使用方法和相关知识,包括vector类的功能、构造方法和使用注意事项。通过使用vector类,可以方便地实现动态数组的功能,并且可以随意插入不同类型的对象,进行查找、插入和删除操作。这篇文章对于需要频繁进行查找、插入和删除操作的情况下,使用vector类是一个很好的选择。 ... [详细]
  • Python操作MySQL(pymysql模块)详解及示例代码
    本文介绍了使用Python操作MySQL数据库的方法,详细讲解了pymysql模块的安装和连接MySQL数据库的步骤,并提供了示例代码。内容涵盖了创建表、插入数据、查询数据等操作,帮助读者快速掌握Python操作MySQL的技巧。 ... [详细]
  • Ihavethisfollowinginputfile:我有以下输入文件:test.csvdone_cfg,,,,port<0>,clk_in,subcktA,ins ... [详细]
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社区 版权所有