没有注册操作内核来支持{{node densed/kernel}使用的操作“varhandleop”

aurhwmvo  于 2021-06-29  发布在  Java
关注(0)|答案(0)|浏览(167)

我已经创建了一个TensorFlow1.13.1模型,并尝试在android应用程序中使用它。当我初始化变量时 sess.runner().addTarget("init").run() ; 我有个错误:

No OpKernel was registered to support Op 'VarHandleOp' used by {{node 
dense/kernel}}with these attrs: [shape=[1,1], shared_name="dense/kernel", 
_class=["loc:@dense/kernel"], dtype=DT_FLOAT, container=""]

这是我用来创建graph.pb文件的代码:

model = tf.keras.models.Sequential([tf.keras.layers.Dense(1, input_shape=(1, )),
tf.keras.layers.Dense(25, activation=tf.keras.activations.relu),
tf.keras.layers.Dense(1, activation=tf.keras.activations.relu)])

model.compile(optimizer=tf.keras.optimizers.Adam(),loss=tf.keras.losses.mean_squared_error)
optimizer = tf.train.GradientDescentOptimizer(learning_rate=0.01)

init = tf.global_variables_initializer()
saver_def = tf.train.Saver().as_saver_def()
with open('graph.pb', 'wb') as f:
f.write(tf.get_default_graph().as_graph_def().SerializeToString())

print('Operation to initialize variables: ', init.name)
print('Tensor to be fed for checkpoint filename:', saver_def.filename_tensor_name)
print('Operation to save a checkpoint: ', saver_def.save_tensor_name)
print('Operation to restore a checkpoint: ', saver_def.restore_op_name)
print('Trainable variables: ', tf.trainable_variables())

Operation to initialize variables: init
Tensor to be fed for checkpoint filename: save/Const:0
Operation to save a checkpoint: save/control_dependency:0
Operation to restore a checkpoint: save/restore_all
Trainable variables: [<tf.Variable 'dense/kernel:0' shape=(1, 1) dtype=float32>, <tf.Variable 'dense/bias:0' shape=(1,) dtype=float32>, <tf.Variable 'dense_1/kernel:0' shape=(1, 25) dtype=float32>, <tf.Variable 'dense_1/bias:0' shape=(25,) dtype=float32>, <tf.Variable 'dense_2/kernel:0' shape=(25, 1) dtype=float32>, <tf.Variable 'dense_2/bias:0' shape=(1,) dtype=float32>]

tensorflow android版本是: org.tensorflow:tensorflow-android:1.13.1 它和其他线性回归模型一起工作,但我不知道怎么了,

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题