我只想将 python 模型转换为 tensorflow.js 模型,但保存为 .pb 后,我运行“tensorflowjs_converter --input_format=tf_saved_model --output_format=tfjs_graph_model --signature_name=serving_default --saved_model_tags=serve ./saved_model ./web_model ",出现错误。
2019-03-20 23:07:05.970985: I tensorflow/core/grappler/devices.cc:53] 符合条件的 GPU 数量(核心数 >= 8):0(注意:TensorFlow 未在 CUDA 支持下编译)2019- 03-20 23:07:05.978764: I tensorflow/core/grappler/clusters/single_machine.cc:359] 开始新会话 2019-03-20 23:07:05.985340: I tensorflow/core/platform/cpu_feature_guard.cc:142 ] 您的 CPU 支持未编译此 TensorFlow 二进制文件以使用的指令:AVX2 2019-03-20 23:07:06.072370: E tensorflow/core/grappler/grappler_item_builder.cc:636] 初始化节点变量/分配不存在于图回溯(最近一次调用最后一次):文件“d:\anaconda3\lib\site-packages\tensorflow\python\grappler\tf_optimizer.py”,第 43 行,在 OptimizeGraph 详细,graph_id,状态) SystemError:返回 NULL 而不设置一个错误
在处理上述异常的过程中,又出现了一个异常:
Traceback(最近一次调用最后一次):文件“d:\anaconda3\lib\runpy.py”,第 193 行,在 _run_module_as_main“ main ”中", mod_spec) 文件 "d:\anaconda3\lib\runpy.py",第 85 行,在 _run_code exec(code, run_globals) 文件 "D:\Anaconda3\Scripts\tensorflowjs_converter.exe__main__.py",第 9 行,在文件中“d:\anaconda3\lib\site-packages\tensorflowjs\converters\converter.py”,第 358 行,在主 strip_debug_ops=FLAGS.strip_debug_ops 文件“d:\anaconda3\lib\site-packages\tensorflowjs\converters\tf_saved_model_conversion_v2 .py”,第 271 行,convert_tf_saved_model 混凝土_func) 文件“d:\anaconda3\lib\site-packages\tensorflow\python\framework\convert_to_constants.py”,第 140 行,convert_variables_to_constants_v2 graph_def = _run_inline_graph_optimization(func) 文件“d: \anaconda3\lib\site-packages\tensorflow\python\framework\convert_to_constants.py”,第 59 行,在 _run_inline_graph_optimization 返回 tf_optimizer.OptimizeGraph(config, meta_graph) 文件“d:\anaconda3\lib\site-packages\tensorflow\python\grappler\tf_optimizer.py”,第 43 行,在 OptimizeGraph 详细,graph_id,状态)文件“d: \anaconda3\lib\site-packages\tensorflow\python\framework\errors_impl.py”,第 548 行,在退出 c_api.TF_GetCode(self.status.status)) tensorflow.python.framework.errors_impl.InvalidArgumentError:导入元图失败,请查看错误日志以获取更多信息。
这是我的代码。并且tensorflow的版本是1.14.0(预览因为我安装tf 2.0失败)
# coding=utf-8#
import tensorflow as tf
import numpy as np
x_data = [[0.0, 0.0], [0.0, 1.0], [1.0, 0.0], [1.0, 1.0]]
y_data = [[0.0], [1.0], [1.0], [0.0]]
x_test = [[0.0, 1.0], [1.0, 1.0]]
xs = tf.placeholder(tf.float32, [None, 2])
ys = tf.placeholder(tf.float32, [None, 1])
W1 = tf.Variable(tf.random_normal([2, 10]))
B1 = tf.Variable(tf.zeros([1, 10]) + 0.1)
out1 = tf.nn.relu(tf.matmul(xs, W1) + B1)
W2 = tf.Variable(tf.random_normal([10, 1]))
B2 = tf.Variable(tf.zeros([1, 1]) + 0.1)
prediction = tf.add(tf.matmul(out1, W2), B2, name="model")
loss = tf.reduce_mean(tf.reduce_sum(tf.square(ys - prediction), reduction_indices=[1]))
train_step = tf.train.GradientDescentOptimizer(0.1).minimize(loss)
init = tf.global_variables_initializer()
sess = tf.Session()
sess.run(init)
for i in range(40):
sess.run(train_step, feed_dict={xs: x_data, ys: y_data})
print(sess.run(loss, feed_dict={xs: x_data, ys: y_data}))
re = sess.run(prediction, feed_dict={xs: x_test})
print(re)
for x in re:
if x[0] > 0.5:
print(1)
else:
print(0)
tf.saved_model.simple_save(sess, "./saved_model", inputs={"x": xs, }, outputs={"model": prediction, })