有没有办法在Tensorflow中基于字符串张量执行字典查找?
在普通的Python中,我会做类似的事情
value = dictionary[key]
Run Code Online (Sandbox Code Playgroud)
.现在我想在Tensorflow运行时做同样的事情,当时我有key一个String张量.就像是
value_tensor = tf.dict_lookup(string_tensor)
Run Code Online (Sandbox Code Playgroud)
会好的.
我目前正在尝试将训练有素的TensorFlow模型导出为ProtoBuf文件,以便在Android上使用TensorFlow C++ API.因此,我正在使用该freeze_graph.py脚本.
我使用tf.train.write_graph以下方式导出模型:
tf.train.write_graph(graph_def, FLAGS.save_path, out_name, as_text=True)
我正在使用保存的检查点tf.train.Saver.
我freeze_graph.py按照脚本顶部的描述进行调用.编译后,我跑了
bazel-bin/tensorflow/python/tools/freeze_graph \
--input_graph=<path_to_protobuf_file> \
--input_checkpoint=<model_name>.ckpt-10000 \
--output_graph=<output_protobuf_file_path> \
--output_node_names=dropout/mul_1
Run Code Online (Sandbox Code Playgroud)
这给我以下错误信息:
TypeError: Cannot interpret feed_dict key as Tensor: The name 'save/Const:0' refers to a Tensor which does not exist. The operation, 'save/Const', does not exist in the graph.
Run Code Online (Sandbox Code Playgroud)
由于错误状态我save/Const:0在导出的模型中没有张量.但是,代码freeze_graph.py表示可以通过标志指定此张量名称filename_tensor_name.不幸的是,我找不到任何关于这个张量应该是什么的信息以及如何为我的模型正确设置它.
有人可以告诉我如何save/Const:0在我导出的ProtoBuf模型中产生张量或如何filename_tensor_name正确设置标志?
我试图用TensorFlow读取图像分类问题的一些图像输入.
当然,我这样做tf.image.decode_jpeg(...).我的图像大小可变,因此我无法为图像张量指定固定的形状.
但我需要根据实际尺寸来缩放图像.具体来说,我想以保持纵横比的方式将短边缩放到固定值和长边.
我可以通过获得某个图像的实际形状shape = tf.shape(image).我也能够为新的长边做计算
shape = tf.shape(image)
height = shape[0]
width = shape[1]
new_shorter_edge = 400
if height <= width:
new_height = new_shorter_edge
new_width = ((width / height) * new_shorter_edge)
else:
new_width = new_shorter_edge
new_height = ((height / width) * new_shorter_edge)
Run Code Online (Sandbox Code Playgroud)
我现在的问题是,我无法通过new_height,并new_width于tf.image.resize_images(...)因为其中一个是张量和resize_images预计整数作为高度和宽度的投入.
有没有办法"拉出"张量的整数,还是有其他方法可以用TensorFlow完成我的任务?
提前致谢.
编辑
因为我也有一些其他的问题有tf.image.resize_images,这里是为我工作的代码:
shape = tf.shape(image)
height = shape[0]
width = shape[1]
new_shorter_edge = tf.constant(400, dtype=tf.int32)
height_smaller_than_width = tf.less_equal(height, …Run Code Online (Sandbox Code Playgroud)