def test_simple_recurrent_converter(self): input_dim = (1, 8) output_dim = (1, 2) inputs = [('input', datatypes.Array(*input_dim))] outputs = [('output', datatypes.Array(*output_dim))] builder = NeuralNetworkBuilder(inputs, outputs) W_h = numpy.random.rand(2, 2) W_x = numpy.random.rand(2, 8) b = numpy.random.rand(2, 1) builder.add_simple_rnn(name='RNN', W_h=W_h, W_x=W_x, b=b, hidden_size=2, input_size=8, input_names=['input', 'h_init'], output_names=['output', 'h'], activation='TANH', output_all=False, reverse_input=False) context = ConvertContext() node = SimpleRecurrentLayerConverter.convert( context, builder.spec.neuralNetwork.layers[0], ['input'], ['output']) self.assertTrue(node is not None)
def test_simple_recurrent_converter(self): input_dim = (1, 8) output_dim = (1, 2) inputs = [('input', datatypes.Array(*input_dim))] outputs = [('output', datatypes.Array(*output_dim))] builder = NeuralNetworkBuilder(inputs, outputs) W_h = numpy.random.rand(2, 2) W_x = numpy.random.rand(2, 8) b = numpy.random.rand(2, 1) builder.add_simple_rnn(name='RNN', W_h=W_h, W_x=W_x, b=b, hidden_size=2, input_size=8, input_names=['input', 'h_init'], output_names=['output', 'h'], activation='TANH', output_all=False, reverse_input=False) model_onnx = convert_coreml(builder.spec) self.assertTrue(model_onnx is not None)