2017-05-26 61 views
0

似乎gnuplot正在将所有浮点值舍入为整数。当从documentationtorch7 gnuplot包中的错误? (Ubuntu 16.04)

x=torch.linspace(-2*math.pi,2*math.pi) 
gnuplot.plot(torch.sin(x)) 

策划与这两条线线或面,我获得enter image description here

,而不是 enter image description here

正如预期的那样,print(torch.sin(x):type())说,张的确是一个torch.FloatTensor ,所以我不明白在哪里可以发生舍入。

我尝试了最新的torch7版本并使用luarocks安装了gnuplot,但结果相同。我不认为这个问题是gnuplot本身,因为例如,我可以使用它从八度没有任何问题。

+0

我对此代码没有任何问题。你能打印'torch.sin(x)'看看这些值是否正确? – fonfonx

+0

并且它不是真正的四舍五入,sin(-2 * pi)应该是0而不是-1,对于sin(2 * pi)来说同样不是1 – fonfonx

+0

是的值是正确的。你对罪恶(x)的事情绝对正确,但这就是为什么我选择四舍五入而不是细胞或地板的原因。但我承认这也不是一个好选择。我不知道它是如何决定向一个更低或更高的价值取舍,而是从我所看到的(例如通过观察训练错误图)来看,它不能代表浮动值。我使用的严重破解只是将我的值乘以一个非常大的因子,所以我可以看到情节中会发生什么...... – Ash

回答

0

我终于找出问题所在。默认使用的语言环境是法语,因此浮点数用逗号代替点(,例如 1,2而不是1.2)表示。看起来,这导致Gnuplot截断数字(它放弃了逗号后的所有内容)。因此,解决方案只是

os.setlocale('C')