ResNet50 и VGG16 для данных с 2 каналами - PullRequest
0 голосов
/ 31 марта 2020

Могу ли я попытаться изменить ResNet50 и VGG16, где мои данные (спектрограммы) имеют форму (64,256,2)?
Я понимаю, что могу вынуть некоторые слои и изменить их (вывод, плотно) но я не совсем уверен для входных каналов.

Кто-нибудь может предложить способ размещения 2-х каналов в моделях? Помощь очень ценится!

1 Ответ

1 голос
/ 31 марта 2020

Вы можете использовать другое количество каналов на входе (и разную высоту и ширину), но в этом случае вы не можете использовать предварительно подготовленные веса imag enet. Вы должны тренироваться с нуля. Вы можете создать их следующим образом:

from tensorflow import keras # or just import keras

vggnet = keras.applications.vgg16.VGG16(input_shape=(64,256,2), include_top=False, weights=None)

Обратите внимание на аргумент weights=None. Это означает, что веса инициализируются случайным образом. Если у вас установлено число каналов 3, вы можете использовать weights='imagenet', но в вашем случае у вас есть 2 канала, поэтому он не будет работать, и вам придется установить его на None. include_top=False - это то, что вы сами можете добавить в финальные классификационные слои с разными категориями. Вы также можете создать vgg19.VGG19 таким же образом. Для Re sNet вы также можете создать его следующим образом:

resnet = keras.applications.resnet50.ResNet50(input_shape=(64, 256, 2), weights=None, include_top=False)

Для других моделей и версий vgg и re snet, пожалуйста, отметьте здесь .

...