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

猫狗训练集训练报错: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,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,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.kler.cn/news/17521.html

相关文章:

  • C++ Primer第五版_第十五章习题答案(21~30)
  • Spring Boot 整合 Swagger 教程详解
  • ChatGPT写文章效果-ChatGPT写文章原创
  • leetcode 530. 二叉搜索树的最小绝对差
  • 《互联网安全产品漏洞管理规定》
  • 【Linux Network】网络编程套接字
  • 轻松掌握在已有K8s环境上安装KubeSphere
  • 【五一创作】Qt quick基础1(包含基本元素Text Image Rectangle的使用)
  • HTTP加密
  • 身份鉴别解读与技术实现分析(1)
  • 【Linux】多路转接--select、poll、epoll,非阻塞等待
  • 超大excel文件读,避免内存溢出
  • 【华为OD机试真题 Python】简单的解压缩算法 (100%通过)
  • node之Express
  • 【GAMES101】05 Rasterization(Triangles)
  • 【初学人工智能原理】【4】梯度下降和反向传播:能改(下)
  • 算法设计与分析期末复习
  • 判断密码判断密码
  • 删除游戏-类似打家劫舍
  • Canvas和SVG有什么区别?
  • java基础知识——26.反射
  • 架构集群部署
  • 深度学习 -- PyTorch学习 torchvision工具学习 Transforms模块 Normalize用法
  • Db2 hardcode一个CTE
  • 科研人必看入门攻略(收藏版)
  • B017_群函数篇
  • ( 数组和矩阵) 287. 寻找重复数 ——【Leetcode每日一题】
  • Python JSON
  • 网络安全合规-数据安全风险评估
  • 【数据结构】图笔记