在TensorFlow API中创建常量的函数原型如下所示:

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

可以看到第一个值value是必须的,可以是一个数值,也可以是一个列表。
如果是数值:

tensor=tf.constant(1)

为查看结果必须创建一个会话,并用取值函数eval()来查看创建的tensor的值:

sess=tf.Session()
with sess.as_default():print('结果是:', tensor.eval())
结果是:1

而如果value是一个列表:

tensor=tf.constant([1, 2])
sess=tf.Session()
with sess.as_default():print('结果是:', tensor.eval())
结果是:[1 2]

后面四个参数可写可不写,第二个参数表示数据类型,一般可以是tf.float32, tf.float64等:

tensor=tf.constant([1, 2], dtype=tf.float32)
sess=tf.Session()
with sess.as_default():print('结果是:', tensor.eval())
结果是: [1. 2.]

注意到数据类型相比之前发生了改变,因为这次我们指定了数据类型为float32,所以不是1 2,而是1. 2.。

第三个参数表示张量的“形状”,即维数以及每一维的大小。如果指定了第三个参数,当第一个参数value是数字时,张量的所有元素都会用该数字填充:

tensor=tf.constant(-1, shape=[2, 3])
sess=tf.Session()
with sess.as_default():print('结果是:', tensor.eval())
结果是: [[-1 -1 -1][-1 -1 -1]]

可以看到是一个二维张量,第一维大小为2, 第二维大小为3,全用数字-1填充。

而当第一个参数value是一个列表时,注意列表的长度必须小于等于第三个参数shape的大小(即各维大小的乘积),否则会报错:

tensor=tf.constant([1, 2, 3, 4, 5, 6, 7], shape=[2, 3])
Traceback (most recent call last):File "<pyshell#68>", line 1, in <module>tensor=tf.constant([1, 2, 3, 4, 5, 6, 7], shape=[2, 3])
ValueError: Too many elements provided. Needed at most 6, but received 7

这是因为函数会生成一个shape大小的张量,然后用value这个列表中的值一一填充shape中的元素。这里列表大小为7,而shape大小为2*3=6,无法正确填充,所以发生了错误。
而如果列表大小小于shape大小,则会用列表的最后一项元素填充剩余的张量元素:

tensor=tf.constant([1, 2], shape=[1, 4, 3])
sess=tf.Session()
with sess.as_default():print('结果是:', tensor.eval())
结果是: [[[1 2 2][2 2 2][2 2 2][2 2 2]]]

第四个参数name可以是任何内容,主要是字符串就行。
不输入任何内容时:

tensor=tf.constant([1, 2])
print(tensor)
Tensor("Const_16:0", shape=(2,), dtype=int32)

作为对比:

tensor=tf.constant([1, 2], name="jiayu")
print(tensor)
Tensor("jiayu_1:0", shape=(2,), dtype=int32)

第五个参数verify_shape默认为False,如果修改为True的话表示检查value的形状与shape是否相符,如果不符会报错。

tensor=tf.constant([[1, 2, 3], [4, 5, 6]], shape=[2, 3], verify_shape=True)

以上代码value与shape都是两行三列,检查结果正确。而下面的代码会报错:

tensor=tf.constant([1, 2], shape=[3, 2], verify_shape=True)

TensorFlow创建常量(tf.constant)详解相关推荐

  1. Win10 TensorFlow(gpu)安装详解

    Win10 TensorFlow(gpu)安装详解 写在前面:TensorFlow是谷歌基于DistBelief进行研发的第二代人工智能学习系统,其命名来源于本身的运行原理.Tensor(张量)意味着 ...

  2. TensorFlow Wide And Deep 模型详解与应用 TensorFlow Wide-And-Deep 阅读344 作者简介:汪剑,现在在出门问问负责推荐与个性化。曾在微软雅虎工作,

    TensorFlow Wide And Deep 模型详解与应用 TensorFlow Wide-And-Deep 阅读344  作者简介:汪剑,现在在出门问问负责推荐与个性化.曾在微软雅虎工作,从事 ...

  3. Tensorflow 2.x源码详解之开宗明义:基本介绍和张量(万文多图)

      大家好,我是爱编程的喵喵.双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中.从事机器学习以及相关的前后端开发工作.曾在阿里云.科大讯飞.CCF等比赛获得多次Top名次.现 ...

  4. Tensorflow 2.x源码详解之第三章:导数(梯度/GradientTape)

      大家好,我是爱编程的喵喵.双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中.从事机器学习以及相关的前后端开发工作.曾在阿里云.科大讯飞.CCF等比赛获得多次Top名次.现 ...

  5. 创建emp表 oracle,Oracle中创建和管理表详解

    Oracle中创建和管理表详解 更新时间:2013年08月01日 15:44:16   作者: 以下是对Oracle中的创建和管理表进行了详细的分析介绍,需要的朋友可以过来参考下 SQL> /* ...

  6. python动态生成数据库表_Python-Flask:动态创建表的示例详解

    今天小编从项目的实际出发,由于项目某一个表的数据达到好几十万条,此时数据的增删查改会很慢:为了增加提高访问的速度,我们引入动态创建表. 代码如下: from app_factory import ap ...

  7. 转 常量指针和指针常量的区别详解

    传送门 常量指针和指针常量的区别详解 在C/C++中关键字const用来定义一个只读的变量或者对象,有如下优点     (1)便于类型检查,如函数的函数 fun(const int a) a的值不允许 ...

  8. 在linux系统中创建文件夹,Linux系统中创建文件夹命令详解

    Linux系统中创建一个新的文件夹我们可以使用命令来执行,下面由学习啦小编为大家整理了Linux系统中创建文件夹命令详解,希望对大家有帮助! Linux系统中创建文件夹命令详解 一.mkdir命令使用 ...

  9. mysql创建存储过程及函数详解

    文章来源: 学习通http://www.bdgxy.com/ 目录 1. 存储过程 1.1. 基本语法 1.2 创建一个指定执行权限的存储过程 1.3?DELIMITER 的使用 2. 创建函数? 1 ...

最新文章

  1. Jakarta Commons:巧用类和组件1
  2. Mybatis(三) 映射文件详解
  3. 一个9年的技术最近一直担心找不到工作
  4. mysql 慢查询 不重启_开启mysql慢查询日志,不重启数据库的方法
  5. Spring boot(十二):Spring boot 如何测试、打包、部署
  6. rxjava背压怎样使用_使用MicroProfile应用隔板和背压
  7. mysql牵引例子_MySQL学习06(事务和索引)
  8. php案例分析百度云_百度阅读|助力推动阅读领域无障碍优化(二)
  9. 手机自动化测试:Appium源码分析之跟踪代码分析四 5
  10. 写一个案例,搞得不要不要的。尴尬了。
  11. docker 离线安装_企业级Docker私库Harbor安装详解
  12. flex右对齐_移动WEB开发 — Flex布局
  13. 数据库学习笔记【自学教程】—— 如何建立数据库
  14. 基于 Flink 的 PB 级数据即席查询实践
  15. 各大IT公司、软件公司员工等级(级别)及薪资
  16. 纵横算法之三:算法到底考什么
  17. 【Linux 】内核签名(签名内核模块)、linux 驱动签名、安装特定版本的 kernel-devel...
  18. 2020年12月编程语言排行榜
  19. python简单温度转换,python编写的简单温度转换程序
  20. 计算机分级时无法度量视频播放,无法度量视频播放性能怎么办-无法度量视频播放性能的解决方法 - 河东软件园...

热门文章

  1. ZYNQ FPGA PetaLinux构建操作系统
  2. 编译android 一加,手机内核编译教程(一加6安卓9为例实战)
  3. 三星Galaxy Book2 Pro和Galaxy Book2 Pro 360 评测怎么样
  4. 【心得】NXOpen通过选择控件选择点获取对应实体,以及选择面的法向量
  5. I服了U 报表软件等同于BI软件吗?
  6. 计算机组成原理测试习题集2
  7. Node.Js同步实现歌词显示
  8. xml to DOTA
  9. React-Native清除缓存汇总
  10. 上位机和下位机的一些解释