首页 > 编程问答 >Kaggle 无缘无故地给我类型错误

Kaggle 无缘无故地给我类型错误

时间:2024-07-21 03:47:03浏览次数:16  
标签:python machine-learning typeerror kaggle fast-ai

Kaggle 不断给我一个 TypeError: 'NoneType' object is not iterable for the following code:

dls = DataBlock(
    blocks=(ImageBlock, CategoryBlock), 
    get_items=get_image_files, 
    splitter=RandomSplitter(valid_pct=0.2, seed=42),
    get_y=parent_label,
    item_tfms=[Resize(192, method='squish')]
).dataloaders(path_to_images, bs=32)

dls.show_batch(max_n=6)

这是完整的笔记本:

我尝试过更改笔记本的环境,但我不知道如何修复它。该代码在另一台笔记本上运行良好,但对于这台笔记本来说,它只是表现不佳。


这个错误信息 "TypeError: 'NoneType' object is not iterable" 通常出现在你尝试对一个 None 值进行迭代时,例如使用 for 循环遍历它。在你的代码中,问题可能出在以下几处:

  1. get_image_files 函数 : 确保这个函数返回的是一个图像文件路径的列表,而不是 None。检查该函数的逻辑,确保它能够找到并返回图像文件。

  2. parent_label 函数 : 确保这个函数为每个图像返回一个有效的类别标签,而不是 None。检查该函数的逻辑,确保它能够正确提取类别标签。

  3. path_to_images 变量 : 确保这个变量指向的是一个包含图像的有效路径。检查路径是否正确,以及文件夹中是否存在图像文件。

以下是一些调试建议:

  • 打印中间结果 : 在代码的不同阶段,使用 print() 打印出 get_image_files parent_label 的返回值,以及 path_to_images 的值。这可以帮助你确定哪个部分返回了 None。

  • 使用断点调试 : 如果你的 IDE 支持断点调试,可以设置断点并逐行执行代码,观察变量的值和函数的返回值。

  • 简化代码 : 尝试创建一个更简单的例子,只使用一个图像文件和一个类别标签。如果这个简单的例子能够运行,说明问题可能出在你的数据加载逻辑上。

其他可能性:

  • 库版本 : 确保你的 fastai 和其他相关库版本是最新的。有时,旧版本的库可能存在 bug。
  • Kaggle 环境 : 尝试重启你的 Kaggle kernel 或者创建一个新的 kernel。

请提供 get_image_files parent_label 函数的代码,以及 path_to_images 的值,以便我更准确地帮助你找到问题所在。

标签:python,machine-learning,typeerror,kaggle,fast-ai
From: 78773741

相关文章

  • python 舰队容器
    我正在尝试使用容器在flet中制作一个菜单,它应该是半透明的,但其中的项目不是。我尝试将opacity=1分配给元素,但没有成功-它们与容器一样透明感谢任何帮助我的代码:nickname=ft.TextField(label="xxx",hint_text="xxx")column=ft.Column(controls=[nickname......
  • Python应用程序跨子包共享的配置文件
    我正在构建一个应用程序来控制一些硬件。我在包中实现了不同类型的硬件:电机和测量设备。我的文件结构如下:name_of_my_app/__init__.pymain.pyconfig.iniCONFIG.pymotors/__init__.pyone_kind_of_motor.pymeasurement_devices/......
  • python中时间序列数据的梯度计算
    我正在尝试编写一个函数,它可以从最适合下面的线返回梯度dataframe在浏览了谷歌的几个资源之后,我仍然不确定这是如何完成的。我明白最佳拟合线的计算公式为:y=mx+b将因变量(y)设置为foos,将自变量(x)设置为DateTimeDatafram......
  • 调试用 C 编写的 Python 扩展
    我非常熟悉编写C代码,并且很擅长编写Python代码。我正在尝试学习如何用C编写可以从OSX10.15.7上的Python-3.9.X调用的模块。我已经得到了几个“helloworld”类型的示例,但是对于复杂的示例,我正在努力弄清楚如何调试我编写的C扩展。MWE:src/add.c//......
  • 具有块大小选项的 Python pandas read_sas 因索引不匹配而失败并出现值错误
    我有一个非常大的SAS文件,无法容纳在我的服务器内存中。我只需要转换为镶木地板格式的文件。为此,我使用pandas中chunksize方法的read_sas选项分块读取它。它主要是在工作/做它的工作。除此之外,一段时间后它会失败并出现以下错误。此特定SAS文件有794......
  • 使用 requests 包 python 时打开文件太多
    我正在使用Pythonrequests包向API发出大量请求。然而,在某些时候,我的程序由于“打开的文件太多”而崩溃。当我明确关闭我的会话时,我真的不知道这是怎么回事。我使用以下代码:importrequestsimportmultiprocessingimportnumpyasnps=requests.session()s.keep......
  • Python 是一种选择性解释语言吗?为什么下面的代码不起作用?
    由于程序是从上到下运行的,为什么下面的代码不执行块中的第一行就直接抛出错误?if5>2:print("TwoislessthanFive!")print("Fiveisgreaterthantwo!")错误:文件“/Users/____/Desktop/Pythonpractise/practise.py”,第3行print("五比二大!")Indentati......
  • 裁剪时间变量 Python Matplotlib Xarray
    我不确定这是否是一个愚蠢的问题,但我想按时间变量剪辑.nc文件。我在xarray中打开了数据集,但以下ds.sel行(之前已运行)仅返回错误。ds=xr.open_dataset('/Users/mia/Desktop/RMP/data/tracking/mcs_tracks_2015_11.nc')selected_days=ds.sel(time=slice('2015-11-22',......
  • 用于匹配两个数据列表中的项目的高效数据结构 - python
    我有两个列表,其中一个列表填充ID,另一个列表填充进程名称。多个进程名称可以共享一个ID。我希望能够创建一个可以使用特定ID的数据结构,然后返回与该ID关联的进程列表。我还希望能够使用特定的进程名称并返回与其连接的ID列表。我知道我可以为此创建一个字典,但是I......
  • 有人可以解决我的代码中的问题吗?而且我无法在我的电脑上安装 nsetools。如何在 python
    从nsetools导入Nseimportpandasaspdnse=Nse()all_stock_codes=nse.get_stock_codes()companies_with_low_pe=[]对于all_stock_codes中的代码:如果代码=='符号':继续尝试:stock_quote=nse.get_quote(代码)pe_ratio=stock_quote.get('priceT......