예제 #1
0
            FHardtanhTest,
            LayerReLUTest,
            FReLUTest,
            LayerELUTest,
            FPELUTest,
    ]:
        for i in range(10):
            model = act_type()
            model.eval()

            input_np = np.random.uniform(0, 1, (1, 3, 224, 224))
            input_var = torch.FloatTensor(input_np)

            torch.onnx.export(model,
                              input_var,
                              "_tmpnet.onnx",
                              verbose=True,
                              input_names=['test_in'],
                              output_names=['test_out'])

            onnx_model = onnx.load('_tmpnet.onnx')
            k_model = onnx_to_keras(onnx_model, ['test_in'])
            os.unlink('_tmpnet.onnx')

            error = check_torch_keras_error(model, k_model, input_np)
            print('Error:', error)
            if max_error < error:
                max_error = error

    print('Max error: {0}'.format(max_error))
예제 #2
0
                    model = LayerTest(kernel_size=kernel_size,
                                      padding=padding,
                                      stride=stride)
                    model.eval()

                    input_np = np.random.uniform(0, 1, (1, 3, 224, 224))
                    input_var = Variable(torch.FloatTensor(input_np))

                    torch.onnx.export(model,
                                      input_var,
                                      "_tmpnet.onnx",
                                      verbose=True,
                                      input_names=['test_in'],
                                      output_names=['test_out'])

                    onnx_model = onnx.load('_tmpnet.onnx')
                    k_model = onnx_to_keras(onnx_model, ['test_in'],
                                            change_ordering=change_ordering)

                    error = check_torch_keras_error(
                        model,
                        k_model,
                        input_np,
                        change_ordering=change_ordering)
                    print('Error:', error)

                    if max_error < error:
                        max_error = error

    print('Max error: {0}'.format(max_error))
예제 #3
0
            for stride in [1, 2, 3]:
                for bias in [True, False]:
#                     for dilation in [1, 2, 3]:
                    for dilation in [3,]:
                        for groups in [1, 3]:
                            # ValueError: strides > 1 not supported in conjunction with dilation_rate > 1
                            if stride > 1 and dilation > 1:
                                continue

                            model = LayerTest(
                                3, groups,
                                kernel_size=kernel_size, padding=padding,
                                stride=stride, bias=bias, dilation=dilation, groups=groups)
                            model.eval()

                            input_np = np.random.uniform(0, 1, (1, 3, 224, 224))
                            input_var = Variable(torch.FloatTensor(input_np))

                            torch.onnx.export(model, input_var, "_tmpnet.onnx", verbose=True, input_names=['test_in'], output_names=['test_out'])

                            onnx_model = onnx.load('_tmpnet.onnx')
                            k_model = onnx_to_keras(onnx_model, ['test_in'])

                            error = check_torch_keras_error(model, k_model, input_np, epsilon=1e-2)
                            print('Error:', error)

                            if max_error < error:
                                max_error = error

    print('Max error: {0}'.format(max_error))