我在fastai v2.3.1上构建了一个模型。当我尝试调用show_batch和show_results函数时,它们没有任何显示。以下是出现问题的代码:
from fastai.vision.all import *from fastai.data.all import *import fastai.visionimport zipfile as zfimport randomimport timeitfields = DataBlock(blocks=(ImageBlock, CategoryBlock), get_items=get_image_files, get_y=yer, splitter=RandomSplitter(valid_pct=0.2, seed=random.randint(0, 10)), item_tfms=RandomResizedCrop(224, min_scale=0.5), batch_tfms=aug_transforms() )dls = fields.dataloaders(os.path.join(Path(os.getcwd()), "train"), num_workers=0, bs=32)dls.show_batch()learn = cnn_learner(dls, resnet18, metrics=error_rate)learn.fine_tune(2)learn.show_results()
我可以使用模型,但这两个函数不起作用。
回答:
我遇到了同样的问题,在这里找到了答案:https://www.debuggingtissue.com/latest-articles/how-to-save-fastai-plots-when-using-an-external-server-or-terminal-environment
基本上,PyPlot创建了一个图形对象但没有显示它,所以你需要立即告诉plt保存/显示缓冲区。
因此,在调用show_results()后只需输入”plt.show()”就行了!
import matplotlib.pyplot as plt
…
learn.show_results()
plt.show()
(我花了很长时间才发现这一点,希望这对你有帮助!)