def call(self, inputs): ternary_kernel = ternarize(self.kernel, H=self.H) output = K.dot(inputs, ternary_kernel) if self.use_bias: output = K.bias_add(output, self.bias) if self.activation is not None: output = self.activation(output) return output
def call(self, inputs): ternary_kernel = ternarize(self.kernel, H=self.H) outputs = K.conv2d(inputs, ternary_kernel, strides=self.strides, padding=self.padding, data_format=self.data_format, dilation_rate=self.dilation_rate) if self.use_bias: outputs = K.bias_add(outputs, self.bias, data_format=self.data_format) if self.activation is not None: return self.activation(outputs) return outputs
def ternary_tanh(x): x = K.clip(x, -1, 1) return ternarize(x)