blob: 723a6e9e737d1f02e53b337c0c6775a2231ed5e4 [file] [log] [blame]
#
# Copyright (C) 2017 The Android Open Source Project
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
batches = 2
units = 16
input_size = 8
model = Model()
input = Input("input", "TENSOR_FLOAT32", "{%d, %d}" % (batches, input_size))
weights = Input("weights", "TENSOR_FLOAT32", "{%d, %d}" % (units, input_size))
recurrent_weights = Input("recurrent_weights", "TENSOR_FLOAT32", "{%d, %d}" % (units, units))
bias = Input("bias", "TENSOR_FLOAT32", "{%d}" % (units))
hidden_state_in = Input("hidden_state_in", "TENSOR_FLOAT32", "{%d, %d}" % (batches, units))
activation_param = Input("activation_param", "TENSOR_INT32", "{1}")
hidden_state_out = IgnoredOutput("hidden_state_out", "TENSOR_FLOAT32", "{%d, %d}" % (batches, units))
output = Output("output", "TENSOR_FLOAT32", "{%d, %d}" % (batches, units))
model = model.Operation("RNN", input, weights, recurrent_weights, bias, hidden_state_in,
activation_param).To([hidden_state_out, output])
input0 = {
weights: [
0.461459, 0.153381, 0.529743, -0.00371218, 0.676267, -0.211346,
0.317493, 0.969689, -0.343251, 0.186423, 0.398151, 0.152399,
0.448504, 0.317662, 0.523556, -0.323514, 0.480877, 0.333113,
-0.757714, -0.674487, -0.643585, 0.217766, -0.0251462, 0.79512,
-0.595574, -0.422444, 0.371572, -0.452178, -0.556069, -0.482188,
-0.685456, -0.727851, 0.841829, 0.551535, -0.232336, 0.729158,
-0.00294906, -0.69754, 0.766073, -0.178424, 0.369513, -0.423241,
0.548547, -0.0152023, -0.757482, -0.85491, 0.251331, -0.989183,
0.306261, -0.340716, 0.886103, -0.0726757, -0.723523, -0.784303,
0.0354295, 0.566564, -0.485469, -0.620498, 0.832546, 0.697884,
-0.279115, 0.294415, -0.584313, 0.548772, 0.0648819, 0.968726,
0.723834, -0.0080452, -0.350386, -0.272803, 0.115121, -0.412644,
-0.824713, -0.992843, -0.592904, -0.417893, 0.863791, -0.423461,
-0.147601, -0.770664, -0.479006, 0.654782, 0.587314, -0.639158,
0.816969, -0.337228, 0.659878, 0.73107, 0.754768, -0.337042,
0.0960841, 0.368357, 0.244191, -0.817703, -0.211223, 0.442012,
0.37225, -0.623598, -0.405423, 0.455101, 0.673656, -0.145345,
-0.511346, -0.901675, -0.81252, -0.127006, 0.809865, -0.721884,
0.636255, 0.868989, -0.347973, -0.10179, -0.777449, 0.917274,
0.819286, 0.206218, -0.00785118, 0.167141, 0.45872, 0.972934,
-0.276798, 0.837861, 0.747958, -0.0151566, -0.330057, -0.469077,
0.277308, 0.415818
],
recurrent_weights: [
0.1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0.1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0.1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0.1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0.1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0.1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0.1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0.1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0.1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0.1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0.1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0.1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0.1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0.1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0.1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0.1
],
bias: [
0.065691948, -0.69055247, 0.1107955, -0.97084129, -0.23957068,
-0.23566568, -0.389184, 0.47481549, -0.4791103, 0.29931796,
0.10463274, 0.83918178, 0.37197268, 0.61957061, 0.3956964,
-0.37609905
],
activation_param: [1], # Relu
}
input0[input] = [
-0.69424844, -0.93421471, -0.87287879, 0.37144363,
-0.62476718, 0.23791671, 0.40060222, 0.1356622,
-0.69424844, -0.93421471, -0.87287879, 0.37144363,
-0.62476718, 0.23791671, 0.40060222, 0.1356622,
]
input0[hidden_state_in] = [
0.496726, 0, 0.965996, 0,
0.0584256, 0, 0, 0.12315,
0, 0, 0.612267, 0.456601,
0, 0.52286, 1.16099, 0.0291233,
0.496726, 0, 0.965996, 0,
0.0584256, 0, 0, 0.12315,
0, 0, 0.612267, 0.456601,
0, 0.52286, 1.16099, 0.0291233,
]
output0 = {
hidden_state_out : [
0, 0, 0.524902, 0,
0, 0, 0, 1.02116,
0, 1.35762, 0, 0.356909,
0.436415, 0.0355731, 0, 0,
0, 0, 0.524902, 0,
0, 0, 0, 1.02116,
0, 1.35762, 0, 0.356909,
0.436415, 0.0355731, 0, 0,
]
}
output0[output] = [
0, 0, 0.524901, 0, 0, 0,
0, 1.02116, 0, 1.35762, 0, 0.356909,
0.436415, 0.0355727, 0, 0,
0, 0, 0.524901, 0, 0, 0,
0, 1.02116, 0, 1.35762, 0, 0.356909,
0.436415, 0.0355727, 0, 0,
]
Example((input0, output0))