【问题标题】:Tensorflow datasets usageTensorFlow 数据集的使用
【发布时间】:2019-04-14 03:14:01
【问题描述】:

我正在尝试创建一个简单的字符串标签对数据集,但无法让 tensorflow 正确连接这些对

我正在尝试使用 Dataset.from_tensor_slices 初始化器和 dataset.make_one_shot_iterator 迭代器:

import tensorflow as tf

strings = [
    'aaaa',
    'asdf'
]
labels = [1,0]

sess = tf.Session()
tf.global_variables_initializer()

dataset = tf.data.Dataset.from_tensor_slices((strings, labels))
dataset = dataset.repeat()
dataset = dataset.shuffle(512)
iterator = dataset.make_one_shot_iterator()


x_next, label_next = iterator.get_next()
print sess.run(x_next), sess.run(label_next)

x_next, label_next = iterator.get_next()
print sess.run(x_next), sess.run(label_next)

x_next, label_next = iterator.get_next()
print sess.run(x_next), sess.run(label_next)

x_next, label_next = iterator.get_next()
print sess.run(x_next), sess.run(label_next)

最后,我希望“aaaa”的输出为“1”,“asdf”的输出为“0”,但反复得到随机的东西:

aaaa 0
asdf 0
aaaa 1
asdf 1
aaaa 1
aaaa 0
asdf 1
aaaa 1

请提出我的代码中可能有什么问题

顺便说一句,如果我去掉洗牌,我将无法得到另一个字符串,迭代器只会输出:

aaaa 0
aaaa 0 
aaaa 0
...

标签有误...有人知道是什么原因吗?

【问题讨论】:

    标签: python tensorflow tensorflow-datasets


    【解决方案1】:

    这就是我使用它的方式。

    next = iterator.get_next()
    # print(next)
    
    with  tf.Session() as sess:
        print(sess.run(next))
        print(sess.run(next))
        print(sess.run(next))
        print(sess.run(next))
        print(sess.run(next))
        print(sess.run(next))
        print(sess.run(next))
        print(sess.run(next))
    
    
    (b'aaaa', 1)
    (b'asdf', 0)
    (b'aaaa', 1)
    (b'aaaa', 1)
    (b'asdf', 0)
    (b'aaaa', 1)
    (b'aaaa', 1)
    (b'aaaa', 1)
    

    【讨论】:

      猜你喜欢
      • 2019-02-13
      • 2023-04-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多