学习TensorFlow时遭遇TypeError错误,该如何解决?
解决TensorFlow中Flatten层的TypeError错误
你的问题出在Flatten层的参数传递上:你直接传入了60000,28,28三个位置参数,但Flatten类的初始化方法最多只接受2个位置参数(第一个是类自身的self,第二个是可选的输入形状,必须用关键字参数指定)。
你不需要手动给Flatten层传入样本数量和完整维度,它会自动根据输入数据的形状完成扁平化操作。如果要指定输入形状,只需要用input_shape关键字参数定义单个样本的形状即可(样本数量不需要在这里写,训练时会自动处理)。
修正后的代码有两种写法:
写法1:不指定输入形状(推荐,后续层会自动推断)
model = keras.models.Sequential([ keras.layers.Flatten(), keras.layers.Dense(128, activation="relu"), keras.layers.Dense(10), ])
写法2:明确指定输入形状
如果是处理MNIST这类28x28的图片数据,只需要传入单张图片的形状:
model = keras.models.Sequential([ keras.layers.Flatten(input_shape=(28,28)), keras.layers.Dense(128, activation="relu"), keras.layers.Dense(10), ])
内容的提问来源于stack exchange,提问作者Taknoor Singh
相关产品推荐
相关产品推荐

