如何将字符串操作应用于张量中的每个元素

时间:2017-04-27 21:42:40

标签: python csv tensorflow

Tensorflow的新手,我想要达到相当具体的目标。

我有一个csv,其中我在一列中的空间分隔像素值在0到255之间的图像。所以看起来就像这样:

Image
255 255 ... 255
199 199 ... 199
100 100 ... 100

我想对它们应用一些卷积神经网络。所以我想最终得到这样的Tensor:

[[255, 255, 255], [199, 199, 199], [100, 100, 100]]

我确信有可能在字符串张量中读入,然后可能应用tf.string_to_number(tf.string_split(..,delimiter ='')),

img = ... // string tensor from csv
img = tf.string_to_number(tf.string_split(img, ' '))

但是我收到以下错误:

Shape must be rank 1 but is rank 2 for 'StringSplit' (op: 'StringSplit') with input shapes: [?,1], [].

我刚开始使用TensorFlow,我的字符串张量是一个简单的列,所以它的形状应该是(?,)而不是?否则,这是看待这个的正确方法吗?

干杯

1 个答案:

答案 0 :(得分:1)

仅仅因为你的图像是如此奇怪的格式,我认为这只是一个学习项目。

在这种情况下,我不认为在TF中这样做是有道理的。如果我是你,我会创建一个在pandas中读取csv文件的函数,然后获取numpy数组并将其保存为图像。有很多方法可以做到这一点,简单的搜索会给你很多examples。在此之后,我将迭代所有csv文件,保存所有图像并永远忘记这一步。