Что именно делает » tfms_from_model ()`?

#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.