ni8*_*8mr 7 python scikit-learn deep-learning resnet pytorch
如何使用PyTorch上的fastai实现加载预训练模型?就像在SkLearn中一样,我可以使用pickle将模型转储到文件中,然后加载并稍后使用.在声明像bellow这样的学习实例之后,我使用了.load()方法来加载以前保存的权重:
arch=resnet34
data = ImageClassifierData.from_paths(PATH, tfms=tfms_from_model(arch, sz))
learn = ConvLearner.pretrained(arch, data, precompute=False)
learn.load('resnet34_test')
Run Code Online (Sandbox Code Playgroud)
然后预测图像的类:
trn_tfms, val_tfms = tfms_from_model(arch,100)
img = open_image('circle/14.png')
im = val_tfms(img)
preds = learn.predict_array(im[None])
print(np.argmax(preds))
Run Code Online (Sandbox Code Playgroud)
但它让我错误:
ValueError: Expected more than 1 value per channel when training, got input size [1, 1024]
Run Code Online (Sandbox Code Playgroud)
如果我使用此代码learn.fit(0.01, 3)
而不是learn.load()
.我真正想要的是避免在我的应用程序中的训练步骤.
只要一批数据包含单个元素,就会出现此错误。
解决方案1:在learn.load('resnet34_test')之后调用learn.predict()
解决方案 2:从训练集中删除 1 个数据点。
归档时间: |
|
查看次数: |
5042 次 |
最近记录: |