def test_fit_octave_conv_low(self): inputs = Input(shape=(32, 3)) conv = octave_conv_1d(inputs, filters=13, kernel_size=3) pool = octave_dual(conv, MaxPool1D()) conv = octave_conv_1d(pool, filters=7, kernel_size=3, name='Mid') pool = octave_dual(conv, MaxPool1D()) conv = octave_conv_1d(pool, filters=5, kernel_size=3, ratio_out=1.0) flatten = octave_dual(conv, Flatten()) outputs = Dense(units=2, activation='softmax')(flatten) model = Model(inputs=inputs, outputs=outputs) model.compile(optimizer='adam', loss='sparse_categorical_crossentropy') model.summary(line_length=200) self._test_fit(model)
def test_make_dual_layer(self): inputs = Input(shape=(32, 3)) conv = OctaveConv1D(13, kernel_size=3)(inputs) pool = octave_dual(conv, MaxPool1D()) conv = OctaveConv1D(7, kernel_size=3)(pool) pool = octave_dual(conv, MaxPool1D()) conv = OctaveConv1D(5, kernel_size=3, ratio_out=0.0)(pool) flatten = octave_dual(conv, Flatten()) outputs = Dense(units=2, activation='softmax')(flatten) model = Model(inputs=inputs, outputs=outputs) model.compile(optimizer='adam', loss='sparse_categorical_crossentropy') model.summary(line_length=200) self._test_fit(model)
def test_fit_octave_conv_high(self): inputs = keras.layers.Input(shape=(32, 32, 3)) conv = octave_conv_2d(inputs, filters=13, kernel_size=3) pool = octave_dual(conv, keras.layers.MaxPool2D()) conv = octave_conv_2d(pool, filters=7, kernel_size=3, name='Octave-Mid') pool = octave_dual(conv, keras.layers.MaxPool2D()) conv = octave_conv_2d(pool, filters=5, kernel_size=3, ratio_out=0.0) flatten = keras.layers.Flatten()(conv) outputs = keras.layers.Dense(units=2, activation='softmax')(flatten) model = keras.models.Model(inputs=inputs, outputs=outputs) model.compile(optimizer='adam', loss='sparse_categorical_crossentropy') model.summary(line_length=200) self._test_fit(model)