当前位置: 首页 > news >正文

猫狗训练集训练报错:Failed to find data adapter that can handle input

这里写自定义目录标题


Jupyter Notebook6.5.4
tensorflow 2.12.0
pillow 9.5.0
numpy 1.23.5
keras 2.12.0

报错详细内容:
ValueError: Failed to find data adapter that can handle input: (<class ‘tuple’> containing values of types {“<class ‘keras.preprocessing.image.DirectoryIterator’>”}), <class ‘NoneType’>

from keras.preprocessing.image import ImageDataGenerator
train_datagen=ImageDataGenerator(rescale=1./255)
training_set=train_datagen.flow_from_directory('catsdogs/train/',target_size=(50,50),batch_size=32,class_mode='binary'),
print(training_set)```
from keras.models import Sequential
from keras.layers import Conv2D,MaxPool2D,Flatten,Densemodel=Sequential()
#卷积层
model.add(Conv2D(32,(3,3),input_shape=(50,50,3),activation='relu'))
#池化层
model.add(MaxPool2D(pool_size=(2,2)))
#卷积层
model.add(Conv2D(32,(3,3),input_shape=(50,50,3),activation='relu'))
#池化层
model.add(MaxPool2D(pool_size=(2,2)))#flattening layer
model.add(Flatten())#FC layer
model.add(Dense(units=128,activation='relu'))#Dog or Cat?
model.add(Dense(units=1,activation='sigmoid'))
model.compile(optimizer='adam',loss='binary_crossentropy',metrics=['accuracy'])
model.summary()
model.fit(training_set,epochs=25)

这里输出内容

经过搜索了解,原因是’flow_from_directory‘方法返回的是一个元组,而不是一个DirectoryIterator对象。这个元组只包含一个DirectoryIterator对象和一个空对象。

原因:
是keras和tensorflow的版本问题,看学习资料使用的是旧版本,运行没问题。
解决办法1:
可以把keras和tensorflow的版本降低,可以自行搜索低版本的keras和tensorflow,网上有看到keras 2.2.5版本是可以实现的。
pip install keras==2.2.5,如果不能直接安装则先把原来的版本删除,再重新安装。

解决办法2:
直接选择元组里面的对象

from keras.preprocessing.image import ImageDataGenerator
train_datagen=ImageDataGenerator(rescale=1./255)
training_set=train_datagen.flow_from_directory('catsdogs/train/',target_size=(50,50),batch_size=32,class_mode='binary'),
**print(training_set[0])**```
from keras.models import Sequential
from keras.layers import Conv2D,MaxPool2D,Flatten,Dense
model=Sequential()
#卷积层
model.add(Conv2D(32,(3,3),input_shape=(50,50,3),activation='relu'))
#池化层
model.add(MaxPool2D(pool_size=(2,2)))
#卷积层
model.add(Conv2D(32,(3,3),input_shape=(50,50,3),activation='relu'))
#池化层
model.add(MaxPool2D(pool_size=(2,2)))#flattening layer
model.add(Flatten())#FC layer
model.add(Dense(units=128,activation='relu'))#Dog or Cat?
model.add(Dense(units=1,activation='sigmoid'))
model.compile(optimizer='adam',loss='binary_crossentropy',metrics=['accuracy'])
model.summary()
model.fit(training_set[0],epochs=25)

这里输出的是一个对象

把"training_set"修改为“training_set[0]”,修改之后运行正常!

http://www.lryc.cn/news/65032.html

相关文章:

  • 中国网络安全人才需求
  • 设计模式之组合模式
  • 计算机基础书籍
  • 保龄球游戏的获胜者、找出叠涂元素----2023/4/30
  • jQuery事件
  • 初识SpringCloud
  • 安装java配置
  • KBO的选秀会有哪些规定和流程`棒球7号位
  • 男子订民宿被毁约5个家庭漂泊街头 房东:住满了,没办法
  • Vue快速入门,常用指令,生命周期
  • 【热门框架】Mybatis-Plus入门介绍看这一篇文章就足够了
  • Node【Node.js 20】新特性
  • 前端程序员的职业发展规划与路线——ChatGPT的回答
  • AlgoC++第八课:手写BP
  • 【Java笔试强训 27】
  • java紫砂壶交易购物系统 mysql
  • 7-4 多态练习-计算面积
  • 很佩服的一个Google大佬,离职了。。
  • 【Python习题集1】Python 语言基础知识
  • C语言进阶——数据在内存中的存储,你知道吗?
  • 规则引擎----easy rules
  • 你手写过一把锁吗?你对轮询缓存怎么看?
  • 深入理解 spring-boot-starter-parent
  • 基于SpringBoot的线上日志阅读器
  • 【Leetcode -405.数字转换为十六进制数 - 409.最长回文串】
  • 剑指 Offer:003 前 n 个数字二进制中 1 的个数
  • DDD系列:二、应用架构设计演变
  • Spring-IOC
  • 基于Java语言开发B/S架构实现的云HIS
  • 清洁赛道新势力,米博凭“减法”突围?