当前位置: 七九推 > IT编程>开发语言>Java > tf.placeholder函数的用法

tf.placeholder函数的用法

2022年06月23日 Java 我要评论
Tensorflow中的palceholder,中文翻译为占位符       在代码层面,每一个tensor值在graph上都是一个op,当我们将train数

Tensorflow中的palceholder,中文翻译为占位符 

     在代码层面,每一个tensor值在graph上都是一个op,当我们将train数据分成一个个minibatch然后传入网络进行训练时,每一个minibatch都将是一个op,这样的话,一副graph上的op未免太多,也会产生巨大的开销;于是就有了tf.placeholder(),我们每次可以将 一个minibatch传入到x = tf.placeholder(tf.float32,[None,32])上,下一次传入的x都替换掉上一次传入的x,这样就对于所有传入的minibatch x就只会产生一个op,不会产生其他多余的op,进而减少了graph的开销。

函数形式:

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

函数参数

  • dtype:数据类型。常用的是tf.float32,tf.float64等数值类型
  • shape:数据形状。默认是None,就是一维值,也可以是多维(比如[2,3], [None, 3]表示列是3,行不定)
  • name:名称

返回

  Tensor类型。

代码示例1:

import tensorflow as tf
import numpy as np
 
a = tf.placeholder(tf.float32)
b = tf.placeholder(tf.float32)
 
output = tf.multiply(a, b)
 
with tf.Session() as sess:
    print(sess.run(output, feed_dict = {a:[3.], b: [4.]}))

代码示例2: 

 
import tensorflow as tf
import numpy as np
 
x = tf.placeholder(tf.float32, shape=(1024, 1024))
y = tf.matmul(x, x)
 
with tf.Session() as sess:
    #print(sess.run(y))  # ERROR:此处x还没有赋值
    rand_array = np.random.rand(1024, 1024)
    print(sess.run(y, feed_dict={x: rand_array})) 

代码示例3:

其实feed_dict可以喂东西给其他tensor,不止placeholder这一种。

import tensorflow as tf

a = tf.placeholder(dtype=tf.float32)
b = tf.constant(2.0)
c = tf.add(a, b)

with tf.Session() as sess:
    print sess.run(c, feed_dict = {a: 1.0, b: 3.0})  #结果为4.0

运行的结果为4,这里利用feed_dict将3.0送给了tensor b

参考资料:https://www.jianshu.com/p/ec261a65e3c9

(0)
打赏 微信扫一扫 微信扫一扫

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2022  七九推 保留所有权利. 粤ICP备17035492号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com