使用 CNN 的多类图像分类中的错误
Posted
技术标签:
【中文标题】使用 CNN 的多类图像分类中的错误【英文标题】:Errors in Multi class image classification using CNN 【发布时间】:2021-12-25 06:46:03 【问题描述】:我对 CNN 和 python 还很陌生,我正在尝试对包含 3 个类的图像进行分类。每当我尝试训练我的模型时,我都会收到错误:TypeError:无法将 0.6 转换为 dtype int64 的 EagerTensor。我不完全确定该怎么做或如何解决它,希望能提供任何帮助。
代码如下:
train_gen=ImageDataGenerator(rescale=1./255)
validation_gen=ImageDataGenerator(rescale=1./255)
train_generator=train_gen.flow_from_dataframe(
train_df,
"/Users/danieladegborioye/Documents/school/FIFTH YEAR/ENGR 418 Applied Machine learning /Lego_dataset_1/training/",
x_col='filename',
y_col='category',
target_size=(150,150),
class_mode="categorical",
batch_size=32
)
validation_generator=validation_gen.flow_from_dataframe(
validate_df,
"/Users/danieladegborioye/Documents/school/FIFTH YEAR/ENGR 418 Applied Machine learning /Lego_dataset_1/training/",
x_col='filename',
y_col='category',
target_size=(150,150),
class_mode="categorical",
batch_size=32
)
epochs=10
batch_size=10
history=modell.fit(
train_generator,
epochs=epochs,
validation_data=validation_generator,
validation_steps=total_validate/batch_size,
steps_per_epoch=total_train/batch_size,
callbacks=callbacks
)
【问题讨论】:
不确定是什么问题,但我建议您确保类别列中的值是字符串。使用 train_df['category']=train_df['category'].astype(str) 【参考方案1】:如果batch_size
大于total_validate
或total_train
,则steps_per_epoch
将小于1,从而导致'TypeError: Cannot convert 0.6 to EagerTensor of dtype int64'
。
【讨论】:
以上是关于使用 CNN 的多类图像分类中的错误的主要内容,如果未能解决你的问题,请参考以下文章