| self.merge = Add() | self.merge = Add() | ||||
| if self.__down_sample: | if self.__down_sample: | ||||
| # perform down sampling using stride of 2, according to [1]. | |||||
| self.res_conv = Conv2D( | |||||
| self.res_conv = Conv2D( | |||||
| self.__channels, strides=2, kernel_size=(1, 1), kernel_initializer=INIT_SCHEME, padding="same") | self.__channels, strides=2, kernel_size=(1, 1), kernel_initializer=INIT_SCHEME, padding="same") | ||||
| self.res_bn = BatchNormalization() | self.res_bn = BatchNormalization() | ||||
| res = self.res_conv(res) | res = self.res_conv(res) | ||||
| res = self.res_bn(res) | res = self.res_bn(res) | ||||
| # if not perform down sample, then add a shortcut directly | |||||
| x = self.merge([x, res]) | x = self.merge([x, res]) | ||||
| out = x + tf.sin(x)**2 #tf.nn.relu(x) | out = x + tf.sin(x)**2 #tf.nn.relu(x) | ||||
| return out | return out |