Лучший способ упростить керас-коды в цикле? - PullRequest
0 голосов
/ 11 мая 2018

Я хочу создать список, в котором можно сохранить различные настройки слоев, чтобы его можно было объединить позже, вот исходный код

_conv = Conv2D(64, kernel_size=[32,1])(_input)
_norm = BatchNormalization()(_conv)
_activ = Activation("relu")(_norm)
_maxpool_1 = MaxPooling2D()(_activ)

_conv = Conv2D(64, kernel_size=[32,2])(_input)
_norm = BatchNormalization()(_conv)
_activ = Activation("relu")(_norm)
_maxpool_2 = MaxPooling2D()(_activ)

_conv = Conv2D(64, kernel_size=[32,3])(_input)
_norm = BatchNormalization()(_conv)
_activ = Activation("relu")(_norm)
_maxpool_3 = MaxPooling2D()(_activ)

_conv = Conv2D(64, kernel_size=[32,4])(_input)
_norm = BatchNormalization()(_conv)
_activ = Activation("relu")(_norm)
_maxpool_4 = MaxPooling2D()(_activ)

merged_tensor = concatenate([_maxpool_1, _maxpool_2, _maxpool_3, _maxpool_4])

, поскольку вы можете видеть, что они все одинаковы, кромедля размеров ядра, так, чтобы упростить код, я могу создать что-то вроде этого?(в основном цикл и список)

_maxpool_list=[]
for i in range(1,5):
    _conv = Conv2D(64, kernel_size=[32,i])(_input)
    _norm = BatchNormalization()(_conv)
    _activ = Activation("relu")(_norm)
    _maxpool_list.append((MaxPooling2D()(_activ))

merged_tensor = concatenate(_maxpool_list)

или, мой вопрос может быть, каков наилучший способ создать список слоев keras, чтобы я мог загрузить их все позже

1 Ответ

0 голосов
/ 11 мая 2018
def applyLayerGroup(kernelSize, _input):
    _conv = Conv2D(64, kernel_size=[32,kenelSize], padding='same')(_input)
    _norm = BatchNormalization()(_conv)
    _activ = Activation("relu")(_norm)
    _maxpool = MaxPooling2D()(_activ)

    return _maxpool

sizes = [1,2,3,4]
_maxpool_list= [getLayerGroup(size,_input) for size in sizes]
merged_tensor = Concatenate()(_maxpool_list)

Добавлено padding='same', чтобы избежать ошибки.(Кредиты @ user36624)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...