首页 > 解决方案 > 在 Deepnote 中运行 ImageDataBunch 的问题

问题描述

我在 Deepnote 中运行这行代码时遇到问题,有人知道为什么吗?

data = ImageDataBunch.from_folder(path, train="train", valid ="test",ds_tfms=get_transforms(), size=(256,256), bs=32, num_workers=4).normalize()

错误说:

NameError: name 'ImageDataBunch' is not defined

之前,我已经导入了 Fastai 库。所以我不明白!

标签: numpydeepnote

解决方案


Deepnote 中的 FastAI 设置并不是那么简单。最好使用自定义环境,您可以在其中设置内容,Dockerfile然后在笔记本中进行所有操作。我不确定ImageDataBunch您尝试执行的操作在 FastAI v1 和 v2 中是否以相同的方式工作,但这里是 v1 的详细信息。

这是一个通过 conda 设置 FastAI 环境的 Dockerfile:

# This is Dockerfile

FROM deepnote/python:3.9


RUN wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O ~/miniconda.sh
RUN bash ~/miniconda.sh -b -p $HOME/miniconda
ENV PATH $HOME/miniconda/bin:$PATH
ENV PYTONPATH $HOME/miniconda

RUN $HOME/miniconda/bin/conda install python=3.9 ipykernel -y
RUN $HOME/miniconda/bin/conda install -c fastai -c pytorch fastai -y
RUN $HOME/miniconda/bin/python -m ipykernel install --user --name=conda
ENV DEFAULT_KERNEL_NAME "conda"

之后,您可以fastai在 notebook 中测试导入:

import fastai
from fastai.vision import *

print(fastai.__version__)

ImageDataBunch

如果您下载并解压此示例 MNIST 数据集,您应该能够按照您的建议加载数据:

data = ImageDataBunch.from_folder(path, train="train", valid ="test",ds_tfms=get_transforms(), size=(256,256), bs=32, num_workers=4).normalize()

随意查看或克隆我的 Deepnote 项目以继续进行此工作。


推荐阅读