使用numpy\u input\u fn时挂起

2024-04-25 04:42:06 发布

您现在位置:Python中文网/ 问答频道 /正文

我在试着理解如何使用输入函数和估计器。当我尝试使用numpy输入函数时,tensorflow挂起。我做错什么了吗?我正在MacOS10.13上运行TensorFlow1.6.0和Python3.6.4。你知道吗

下面是挂起的代码示例:

import tensorflow as tf
import numpy as np

a = np.array([1,2,3,4,5])

infun = tf.estimator.inputs.numpy_input_fn(
      x={"x": a},
      batch_size=2,
      num_epochs=3,
      shuffle=False)

batch = infun()

with tf.Session() as sess:
    print(sess.run(batch))

任何帮助都将不胜感激。谢谢!你知道吗


Tags: 函数代码importnumpy示例tftensorflowas
1条回答
网友
1楼 · 发布于 2024-04-25 04:42:06

tf.estimator.inputs.numpy_input_fn方法挂起,因为它需要队列运行程序来提供输入。队列运行程序通常由tf.estimator方法处理,因此要在会话中自己运行它,必须设置并启动队列。你知道吗

较新的tf.data.Dataset是一个更简单的解决方案,因为您可以在tf.Session中直接使用它,并且它还与tf.estimator方法兼容:

import tensorflow as tf
import numpy as np

a = np.array([1,2,3,4,5])

dataset = tf.data.Dataset.from_tensor_slices({"x": a})
dataset = dataset.repeat(3) # number of epochs
dataset = dataset.batch(2) # batch size

batch = dataset.make_one_shot_iterator().get_next()

with tf.Session() as sess:
    print(sess.run(batch))

相关问题 更多 >