【问题标题】:TypeError: 'int' object is not iterable when using model.fit()TypeError: 'int' 对象在使用 model.fit() 时不可迭代
【发布时间】:2021-03-31 05:33:25
【问题描述】:

我尝试拟合我的模型,但遇到“类型错误”。这段代码的编写与 kaggle CNN 源代码示例中描述的几乎相同。

https://www.kaggle.com/kanncaa1/convolutional-neural-network-cnn-tutorial/notebook

但是,不断出现类型错误。我将model.fit_generator 更改为model. fit,因为该函数是从新版本的tensorflow 更新而来的。我猜想shape[0] 可以解决这个与内部相关的问题。谁能帮忙指出下面代码中的错误类型?

# model fitting
# from tensorflow 2.1.0
history = model.fit(datagen.flow(train_x, train_y, batch_size = batch_size),
                          epochs = epochs,
                          validation_data = (valid_x, valid_y),
                          steps_per_epoch = train_x.shape[0] // batch_size)

【问题讨论】:

  • 你最好检查一下 train_x,好像 train_x.shape 返回一个整数。您可能在加载数据时遇到问题,因为您的输入形状只有一个暗淡。

标签: python tensorflow deep-learning conv-neural-network


【解决方案1】:

可能的解决方案:

运行 print(x_train.shape) ,并确保除第一个维度之外的所有值都与您在模型定义期间指定的 input_shape 匹配。如果您从 kaggle 内核移植代码,那么我假设您的模型定义为:

model.add(Conv2D(filters = 8, kernel_size = (5,5),padding = 'Same', 
                 activation ='relu', input_shape = (28,28,1)))

确保x_train.shape与指定的input_shape一致。

【讨论】:

  • 非常感谢您的回答。但是,输入形状是正确的,并根据您的答案进行了双重检查。运行代码print(train_x.shape) 的结果是(15000, 249, 1, 1)。所以,我已经改了input_shape = (249, 1, 1)
猜你喜欢
  • 1970-01-01
  • 2017-09-11
  • 1970-01-01
  • 2023-01-22
  • 2018-09-29
  • 2020-02-26
  • 2015-04-06
  • 2013-10-31
相关资源
最近更新 更多