TL:DR;
将我的数据转换为TFRecord后,它与原始数据
不匹配说明
我做了一个method来读取TFRecord数据。我想测试该方法正如我预期的那样工作的方法。所以我创建了一个Tensorflow test case,我在其中创建了一个假的TFRecord文件,给出了一些随机输入数据。并将该数据传递给该方法。结果来自该方法和原始数据,我将它们传递给assertAllEqual()方法进行单元测试。但测试失败了。
这是测试错误
AssertionError:
Arrays are not equal
(mismatch 66.66666666666666%)
x: array([[[ 0., 0., 0.],
[ 0., 0., 0.],
[ 0., 0., 0.],...
y: array([[[ 0, 0, 0],
[ 0, 0, 0],
[ 0, 0, 0],...
not equal where = (array([10, 10, 10, ..., 31, 31, 31]), array([21, 21, 22, ..., 31, 31, 31]), array([1, 2, 0, ..., 0, 1, 2]))
not equal lhs = [128 128 128 ..., 255 255 255]
not equal rhs = [ 0. 0. 0. ..., 0. 0. 0.]
假数据的形状(3,32,32,3)
尝试过的解决方案:
我的问题:
答案 0 :(得分:0)
我找到了解决方案。问题出在我测试的情况下,我做了我的 用于测试目的的虚假数据。 虚假数据的生成是错误的。
我改变了我的代码
records = [self._record(0, 128, 255),
self._record(255, 0, 1),
self._record(254, 255, 0)]
到这个
image_array_1 = np.random.random((32, 32, 3))
image_array_2 = np.random.random((32, 32, 3))
image_array_3 = np.random.random((32, 32, 3))
formatted1 = (image_array_1 * 255 / np.max(image_array_1)).astype('uint8')
formatted2 = (image_array_2 * 255 / np.max(image_array_2)).astype('uint8')
formatted3 = (image_array_3 * 255 / np.max(image_array_3)).astype('uint8')
images_data_set = [formatted1, formatted2, formatted3]
测试完成了!