写入:
ima = img_array[index][1].tobytes()
example = tf.train.Example(
features=tf.train.Features(
feature={
'label': _int64_feature( int(img_array[index][0])), # label
'data': _bytes_feature(ima) # 图像的数据
}))
img_array[index][1].shape -- (1764,)
读取:
features = tf.parse_single_example(
serialized_example,
features={
'data':tf.FixedLenFeature([],tf.string),
'label':tf.FixedLenFeature([],tf.int64)
})
images = tf.decode_raw(features['data'],tf.uint8)
images --- shape -- (7056,0)
原因:
因为img_array 数据类型为 float32 转化为字节的时候 被分成7056
解决: 把 img_array数据类型转化为unit8: img_array[index][1].astype(np.uint8)