android - Invalid argument: NodeDef mentions attr 'Tshape' not in Op -
i getting error invalid argument: nodedef mentions attr 'tshape' not in op<name=reshape; signature=tensor:t, shape:int32 -> output:t; attr=t:type>; nodedef: y_groundtruth = reshape[t=dt_float, tshape=dt_int32](lout_add, y_groundtruth/shape)
when attempting load file on android using tensorflow::status s = session->create(graph_def);
.
people similar problems have mentioned upgrading tensorflow 0.9.0rc0 fixed problems. however, using current tensorflow build in jni-build.
could problem variables declared when generating protobuf file?
snippet
def reg_perceptron(t, weights, biases): t = tf.nn.relu(tf.add(tf.matmul(t, weights['h1']), biases['b1']), name = "layer_1") t = tf.nn.sigmoid(tf.add(tf.matmul(t, weights['h2']), biases['b2']), name = "layer_2") t = tf.add(tf.matmul(t, weights['hout'], name="lout_matmul"), biases['bout'], name="lout_add") return tf.reshape(t, [-1], name="y_groundtruth") g = tf.graph() g.as_default(): ... rg_weights = { 'h1': vs.get_variable("weights0", [n_input, n_hidden_1], initializer=tf.contrib.layers.xavier_initializer()), 'h2': vs.get_variable("weights1", [n_hidden_1, n_hidden_2], initializer=tf.contrib.layers.xavier_initializer()), 'hout': vs.get_variable("weightsout", [n_hidden_2, 1], initializer=tf.contrib.layers.xavier_initializer()) } rg_biases = { 'b1': vs.get_variable("bias0", [n_hidden_1], initializer=init_ops.constant_initializer(bias_start)), 'b2': vs.get_variable("bias1", [n_hidden_2], initializer=init_ops.constant_initializer(bias_start)), 'bout': vs.get_variable("biasout", [1], initializer=init_ops.constant_initializer(bias_start)) } pred = reg_perceptron(_x, rg_weights, rg_biases) ... ... g_2 = tf.graph() g_2.as_default(): ... rg_weights_2 = { 'h1': vs.get_variable("weights0", [n_input, n_hidden_1], initializer=tf.contrib.layers.xavier_initializer()), 'h2': vs.get_variable("weights1", [n_hidden_1, n_hidden_2], initializer=tf.contrib.layers.xavier_initializer()), 'hout': vs.get_variable("weightsout", [n_hidden_2, 1], initializer=tf.contrib.layers.xavier_initializer()) } rg_biases_2 = { 'b1': vs.get_variable("bias0", [n_hidden_1], initializer=init_ops.constant_initializer(bias_start)), 'b2': vs.get_variable("bias1", [n_hidden_2], initializer=init_ops.constant_initializer(bias_start)), 'bout': vs.get_variable("biasout", [1], initializer=init_ops.constant_initializer(bias_start)) } pred_2 = reg_perceptron(_x_2, rg_weights_2, rg_biases_2) ...
to stop post being cluttered, have uploaded code generate .pb-file , model create model on pastebin.
Comments
Post a Comment