无法预测 fastai 的输出
Not able to predict output in fastai
这里是菜鸟。
这是我正在处理的数据集https://www.kaggle.com/arpitjain007/game-of-deep-learning-ship-datasets
我正在使用 fastai,我已经成功构建了模型,但我不知道如何使用 'test.csv' 文件对其进行测试。
这是我的代码
from fastai import *
from fastai.vision import *
path = '../input/train'
path = Path(path)
path.ls()
df = pd.read_csv(path/'train.csv')
data = ImageDataBunch.from_df('../input/train/images', df, ds_tfms=get_transforms(), size=224, bs=64 ).normalize(imagenet_stats)
learn = cnn_learner(data, models.resnet50, metrics=accuracy, model_dir='/kaggle/working/models')
learn.fit_one_cycle(5)
df_test = pd.read_csv('../input/test_ApKoW4T.csv')
我不知道如何使用测试数据框进行预测。
在初始化数据时向其添加测试束
data = (CustomImageList.from_csv_custom(path=path, csv_name='train.csv', imgIdx=1)
.split_by_rand_pct(.2)
.label_from_df(cols='label')
.add_test(test, label=0)
.transform(tfms)
.databunch(bs=128, num_workers=0)
.normalize(imagenet_stats))
稍后你会得到预测结果
predictions, *_ = learn.get_preds(DatasetType.Test)
labels = np.argmax(predictions, 1)
# output to a file
submission_df = pd.DataFrame({'ImageId': list(range(1,len(labels)+1)), 'Label': labels})
submission_df.to_csv(f'submission.csv', index=False)
我所要做的就是创建一个图像列表
train = ImageList.from_df(df,'../input/train/images')
test = ImageList.from_df(df_test, '../input/train/images')
然后创建 ImageDataBunch
data = ImageDataBunch.from_df('../input/train/images', df,
ds_tfms=get_transforms(), size=224, bs=64 ).normalize(imagenet_stats)
然后添加测试
data.add_test(test)
然后使用
进行预测
predictions, *_ = learn.get_preds(DatasetType.Test)
labels = np.argmax(predictions, 1)
df_test['category'] = labels
诀窍是使用 ImageList
而不是 ImageDataBunch
。
这里是菜鸟。
这是我正在处理的数据集https://www.kaggle.com/arpitjain007/game-of-deep-learning-ship-datasets
我正在使用 fastai,我已经成功构建了模型,但我不知道如何使用 'test.csv' 文件对其进行测试。
这是我的代码
from fastai import *
from fastai.vision import *
path = '../input/train'
path = Path(path)
path.ls()
df = pd.read_csv(path/'train.csv')
data = ImageDataBunch.from_df('../input/train/images', df, ds_tfms=get_transforms(), size=224, bs=64 ).normalize(imagenet_stats)
learn = cnn_learner(data, models.resnet50, metrics=accuracy, model_dir='/kaggle/working/models')
learn.fit_one_cycle(5)
df_test = pd.read_csv('../input/test_ApKoW4T.csv')
我不知道如何使用测试数据框进行预测。
在初始化数据时向其添加测试束
data = (CustomImageList.from_csv_custom(path=path, csv_name='train.csv', imgIdx=1)
.split_by_rand_pct(.2)
.label_from_df(cols='label')
.add_test(test, label=0)
.transform(tfms)
.databunch(bs=128, num_workers=0)
.normalize(imagenet_stats))
稍后你会得到预测结果
predictions, *_ = learn.get_preds(DatasetType.Test)
labels = np.argmax(predictions, 1)
# output to a file
submission_df = pd.DataFrame({'ImageId': list(range(1,len(labels)+1)), 'Label': labels})
submission_df.to_csv(f'submission.csv', index=False)
我所要做的就是创建一个图像列表
train = ImageList.from_df(df,'../input/train/images')
test = ImageList.from_df(df_test, '../input/train/images')
然后创建 ImageDataBunch
data = ImageDataBunch.from_df('../input/train/images', df,
ds_tfms=get_transforms(), size=224, bs=64 ).normalize(imagenet_stats)
然后添加测试
data.add_test(test)
然后使用
进行预测predictions, *_ = learn.get_preds(DatasetType.Test)
labels = np.argmax(predictions, 1)
df_test['category'] = labels
诀窍是使用 ImageList
而不是 ImageDataBunch
。