tf.print 从 TF2 不打印到输出

tf.print from TF2 not printing to output

我正在使用 TF2,我想在 tf.data.Dataset 管道中的函数 运行 中打印张量。

这是我的代码:

import tensorflow as tf
import sys

sys.stdout = open('tf.log', 'w')

def main():

    ## Dataset generator
    #
    numRows= 100

    indx = tf.reshape([i+1 for i in range(numRows)], [numRows,1])
    features = tf.random.uniform([numRows, 2], minval=1, maxval=10, dtype=tf.int32)

    myData = tf.concat([indx, features], 1)

    ## tf.data.Dataset
    #
    dataset = tf.data.Dataset.from_tensor_slices(myData)

    ## Pipeline
    #
    dataset.map(myFunc)

    ## Run pipeline
    #
    for d in dataset:
        print('--')

def myFunc(t):
    tf.print(t, output_stream=sys.stdout)
    return t

if __name__ == "__main__":
    main()

但结果,我只得到了这个:

--
--
--
--
--
--
--
--
--
--
--

如何使用 tf.print 将张量打印到控制台?

您没有将 map 返回的数据集分配给任何东西。简单的做,

dataset = tf.data.Dataset.from_tensor_slices(myData)
dataset = dataset.map(myFunc)