小编Saf*_*efi的帖子

为什么"softmax_cross_entropy_with_logits_v2"支持标签

我想知道为什么在Tensorflow 1.5.0及更高版本中,softmax_cross_entropy_with_logits_v2默认反向传播到标签和logits.您希望将哪些应用程序/场景支持标签?

machine-learning neural-network tensorflow cross-entropy

6
推荐指数
1
解决办法
1400
查看次数

在循环中构建图时,Tensorflow内存泄漏

当我因选择使用Tensorflow(1.12.0版)模型的超参数而进行的网格搜索由于内存消耗激增而崩溃时,我注意到了这一点。

请注意,与这里看起来类似的问题不同,我确实关闭了图和会话(使用上下文管理器),并且没有在循环中向图添加节点。

我怀疑tensorflow可能会保留在每次迭代之间都不会清除的全局变量,因此我在迭代之前和之后都调用了globals(),但是在每次迭代之前和之后都没有观察到全局变量集合中的任何区别。

我举了一个小例子,重现了这个问题。我在循环中训练了一个简单的MNIST分类器,并绘制了该进程消耗的内存:

import matplotlib.pyplot as plt
import os
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '3'
import psutil
import tensorflow as tf
from tensorflow.examples.tutorials.mnist import input_data
process = psutil.Process(os.getpid())

N_REPS = 100
N_ITER = 10
mnist = input_data.read_data_sets("MNIST_data/", one_hot=True)
x_test, y_test = mnist.test.images, mnist.test.labels

# Runs experiment several times.
mem = []
for i in range(N_REPS):
    with tf.Graph().as_default():
        net = tf.contrib.layers.fully_connected(x_test, 200)
        logits = tf.contrib.layers.fully_connected(net, 10, activation_fn=None)
        loss = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(labels=y_test, logits=logits))
        train_op = tf.train.AdamOptimizer(learning_rate=0.0001).minimize(loss)
        init = tf.global_variables_initializer()
        with tf.Session() as sess:
            # training …
Run Code Online (Sandbox Code Playgroud)

python memory-leaks loops tensorflow

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