def test_errors(self):
     with paddle.static.program_guard(paddle.static.Program()):
         # The input type must be Variable.
         self.assertRaises(TypeError, F.hardsigmoid, 1)
         # The input dtype must be float16, float32, float64.
         x_int32 = paddle.fluid.data(name='x_int32',
                                     shape=[12, 10],
                                     dtype='int32')
         self.assertRaises(TypeError, F.hardsigmoid, x_int32)
         # support the input dtype is float16
         x_fp16 = paddle.fluid.data(name='x_fp16',
                                    shape=[12, 10],
                                    dtype='float16')
         F.hardsigmoid(x_fp16)
Ejemplo n.º 2
0
 def forward(self, inputs):
     outputs = self.avg_pool(inputs)
     outputs = self.conv1(outputs)
     outputs = F.relu(outputs)
     outputs = self.conv2(outputs)
     outputs = F.hardsigmoid(outputs, slope=0.2, offset=0.5)
     return paddle.multiply(x=inputs, y=outputs)
Ejemplo n.º 3
0
 def forward(self, inputs):
     outputs = self.avg_pool(inputs)
     outputs = self.conv1(outputs)
     outputs = F.relu(outputs)
     outputs = self.conv2(outputs)
     outputs = hardsigmoid(outputs)
     return paddle.multiply(x=inputs, y=outputs)
Ejemplo n.º 4
0
 def forward(self, inputs):
     outputs = self.avg_pool(inputs)
     outputs = self.conv1(outputs)
     outputs = F.relu(outputs)
     outputs = self.conv2(outputs)
     outputs = F.hardsigmoid(outputs, slope=0.2, offset=0.5)
     return inputs * outputs
 def test_dygraph_api(self):
     paddle.disable_static(self.place)
     x = paddle.to_tensor(self.x_np)
     out1 = F.hardsigmoid(x)
     m = paddle.nn.Hardsigmoid()
     out2 = m(x)
     out_ref = ref_hardsigmoid(self.x_np)
     for r in [out1, out2]:
         self.assertTrue(np.allclose(out_ref, r.numpy()))
     paddle.enable_static()
 def test_static_api(self):
     with paddle.static.program_guard(paddle.static.Program()):
         x = paddle.static.data('X', self.x_np.shape, self.x_np.dtype)
         out1 = F.hardsigmoid(x)
         m = paddle.nn.Hardsigmoid()
         out2 = m(x)
         exe = paddle.static.Executor(self.place)
         res = exe.run(feed={'X': self.x_np}, fetch_list=[out1, out2])
     out_ref = ref_hardsigmoid(self.x_np)
     for r in res:
         self.assertTrue(np.allclose(out_ref, r))
Ejemplo n.º 7
0
 def _scale(self, input, inplace):
     scale = F.adaptive_avg_pool2d(input, 1)
     scale = self.fc1(scale)
     scale = self.relu(scale)
     scale = self.fc2(scale)
     return F.hardsigmoid(scale, inplace=inplace)