首先,我必须承认我对python和tensorflow的经验有限。我正在寻找一些关于操纵从张量流示例导入的MNIST图像的支持。
我想要的是以下内容:
我正在编写的代码如下
import tensorflow as tf
import numpy as np
from tensorflow.examples.tutorials.mnist import input_data
data = input_data.read_data_sets('data/MNIST/',one_hot=True)
import random
rndm_imgs = random.sample(data.test.images, len(data.test.images)/2)
我收到以下错误
Traceback (most recent call last):
File "<string>", line 7, in <module>
File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/random.py", line 320, in sample
raise TypeError("Population must be a sequence or set. For dicts, use list(d).")
TypeError: Population must be a sequence or set. For dicts, use list(d).
任何可以支持的人?
提前致谢
答案 0 :(得分:0)
使用python时的一个好习惯是使用python -i program.py
运行程序,这样就可以使用shell以交互方式检查每个变量的含义。如果你打印data.test.images
,你会发现它是一个n-drayray(n维numpy数组)的形状(10000,784)。所以基本上它是一个矩阵,其中每一行都是一个图像(mnist是28x28,因此是784)。
如果你想使用python的内置random.sample函数进行采样,将数据矩阵转换为一个列表,使每个元素都是一个图像(784维度或元素的向量)。
data_test_list = list(data.test.images)
test_samples = random.samples(data_test_list, len(data.test.images)/2)
test_samples = np.array(test_samples)
请注意,在获取我们的示例之后,我们将结果转换回numpy数组,因为这通常是您想要在tensorflow的上下文中处理的。