小编Tri*_*een的帖子

Tensorflow苗条预训练的亚历山大

Tensorflow slim库提供了alexnet的图形结构,但它似乎没有提供预先训练的(在Imagenet上)alexnet检查点(https://github.com/tensorflow/models/tree/master/research/slim) .有没有提供预先训练的TF-slim的alexnet检查点?

python tensorflow tf-slim

8
推荐指数
1
解决办法
2244
查看次数

MATLAB:导出为矢量图形后可见的补丁边缘

Matlab中的补丁从单个三角形粘合在一起.它们的边缘通常是不可见的,但是当我以矢量图形格式导出图形时,可以清楚地看到它们(不是显示整个图像,只是放大部分)

各个三角形的边缘

生成此MWE的代码是:

xx = [0:1:100, 100:-1:0];
yy = [zeros(1,101), ones(1,101)];
p1 = patch(xx,yy,'b'); 
print('testPatch','-dpdf','-painters')
Run Code Online (Sandbox Code Playgroud)

替代功能fill表现相同.有没有办法避免这个错误,或者在这种情况下我是否必须使用位图?

编辑:一个解决方法是孵化该区域而不是填充它.这显然并非总是可行,但在我的情况下,它工作得很好,我可以坚持使用矢量图形.相关的FEX提交是http://www.mathworks.com/matlabcentral/fileexchange/30733-hatchfill

matlab vector-graphics matlab-hg2

7
推荐指数
1
解决办法
650
查看次数

Tensorflow在每个会话打开和关闭时泄漏1280个字节?

我打开和关闭的每个Tensorflow会话似乎从GPU内存消耗1280个字节,直到python内核终止才会释放.

要重现,请将以下python脚本保存为memory_test.py:

import tensorflow as tf
import sys
n_Iterations=int(sys.argv[1])
def open_and_close_session():
   with tf.Session() as sess:
      pass
for _ in range(n_Iterations):
   open_and_close_session()
with tf.Session() as sess:
   print("bytes used=",sess.run(tf.contrib.memory_stats.BytesInUse()))
Run Code Online (Sandbox Code Playgroud)

然后从命令行运行它,迭代次数不同:

  • python memory_test.py 0 产量 bytes used= 1280
  • python memory_test.py 1收益率bytes used= 2560.
  • python memory_test.py 10收益率bytes used= 14080.
  • python memory_test.py 100收益率bytes used= 129280.
  • python memory_test.py 1000收益率bytes used= 1281280.

数学很简单 - 每个会话打开和关闭泄漏1280个字节.我在两个不同的ubuntu 17.10工作站上使用tensorflow-gpu 1.6和1.7以及不同的NVIDIA GPU测试了这个脚本.

我是否错过了一些明确的垃圾收集,还是Tensorflow错误?

编辑:请注意,与此问题中描述的情况不同,除了tf.Session()对象本身为'count'之外,我不会在循环中向默认全局图添加任何内容.如果是这种情况,怎么能删除它们? …

python memory-leaks memory-management tensorflow

7
推荐指数
1
解决办法
503
查看次数

vscode-python 中的事后调试?

Python 的事后调试(通过 IPython 的%debug魔法很容易访问)允许一次或多次跳出异常的范围,并查看抛出异常之前的变量。非常有用。

VSCode-python 与 Python 的调试器有很好的集成。如果引入了断点,则可以使用调试工具栏进入和退出编辑器中的功能。这比使用控制台进行调试更加用户友好。但是,此调试工具栏似乎无法在事后分析模式下工作。

当使用“开始调试”命令 (F5) 在 vscode 中运行 Python 脚本并抛出异常时,异常会在 vscode 的编辑器中突出显示,但退出不起作用 - 如果我在调试工具栏。

有没有办法将 Python 的事后调试与 vscode 的编辑器集成在一起?我错过了什么吗?我期待这只是工作。

visual-studio-code vscode-python

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

访问 Hydra 当前输出目录的正确方法是什么?

假设我阻止Hydra更改当前工作目录,我怎样才能从中检索作业的输出目录(即 Hydra 创建用于存储特定作业结果的文件夹)main()

理想情况下,我想要一种无论是常规运行还是多次运行都有效的方法。我知道我可以通过 访问配置hydra.core.hydra_config.HydraConfig.get(),但不清楚其中的任何设置是否始终映射到输出文件夹。相关教程页​​面讨论了如何设置输出文件夹,但没有讨论在我们不更改 cwd 的情况下如何检索它。

python fb-hydra

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

在包含“while_loop”的提取的 Tensorflow 子图中计算梯度

在一些深学习工作流,它是有用的训练模式,提取出来使用其图形的tf.graph_util.convert_variables_to_constantstf.graph_util.extract_sub_graph所以训练相关的张量被排除在外,然后连接所提取的子图,以其它模型(一个或多个)通过tf.import_graph_def。通过这种方式,经过训练的模型可以作为更大设置中的构建块。

通常,我们希望通过新的复合模型进行反向传播,以便对其进行微调、优化输入等。

但是,似乎无法通过while_loop导入图中的tensorflow 操作定义梯度,因为它依赖于“外部上下文”,即添加到元图集合中的对象(参见TF 问题 #7404)。稍微修改这个 Github 问题中的例子,这是我想要做的一个例子:

import tensorflow as tf
g1=tf.Graph()
sess1=tf.Session(graph=g1)
with g1.as_default():
    with sess1.as_default():
        i=tf.constant(0, name="input")
        out=tf.while_loop(lambda i: tf.less(i,5), lambda i: [tf.add(i,1)], [i], name="output")
        loss=tf.square(out,name='loss')
        graph_def = tf.graph_util.convert_variables_to_constants(sess1,g1.as_graph_def(),['output/Exit'])

g2 = tf.Graph()
with g2.as_default():
    tf.import_graph_def(graph_def,name='')
    i_imported = g2.get_tensor_by_name("input:0")
    out_imported = g2.get_tensor_by_name("output/Exit:0")
    tf.gradients(out_imported, i_imported)
Run Code Online (Sandbox Code Playgroud)

最后一行引发AttributeError: 'NoneType' object has no attribute 'outer_context'错误。

Tensorflow的解决这个问题是使用tf.train.export_meta_graphtf.train.import_meta_graph这样的外部背景下被复制,但这份整个图形,没有编辑工作。在这种最小情况下,不会删除“损失”张量。

我尝试将缺少的上下文复制到新图表中:

g2.add_to_collection('while_context',g1.get_collection('while_context'))
Run Code Online (Sandbox Code Playgroud)

但这并不能解决问题。

有没有办法克服这个限制,或者它是一个无法修复的 Tensorflow 设计缺陷?

python deep-learning tensorflow

5
推荐指数
0
解决办法
436
查看次数