Pytorch FastAi学习者更改数据加载器他们为什么这样做?这怎么是正确的做法?

Pytorch FastAi学习者更改数据加载器他们为什么这样做?这怎么是正确的做法?,pytorch,fast-ai,Pytorch,Fast Ai,下面的代码显示将数据加载器传递给学习者会改变它。这似乎是一种非常奇怪的行为。为什么要这样做,更改的逻辑是什么,我如何才能关闭它 更重要的是,dataloader中还包含val和测试数据。如果学习者到处改变它,那么应该很好地记录它在做什么。没有提到更改cnn_learner和learner中的数据加载器 dls = ImageDataLoaders.from_name_func(path, get_image_files(path), valid_pct=0.2, label_func=is_tb

下面的代码显示将数据加载器传递给学习者会改变它。这似乎是一种非常奇怪的行为。为什么要这样做,更改的逻辑是什么,我如何才能关闭它

更重要的是,dataloader中还包含val和测试数据。如果学习者到处改变它,那么应该很好地记录它在做什么。没有提到更改cnn_learner和learner中的数据加载器

dls = ImageDataLoaders.from_name_func(path, get_image_files(path), valid_pct=0.2,
label_func=is_tb,item_tfms=Resize(224))


x,y=next(iter(dls[0]))
print(x.min(),x.max())
这分别为0和1。然而,启动一个学习者


learn = cnn_learner(dls, resnet34, metrics=[accuracy],n_out=2,loss_func=CrossEntropyLossFlat())

x,y=next(iter(dls[0]))
print(x.min(),x.max())
我分别得到-2.11和2.64。

默认情况下,数据加载器洗牌数据集


如果您不想,您可以传递它。

您使用的是哪个版本的fastai?我想知道为什么Jeremy使用
ImageDataLoaders
作为名称,下面是,他正在识别训练数据加载器和验证数据加载器。这就是哲学家转向编程时所得到的结果。我希望在下一个fastai版本中会有
FloaralDataloader
,和
PigsdaataLoader
:)难怪,除了他,几乎没有人使用他的代码。