Tensorflow slim库提供了alexnet的图形结构,但它似乎没有提供预先训练的(在Imagenet上)alexnet检查点(https://github.com/tensorflow/models/tree/master/research/slim) .有没有提供预先训练的TF-slim的alexnet检查点?
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
我打开和关闭的每个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= 1280python 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 的事后调试(通过 IPython 的%debug魔法很容易访问)允许一次或多次跳出异常的范围,并查看抛出异常之前的变量。非常有用。
VSCode-python 与 Python 的调试器有很好的集成。如果引入了断点,则可以使用调试工具栏进入和退出编辑器中的功能。这比使用控制台进行调试更加用户友好。但是,此调试工具栏似乎无法在事后分析模式下工作。
当使用“开始调试”命令 (F5) 在 vscode 中运行 Python 脚本并抛出异常时,异常会在 vscode 的编辑器中突出显示,但退出不起作用 - 如果我在调试工具栏。
有没有办法将 Python 的事后调试与 vscode 的编辑器集成在一起?我错过了什么吗?我期待这只是工作。
在一些深学习工作流,它是有用的训练模式,提取出来使用其图形的tf.graph_util.convert_variables_to_constants或tf.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_graph和tf.train.import_meta_graph这样的外部背景下被复制,但这份整个图形,没有编辑工作。在这种最小情况下,不会删除“损失”张量。
我尝试将缺少的上下文复制到新图表中:
g2.add_to_collection('while_context',g1.get_collection('while_context'))
Run Code Online (Sandbox Code Playgroud)
但这并不能解决问题。
有没有办法克服这个限制,或者它是一个无法修复的 Tensorflow 设计缺陷?