Theano 数组中的空格
White spaces in Theano arrays
我刚开始玩 Theano,我对这段代码的结果感到惊讶。
from theano import *
import theano.tensor as T
a = T.vector()
out = a + a ** 10
f = function([a], out)
print(f([0, 1, 2]))
使用 python3 我得到:
array([ 0., 2., 1026.])
数组本身是正确的,它包含正确的值,但是打印输出是奇怪的。我希望是这样的:
array([0, 2, 1026])
或
array([0.0, 2.0, 1026.0])
为什么会这样?多余的空白是什么?我要担心吗?
您正在打印的是 numpy.ndarray
。默认情况下,它们在打印时会像这样格式化自己。
输出数组是一个浮点数组,因为默认情况下,Theano 使用浮点张量。
如果你想使用整数张量那么你需要指定一个dtype
:
a = T.vector(dtype='int64')
或者使用一点语法糖:
a = T.lvector()
将您的输出与以下输出进行比较:
print numpy.array([0, 2, 1026], dtype=numpy.float64)
print numpy.array([0, 2, 1026], dtype=numpy.int64)
您可以使用 numpy.set_printoptions
更改 numpy 的默认打印选项。
我刚开始玩 Theano,我对这段代码的结果感到惊讶。
from theano import *
import theano.tensor as T
a = T.vector()
out = a + a ** 10
f = function([a], out)
print(f([0, 1, 2]))
使用 python3 我得到:
array([ 0., 2., 1026.])
数组本身是正确的,它包含正确的值,但是打印输出是奇怪的。我希望是这样的:
array([0, 2, 1026])
或
array([0.0, 2.0, 1026.0])
为什么会这样?多余的空白是什么?我要担心吗?
您正在打印的是 numpy.ndarray
。默认情况下,它们在打印时会像这样格式化自己。
输出数组是一个浮点数组,因为默认情况下,Theano 使用浮点张量。
如果你想使用整数张量那么你需要指定一个dtype
:
a = T.vector(dtype='int64')
或者使用一点语法糖:
a = T.lvector()
将您的输出与以下输出进行比较:
print numpy.array([0, 2, 1026], dtype=numpy.float64)
print numpy.array([0, 2, 1026], dtype=numpy.int64)
您可以使用 numpy.set_printoptions
更改 numpy 的默认打印选项。