placeholder 张量维数 张量的shape

下面是重点:

shape中元素的个数 = 张量的维数 = 张量对应的值的中括号的组数。
如x = K.placeholder(shape=(2,3,4))。表示:
x有3维;
第一维(第一组中括号)含有2个元素;
第二维(第二组中括号)含有3个元素;
第三维(第三组中括号)含有4个元素;

因此在运行session时,x需要喂入的数据需要满足以上条件,程序如下:

from keras import backend as K
import tensorflow as tf
import numpy as np

x = K.placeholder(shape=(2,3,4),dtype=tf.int32)

sess = tf.Session()
sess.run(x, feed_dict = {x:np.ones(shape=(2,3,4))})
sess.close()

运行结果如下:

array([[[1, 1, 1, 1],
[1, 1, 1, 1],
[1, 1, 1, 1]],
[[1, 1, 1, 1],
[1, 1, 1, 1],
[1, 1, 1, 1]]])


正文开始,总结在最后

from keras import backend as K
import tensorflow as tf

sess = tf.Session()

a1 = K.placeholder(shape = (1,3))
a2 = K.placeholder(shape = (3,)) 
# 此处填写(3,)与(3)均可。但(3,) != 3, 而(3) == 3。故(3,)与(3)含义不同

a11, a22 = sess.run([a1, a2], feed_dict = {a1:[[6,7,8]], a2:[6,7,8]})

print("a11:{}".format(a11),"a22:{}".format(a22),sep='\n')
#a11:[[6. 7. 8.]]
#a22:[6. 7. 8.]

a11.shape
#(1, 3)
a22.shape
#(3,)
K.shape(a11)
#<tf.Tensor 'Shape_2:0' shape=(2,) dtype=int32>
K.shape(a22)
#<tf.Tensor 'Shape_3:0' shape=(1,) dtype=int32>

sess.run(K.shape(a11))
#array([1, 3])
sess.run(K.shape(a22))
#array([3])

sess.close()

总结:

1.建立张量的方式:

K.placeholder(dtype=tf.int32,shape = (1,3)) 其中,shape是元组

shape中元素的个数 = 张量的维数 = 张量对应的值的中括号的组数。
张量至少有一维,张量对应的值至少有一组中括号

如a1是二维张量,而a2是一维张量。故a1、a2运行后对应的值分别有2组中括号和1组中括号。

2.a11.shape和K.shape(a11)不同。
其中a11.shape是元组,可以直接显示shape。即显示a11的维数及各维的个数。

而K.shape(a11)是张量,无法直接显示shape。只能显示a11的维数。只有当K.shape()这个张量运行session后,才可以显示shape。即显示a11的维数及各维的个数。

故a11.shape会显示a11有2维,并且第一维的个数是1,第二维的个数是3.

而K.shape(a11)(K.shape()返回的永远是一个一维张量)这个张量由于还没有运行session,因此还没有值。只会显示此张量第一维的个数是2。含义是a11有2个维数。

当运行session后,K.shape(a11)这个张量将拥有值,显示为一个一维张量:array([1, 3])。含义是a11有2维,并且第一维的个数是1,第二维的个数是3.

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值