小编use*_*379的帖子

如何使用 tf.Print 打印张量的一部分?

在 TensorFlow 中,当张量具有大维度时,出于调试目的仅打印张量的一部分是有用的,例如二维矩阵的对角线。我只知道如何打印整个张量如下:

sess = tf.InteractiveSession()
a = tf.constant(1.0, shape=[1000, 1000])
a = tf.Print(a, [a], "print entire a\n", summarize=1000000)
b = a + 1.
ret = sess.run(b)
Run Code Online (Sandbox Code Playgroud)

上面的代码将打印整个“a”张量。但我不确定如何打印“a”的一部分。例如,如果我只想打印 a[0,0] 而不执行 sess.run(a),则以下代码将不起作用:

sess = tf.InteractiveSession()
a = tf.constant(1.0, shape=[1000, 1000])
a[0,0] = tf.Print(a[0,0], [a[0,0]], "print part of a\n", summarize=1000000)
b = a + 1.
ret = sess.run(b)    
Run Code Online (Sandbox Code Playgroud)

tensorflow

5
推荐指数
1
解决办法
6843
查看次数

如何仅恢复 Tensorflow 中检查点中的变量?

在 Tensorflow 中,我的模型基于预训练模型,我添加了更多变量并删除了预训练模型中的一些变量。当我从检查点文件中恢复变量时,我必须明确指定我添加到图中需要排除的所有变量。例如,我做了

exclude = # explicitly list all variables to exclude
variables_to_restore = slim.get_variables_to_restore(exclude=exclude)
saver = tf.train.Saver(variables_to_restore)
Run Code Online (Sandbox Code Playgroud)

有没有更简单的方法来做到这一点?即,只要变量不在检查点中,就不要尝试恢复。

tensorflow

5
推荐指数
1
解决办法
6371
查看次数

为什么TensorFlow的tf.data.Dataset.shuffle这么慢?

shuffle对于中等的buffer_size(例如1000),以下代码中的步骤非常慢:

filenames = tf.constant(filenames)
dataset = tf.data.Dataset.from_tensor_slices((filenames, labels))
dataset = dataset.map(_parse_function)
dataset = dataset.batch(batch_size)
dataset = dataset.shuffle(buffer_size)
Run Code Online (Sandbox Code Playgroud)

如果我们使用numpy随机数据,则代码如下所示:

idx = np.arange(len(filenames))
np.random.shuffle(idx)
new_filenames = [filenames[i] for i in idx]
next_batch_filenames = new_filenames[:batch_size]
# get the corresponding files in batch
Run Code Online (Sandbox Code Playgroud)

这要快得多。我想知道TF是否可以做一些超出随机整理数据的事情。

tensorflow

5
推荐指数
1
解决办法
1145
查看次数

标签 统计

tensorflow ×3