- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我使用了 https://www.tensorflow.org/tutorials/recurrent_quickdraw 中的教程代码一切都工作正常,直到我尝试做出预测而不是仅仅评估它。
我根据create_dataset.py中的代码编写了一个新的预测输入函数
def predict_input_fn():
def parse_line(stroke_points):
"""Parse an ndjson line and return ink (as np array) and classname."""
inkarray = json.loads(stroke_points)
stroke_lengths = [len(stroke[0]) for stroke in inkarray]
total_points = sum(stroke_lengths)
np_ink = np.zeros((total_points, 3), dtype=np.float32)
current_t = 0
for stroke in inkarray:
for i in [0, 1]:
np_ink[current_t:(current_t + len(stroke[0])), i] = stroke[i]
current_t += len(stroke[0])
np_ink[current_t - 1, 2] = 1 # stroke_end
# Preprocessing.
# 1. Size normalization.
lower = np.min(np_ink[:, 0:2], axis=0)
upper = np.max(np_ink[:, 0:2], axis=0)
scale = upper - lower
scale[scale == 0] = 1
np_ink[:, 0:2] = (np_ink[:, 0:2] - lower) / scale
# 2. Compute deltas.
np_ink = np_ink[1:, 0:2] - np_ink[0:-1, 0:2]
np_ink = np_ink[1:, :]
features = {}
features["ink"] = tf.train.Feature(float_list=tf.train.FloatList(value=np_ink.flatten()))
features["shape"] = tf.train.Feature(int64_list=tf.train.Int64List(value=np_ink.shape))
f = tf.train.Features(feature=features)
example = tf.train.Example(features=f)
#t = tf.constant(np_ink)
return example
def parse_example(example):
"""Parse a single record which is expected to be a tensorflow.Example."""
# feature_to_type = {
# "ink": tf.VarLenFeature(dtype=tf.float32),
# "shape": tf.FixedLenFeature((0,2), dtype=tf.int64)
# }
feature_to_type = {
"ink": tf.VarLenFeature(dtype=tf.float32),
"shape": tf.FixedLenFeature([2], dtype=tf.int64)
}
example_proto = example.SerializeToString()
parsed_features = tf.parse_single_example(example_proto, feature_to_type)
parsed_features["ink"] = tf.sparse_tensor_to_dense(parsed_features["ink"])
#parsed_features["shape"].set_shape((2))
return parsed_features
example = parse_line(FLAGS.predict_input_stroke_data)
features = parse_example(example)
dataset = tf.data.Dataset.from_tensor_slices(features)
# Our inputs are variable length, so pad them.
dataset = dataset.padded_batch(FLAGS.batch_size, padded_shapes=dataset.output_shapes)
iterator = dataset.make_one_shot_iterator()
next_feature_batch = iterator.get_next()
return next_feature_batch, None # In prediction, we have no labels
我修改了现有的 model_fn() 函数并在下面适当的位置添加了
predictions = tf.argmax(logits, axis=1)
if mode == tf.estimator.ModeKeys.PREDICT:
preds = {
"class_index": predictions,
"probabilities": tf.nn.softmax(logits),
'logits': logits
}
return tf.estimator.EstimatorSpec(mode, predictions=preds)
但是当我调用以下代码时
if (FLAGS.predict_input_stroke_data != None):
# prepare_input_tfrecord_for_prediction()
# predict_results = estimator.predict(input_fn=get_input_fn(
# mode=tf.estimator.ModeKeys.PREDICT,
# tfrecord_pattern=FLAGS.predict_input_temp_file,
# batch_size=FLAGS.batch_size))
predict_results = estimator.predict(input_fn=predict_input_fn)
for idx, prediction in enumerate(predict_results):
type = prediction["class_ids"][0] # Get the predicted class (index)
print("Prediction Type: {}\n".format(type))
我收到以下错误,我的代码出了什么问题,有人可以帮助我吗?我已经尝试了很多方法来获得正确的形状,但我无法做到。我还尝试首先将笔画数据写入 tfrecord,然后使用现有的 input_fn 从 tfrecord 中读取,这给了我类似的错误,但略有不同
File "/Users/farooq/.virtualenvs/tensor1.0/lib/python3.6/site-packages/tensorflow/python/framework/common_shapes.py", line 627, in call_cpp_shape_fn
require_shape_fn)
File "/Users/farooq/.virtualenvs/tensor1.0/lib/python3.6/site-packages/tensorflow/python/framework/common_shapes.py", line 691, in _call_cpp_shape_fn_impl
raise ValueError(err.message)
ValueError: Shape must be rank 2 but is rank 1 for 'Slice' (op: 'Slice') with input shapes: [?], [2], [2].<p></p>
<p></p>
最佳答案
我最终通过输入击键并将它们作为 TFRecord 写入磁盘来解决了问题。我还必须将相同的输入笔画batch_size次写入相同的TFRecord,否则我会收到形状不匹配错误。然后调用预测就成功了。
预测的主要添加是以下函数
def create_tfrecord_for_prediction(batch_size, stoke_data, tfrecord_file):
def parse_line(stoke_data):
"""Parse provided stroke data and ink (as np array) and classname."""
inkarray = json.loads(stoke_data)
stroke_lengths = [len(stroke[0]) for stroke in inkarray]
total_points = sum(stroke_lengths)
np_ink = np.zeros((total_points, 3), dtype=np.float32)
current_t = 0
for stroke in inkarray:
if len(stroke[0]) != len(stroke[1]):
print("Inconsistent number of x and y coordinates.")
return None
for i in [0, 1]:
np_ink[current_t:(current_t + len(stroke[0])), i] = stroke[i]
current_t += len(stroke[0])
np_ink[current_t - 1, 2] = 1 # stroke_end
# Preprocessing.
# 1. Size normalization.
lower = np.min(np_ink[:, 0:2], axis=0)
upper = np.max(np_ink[:, 0:2], axis=0)
scale = upper - lower
scale[scale == 0] = 1
np_ink[:, 0:2] = (np_ink[:, 0:2] - lower) / scale
# 2. Compute deltas.
#np_ink = np_ink[1:, 0:2] - np_ink[0:-1, 0:2]
#np_ink = np_ink[1:, :]
np_ink[1:, 0:2] -= np_ink[0:-1, 0:2]
np_ink = np_ink[1:, :]
features = {}
features["ink"] = tf.train.Feature(float_list=tf.train.FloatList(value=np_ink.flatten()))
features["shape"] = tf.train.Feature(int64_list=tf.train.Int64List(value=np_ink.shape))
f = tf.train.Features(feature=features)
ex = tf.train.Example(features=f)
return ex
if stoke_data is None:
print("Error: Stroke data cannot be none")
return
example = parse_line(stoke_data)
#Remove the file if it already exists
if tf.gfile.Exists(tfrecord_file):
tf.gfile.Remove(tfrecord_file)
writer = tf.python_io.TFRecordWriter(tfrecord_file)
for i in range(batch_size):
writer.write(example.SerializeToString())
writer.flush()
writer.close()
然后在主函数中,您只需调用 estimator.predict()
重用相同的 input_fn=get_input_fn(...)
参数,除了将其指向临时创建了 tfrecord_file
希望这有帮助
关于 tensorflow : Predict in Recurrent Neural Networks for Drawing Classification tutorial,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48834276/
Draw joust是什么游戏 Draw joust是一款voodoo推出的玩家对战类游戏,Draw joust游戏中文版叫做手绘战车游戏。 这次voodoo将该游戏的玩法再度升级,难度也有所提
我在本地托管了 draw.io,我们正在使用它来直观地表示仓库中托盘的位置。问题在于,当你在周围拖动托盘时,你经常会不小心调整它们的大小,这很痛苦。无论如何我可以禁用它或锁定托盘的大小吗? 最佳答案
我想在 draw.io 中格式化一个矩形,这样只有一个边框(左边框)是黑色的,其他边框:顶部、右侧和底部必须保持“清晰”。 我试图找出正确的编码来仅影响这些元素,但似乎您只能使用样式键影响整个边框:i
我的线正在连接,即使我没有将它们设置为多边形。 我的脚本基于 pyshp 包。 我的脚本如下所示: w=Shapefile.Writer() #shapetype 11 is a polylineZ
我在表单值中有一个标题(“cadeau check 50 €”),我想使用 arial.ttf 将其写入背景图像。我的文字是正确的,但对于欧元符号。我有 2 [] 到位。我不知道问题出在哪里。这是 P
我收到上述错误。我需要帮助修复它。我看过this question它似乎对我没有任何帮助,我在与需要它的指令相同的元素上拥有所需的指令。我也不明白为什么我的错误说无法找到指令“绘图”所需的 Contr
我正在使用 VBUC 将 VB6 应用程序迁移到 C#但我得到了这个错误: 无法将类型“System.Drawing.Image”转换为“System.Drawing.Icon”我的代码是:
我有一行代码是从某个地方借来的,Visual Studio 无法解决 Bitmap或 ImageConverter类引用。 我有: using System.Drawing; 代码行是 Image x
我正在尝试将花费很长时间的大型 Lucidchart 图转换为 Draw.io。 Draw.io 推荐 ctr-a、ctr-c、ctr-v,但这似乎不起作用。然而,Draw.io 也隐晦地提到: dr
我想显示一个相对较长的图表。我曾经使用过 javafx Canvas ,但有时会出现缓冲区溢出异常,因为绘制了很多值。我正在寻找一种不同的方法,并找到了一种使用 java.awt.graphics2d
我很困惑 System.Drawing.Image 和 System.Drawing.Bitmap 之间有什么不同 有人可以解释这两种类型之间的主要区别吗? 为什么要使用 System.Drawing
声明了一个位图 private Bitmap img1 = null; private Bitmap img2 = null; 从openFileDialog中选择图像后,图像将被放置。 选定的图
我想遍历 System.Drawing.Color 结构并使用它来初始化笔列表。 我是这样试的,但是字段类型不合适: colorList = new List(); foreach (
System.Drawing.Point 和 System.Drawing.PointF 有什么区别。你能举个这两者之间的例子吗? 提前致谢。 最佳答案 Point 使用整数坐标(int 代表 X 和
我正在为我们公司开发 WinForm 打印应用程序。 打印文档时,我需要获取文档上每个控件的System.Drawing.Color属性,并创建一个System.Drawing.Brush对象来画出来
我正在使用这个从另一个应用程序获取图标: Icon IEIcon = Icon.ExtractAssociatedIcon(@"C:\Program Files\Internet Explorer\
这个问题不太可能帮助任何 future 的访问者;它只与一个小的地理区域、一个特定的时间点或一个非常狭窄的情况有关,这些情况并不普遍适用于互联网的全局受众。为了帮助使这个问题更广泛地适用,visit
在 UIView 子类中,我覆盖了 Draw 子类以绘制一些自定义文本,但文本始终绘制为翻转文本。 这是我正在使用的代码: class TextViewProblem : UIView { publi
我想从 Zotero 导出的嵌套 XML/JSON(嵌套在子集合和集合中的单个项目)以编程方式生成 draw.io map 图。 我已经有了基本的 JSON/XML,可以适应 draw.io 的格式,
1) 重新绘制与绘制 这是一个哲学问题,但是...在不同分辨率下渲染游戏的“正确”或“可接受”的方式是什么(2d,我理解 OGL 视角如何工作...)?我应该为我的图像(如 Android APK)添
我是一名优秀的程序员,十分优秀!