【问题标题】:Errors in Multi class image classification using CNN使用 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)

标签: python tensorflow conv-neural-network classification image-classification


【解决方案1】:

如果batch_size 大于total_validatetotal_train,则steps_per_epoch 将小于1,从而导致'TypeError: Cannot convert 0.6 to EagerTensor of dtype int64'

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-10-21
    • 2019-04-19
    • 2020-09-03
    • 2020-02-21
    • 2020-10-09
    • 2021-11-18
    • 1970-01-01
    • 2016-04-19
    相关资源
    最近更新 更多