《Python深度学习实战:基于TensorFlow和Keras的聊天机器人》 —1.4 占位符

举报
华章计算机 发表于 2020/02/13 19:59:13 2020/02/13
【摘要】 本节书摘来自华章计算机《Python深度学习实战:基于TensorFlow和Keras的聊天机器人》 一书中第1章,第1.4节,作者是[印] 纳温·库马尔·马纳西(Navin Kumar Manaswi),刘毅冰 薛 明 译。

1.4 占位符

占位符是一个可以在之后赋给它数据的变量。它是用来接收外部输入的。占位符可以是一维或者多维,用来存储n维数组。

 image.png

 image.png

以下是对上述代码的解释:

1.导入tensorflow模块并用tf来调用它。

2.创建占位符x,指定为float类型。

3.创建张量y,它是x乘以10并加500的操作。注意x的初始值并未给定。

4.创建一个会话用于计算值。

5.在feed_dict中给定x的值以运行y。

6.输出y的值。

在下面这个例子中,创建一个2×4的矩阵(一个二维数组)用于存放一些数。然后使用和之前相同的操作来实现逐元素地乘以10并加1的操作。占位符的第一个维度是None,这意味着任何行数都可以。

也可以考虑一个二维数组而非一维数组。代码如下:

 image.png

这是一个2×4的矩阵。因此,如果把None替换为2,也可以得到相同的输出。

 image.png

但是如果创建一个形状为[3,4]的占位符(注意之后你将输入一个2×4的矩阵),将会报错如下:

 image.png

 

当调用tf.constant的时候,常量会被初始化,而且其值将不会再变化。而变量在你调用tf.Variable的时候并不会被初始化。想在TensorFlow程序里面初始化所有的变量,必须显式地调用如下的特殊操作。

 image.png

认识到init是TensorFlow子图的一个句柄很重要,它用来初始化所有的全局变量。在你调用sess.run之前,变量是没有被初始化的。


【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。