【发布时间】:2017-10-27 01:59:06
【问题描述】:
似乎 gnuplot 正在将所有浮点值四舍五入为整数。绘制线条或曲面时,例如使用documentation
中的这两行x=torch.linspace(-2*math.pi,2*math.pi)
gnuplot.plot(torch.sin(x))
正如预期的那样,print(torch.sin(x):type()) 说张量确实是 torch.FloatTensor,所以我不明白在哪里可以进行舍入。
我尝试了最新的torch7版本并使用luarocks安装了gnuplot,但结果是一样的。我不认为问题出在 gnuplot 本身,因为例如,我可以毫无问题地从 octave 使用它。
【问题讨论】:
-
我对这段代码没有任何问题。你能打印
torch.sin(x)看看值是否正确吗? -
这不是真正的四舍五入,sin(-2*pi) 应该是 0 而不是 -1,同义的 sin(2*pi) 不是 1
-
是的,这些值是正确的。你对 sin(x) 的事情是绝对正确的,但这就是为什么我选择了舍入这个词,而不是 ceil 或 floor。不过,我承认这也不是一个好的选择。我不知道它如何决定向更低或更高的值舍入,但从我所看到的(例如,通过观察训练错误图)来看,它无法表示浮动值。我使用的粗俗技巧只是将我的值乘以一个非常大的因子,所以我可以看到情节中发生了什么......
-
这很奇怪......你的电脑上安装的是什么版本的 gnuplot (
gnuplot --version)?如果您对您的 hack 不完全满意,您可以查看显示包 (github.com/szym/display#plotting),它提供了很好的功能来绘制曲线、缩放等... -
gnuplot 5.0 补丁级别 3。感谢您的提示,该软件包看起来是个不错的选择。
标签: computer-vision gnuplot torch