使用Python Tensorflow输入形状(53,)。。。什么';这个逗号是怎么回事?

使用Python Tensorflow输入形状(53,)。。。什么';这个逗号是怎么回事?,python,python-3.x,tensorflow,keras,keras-layer,Python,Python 3.x,Tensorflow,Keras,Keras Layer,我被下面这行代码弄糊涂了: input\u img=input(shape=(53,)) 我有一批52幅图像,但是元组在逗号之后怎么可能什么都没有呢?这是什么意思 它与标量相同,但被解释为形状 如果您感到困惑,您可以看看列表如何滥用此功能,例如: print([ 0, 1, 2, # <- This comma is unnecessary but won't break your code ]) 打印([ 0, 1. 2,#函数输入为参数形

我被下面这行代码弄糊涂了:

input\u img=input(shape=(53,))

我有一批52幅图像,但是元组在逗号之后怎么可能什么都没有呢?这是什么意思

它与标量相同,但被解释为形状

如果您感到困惑,您可以看看列表如何滥用此功能,例如:

print([
       0,
       1,
       2,  # <- This comma is unnecessary but won't break your code
])
打印([
0,
1.

2,#函数输入为参数形状

使用逗号可以使用单个项定义元组。如果仅使用(53)或53,它将被解释为整数:

type( 53 )
<class 'int'>
type( (53) )
<class 'int'>
type( (53,) )
<class 'tuple'>

因此,为了用单个项定义元组,您必须添加逗号:(53,)

对于图像,它应该是这样的
shape=(28,28,3)
,层的预期输入是4维
(无,28,28,3)
第一个是批处理size@ShubhamShaswat你可能就在这里。现在看看这个。我在这里举了一个例子:通常,只要使用
input\u shape=X\u train.shape[1:][/code>你能详细说明一下吗?我不明白你的意思,你只是在那里打印一个列表?看最后一个逗号;)我认为这与Co的答案相结合是有道理的!
(53) + 2 # would raise an error if (53) was a tuple
(53 + 1)*2 # would also raise an error if (53+1) was a tuple