#python #deep-learning #neural-network #pytorch #fast-ai
Вопрос:
Я пытался следовать коду, который использует fastai v0.7.0
conv_learner
методы. Есть фрагмент, который автор использует tfms_from_model()
для преобразования входных данных. Мой вопрос здесь в том, что именно tfms_from_model()
производит?
model = vgg16(pre=True).cuda().eval()
set_trainable(model, False)
sz = 224
train_tfms, val_tfms = tfms_from_model(vgg16, sz)
Я задаю этот вопрос, потому что я не могу его использовать fastai 0.7.0
, потому что для него больше нет поддержки pytorch. Так что я просто предполагаю и вручную реализую то, что tfms_from_model()
делает. Вот реализация, которую я нашел
picture = PIL.Image.open("test/206px-Wattledcranethumb.jpg")
plt.imshow(picture)
transformed = val_tfms(np.array(picture)/255)
plt.imshow(transformed.transpose(1,2,0))
Так что же именно делает val_tfms? Это просто нормализация изображений для модели в соответствии с ожидаемыми входными данными модели? (Например, для VGG16 требуется, чтобы среднее значение по каналу вычиталось из него, а затем делилось на sd для его нормализации)
Что произойдет, если я поставлю что-то подобное?
sz = 56
train_tfms, val_tfms = tfms_from_model(vgg16, sz)
Является ли это также эквивалентным выполнению этого:
def normalize(x):
# Some arbitrary normalization
return normalized_x
picture = normalize(picture)
picture = torch.tensor(picture)
Комментарии:
1. Вы используете fast-ai v0.7.0?
2. Нет, это не так. Я пытаюсь перевести код с fast-ai v0.7.0 таким образом, чтобы мне не приходилось использовать fast-ai. Я хочу иметь возможность использовать pure pytorch для выполнения всех операций, которые выполняет fast-ai.
3. Мой вопрос на самом деле заключается в том, является ли этот код fast-ai v0.7, я спрашиваю, потому что официальное приложение для него больше недоступно, и эта функция, в частности, была удалена в новой выпущенной версии.
4. Да, в коде используется fast-ai v0.7
5. Возможно, вы захотите заглянуть сюда , где находится неофициальный дамп репозитория fast-ai v0.7.