model = models.Sequential()
model.add(layers.Dense(64, activation='relu', input_shape=(1000,)))
示例代码在此处。我认为那是numpy的工作方式,但是当我尝试使用numpy时,两个定义都给出相同的结果。
答案 0 :(得分:1)
Keras中的input_shape
自变量采用tuple
个对象中的int
个,这些对象定义了图层或模型的输入尺寸。有关元组here的更多信息。
元组是一系列不可变的Python对象。
为更清楚地理解,请研究以下代码:
>>> x = ( 1 )
>>> y = ( 1 , )
>>> x[0]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'int' object is not subscriptable
>>> y[0]
1
>>> print( x )
1
>>> print( y )
(1,)
>>>
对象( 1 )
被视为单个Python int
对象。因此,我们无法像在Python list
中那样对它进行下标或访问项目。而( 1 , )
表示将创建具有单个元素的tuple
。该元组可以像列表一样被下标。
另外,请注意Python打印两个对象的方式不同。
Keras
input_shape
参数需要一个可下标的对象,其中每个维度的大小都可以存储为整数。
因此,我们使用( 1000 , )
代替( 1000 )
。