【发布时间】:2018-03-16 05:45:20
【问题描述】:
我正在尝试从本地经过训练的 GCMLE 预测模型下载嵌入,以便我可以使用我自己的自定义嵌入可视化,这些可视化在 tensorboard 中不可用。我想将这些嵌入提取到一个大的 numpy 矩阵中,但我在几个步骤中遇到了麻烦。我可以成功下载所有文件(saved_model.pb + assets/* + variables/*,并且我似乎能够使用以下代码恢复模型:
with tf.Session(graph=tf.Graph()) as sess:
tf.saved_model.loader.load(sess,[tf.saved_model.tag_constants.SERVING], _EXPORT_DIR)
成功返回:
INFO:tensorflow:Restoring parameters from Servo/variables/variables
然后我尝试像这样提取权重:
constant_values = {}
with tf.Session(graph=tf.Graph()) as sess:
tf.saved_model.loader.load(sess, [tf.saved_model.tag_constants.SERVING], _EXPORT_DIR)
constant_ops = [op for op in sess.graph.get_operations() if op.type == "Const"]
for constant_op in constant_ops:
constant_values[constant_op.name] = sess.run(constant_op.outputs[0])
确实成功输出了很多,但与嵌入相关的唯一部分是:
u'embedding_layer/embeddings/Initializer/random_uniform/max': 0.012765553,
u'embedding_layer/embeddings/Initializer/random_uniform/min': -0.012765553,
u'embedding_layer/embeddings/Initializer/random_uniform/shape': array([vocab_size, word_embedding_size], dtype=int32)
并且没有实际嵌入权重的迹象。如何修改上面的方法以获得实际的嵌入权重矩阵?
【问题讨论】:
标签: python tensorflow google-cloud-ml