Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
P
pytensor
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
testgroup
pytensor
Commits
2f0aa480
提交
2f0aa480
authored
6月 27, 2013
作者:
lamblin
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #1429 from nouiz/err_msg_test_compute_value
fix gh-1133, don't replace error message from compute_test_value.
上级
4078794d
8a0fdb36
隐藏空白字符变更
内嵌
并排
正在显示
5 个修改的文件
包含
41 行增加
和
15 行删除
+41
-15
check_blas.py
theano/misc/check_blas.py
+4
-0
gnumpy_utils.py
theano/misc/gnumpy_utils.py
+5
-2
test_gnumpy_utils.py
theano/misc/tests/test_gnumpy_utils.py
+13
-0
basic.py
theano/tensor/basic.py
+19
-12
elemwise.py
theano/tensor/elemwise.py
+0
-1
没有找到文件。
theano/misc/check_blas.py
浏览文件 @
2f0aa480
...
@@ -44,6 +44,10 @@ def execute(execute=True, verbose=True, M=2000, N=2000, K=2000,
...
@@ -44,6 +44,10 @@ def execute(execute=True, verbose=True, M=2000, N=2000, K=2000,
print
' compiledir='
,
theano
.
config
.
compiledir
print
' compiledir='
,
theano
.
config
.
compiledir
print
' floatX='
,
theano
.
config
.
floatX
print
' floatX='
,
theano
.
config
.
floatX
print
' device='
,
theano
.
config
.
device
print
' device='
,
theano
.
config
.
device
print
'Some OS information:'
print
' sys.platform='
,
sys
.
platform
print
' sys.version='
,
sys
.
version
print
' sys.prefix='
,
sys
.
prefix
print
'Some environment variables:'
print
'Some environment variables:'
print
' MKL_NUM_THREADS='
,
os
.
getenv
(
'MKL_NUM_THREADS'
)
print
' MKL_NUM_THREADS='
,
os
.
getenv
(
'MKL_NUM_THREADS'
)
print
' OMP_NUM_THREADS='
,
os
.
getenv
(
'OMP_NUM_THREADS'
)
print
' OMP_NUM_THREADS='
,
os
.
getenv
(
'OMP_NUM_THREADS'
)
...
...
theano/misc/gnumpy_utils.py
浏览文件 @
2f0aa480
...
@@ -106,8 +106,11 @@ try:
...
@@ -106,8 +106,11 @@ try:
strides
=
[
1
]
strides
=
[
1
]
for
i
in
x
.
shape
[::
-
1
][:
-
1
]:
for
i
in
x
.
shape
[::
-
1
][:
-
1
]:
strides
.
append
(
strides
[
-
1
]
*
i
)
strides
.
append
(
strides
[
-
1
]
*
i
)
strides
=
tuple
(
strides
[::
-
1
])
strides
=
strides
[::
-
1
]
for
i
in
range
(
len
(
strides
)):
if
x
.
shape
[
i
]
==
1
:
strides
[
i
]
=
0
strides
=
tuple
(
strides
)
import
ctypes
import
ctypes
ptr_long
=
long
(
ctypes
.
cast
(
x
.
_base
.
mat
.
data_device
,
ctypes
.
c_void_p
)
.
value
)
ptr_long
=
long
(
ctypes
.
cast
(
x
.
_base
.
mat
.
data_device
,
ctypes
.
c_void_p
)
.
value
)
...
...
theano/misc/tests/test_gnumpy_utils.py
浏览文件 @
2f0aa480
...
@@ -63,3 +63,16 @@ def test2(shape=(3, 4, 5)):
...
@@ -63,3 +63,16 @@ def test2(shape=(3, 4, 5)):
assert
A_cnd
.
gpudata
==
B
.
gpudata
assert
A_cnd
.
gpudata
==
B
.
gpudata
v
=
numpy
.
asarray
(
B
)
v
=
numpy
.
asarray
(
B
)
assert
(
v
==
A
)
.
all
()
assert
(
v
==
A
)
.
all
()
def
test_broadcast_dims
():
"""
Test with some dimensions being 1.
CudaNdarray use 0 for strides for those dimensions.
"""
test
((
1
,
2
,
3
))
test
((
2
,
1
,
3
))
test
((
2
,
3
,
1
))
test2
((
1
,
2
,
3
))
test2
((
2
,
1
,
3
))
test2
((
2
,
3
,
1
))
theano/tensor/basic.py
浏览文件 @
2f0aa480
...
@@ -69,6 +69,13 @@ class ShapeError(Exception):
...
@@ -69,6 +69,13 @@ class ShapeError(Exception):
pass
pass
class
AsTensorError
(
TypeError
):
"""Raised when as_tensor_variable isn't able to create a
TensorVariable.
"""
pass
def
check_equal_numpy
(
x
,
y
):
def
check_equal_numpy
(
x
,
y
):
"""
"""
Returns True iff x and y are equal (checks the dtype and
Returns True iff x and y are equal (checks the dtype and
...
@@ -151,8 +158,8 @@ def as_tensor_variable(x, name=None, ndim=None):
...
@@ -151,8 +158,8 @@ def as_tensor_variable(x, name=None, ndim=None):
not possible.
not possible.
:Exceptions:
:Exceptions:
- `ValueError`: raised if an `Apply` with
no default
output is fetched
- `ValueError`: raised if an `Apply` with
more then one
output is fetched
- `
Type
Error`: raised if `x` cannot be converted to a TensorType Variable
- `
AsTensor
Error`: raised if `x` cannot be converted to a TensorType Variable
"""
"""
if
hasattr
(
x
,
'_as_TensorVariable'
):
if
hasattr
(
x
,
'_as_TensorVariable'
):
...
@@ -171,7 +178,7 @@ def as_tensor_variable(x, name=None, ndim=None):
...
@@ -171,7 +178,7 @@ def as_tensor_variable(x, name=None, ndim=None):
x
=
tensor_from_scalar
(
x
)
x
=
tensor_from_scalar
(
x
)
if
not
isinstance
(
x
.
type
,
TensorType
):
if
not
isinstance
(
x
.
type
,
TensorType
):
raise
Type
Error
(
raise
AsTensor
Error
(
"Variable type field must be a TensorType."
,
x
,
x
.
type
)
"Variable type field must be a TensorType."
,
x
,
x
.
type
)
if
ndim
is
None
:
if
ndim
is
None
:
...
@@ -194,7 +201,7 @@ def as_tensor_variable(x, name=None, ndim=None):
...
@@ -194,7 +201,7 @@ def as_tensor_variable(x, name=None, ndim=None):
pass
pass
if
isinstance
(
x
,
bool
):
if
isinstance
(
x
,
bool
):
raise
Type
Error
(
raise
AsTensor
Error
(
"Cannot cast True or False as a tensor variable. Please use 1 or "
"Cannot cast True or False as a tensor variable. Please use 1 or "
"0. This error might be caused by using the == operator on "
"0. This error might be caused by using the == operator on "
"Variables. v == w does not do what you think it does, "
"Variables. v == w does not do what you think it does, "
...
@@ -207,7 +214,7 @@ def as_tensor_variable(x, name=None, ndim=None):
...
@@ -207,7 +214,7 @@ def as_tensor_variable(x, name=None, ndim=None):
str_x
=
str
(
x
)
str_x
=
str
(
x
)
except
Exception
:
except
Exception
:
str_x
=
repr
(
x
)
str_x
=
repr
(
x
)
raise
Type
Error
(
"Cannot convert
%
s to TensorType"
%
str_x
,
type
(
x
))
raise
AsTensor
Error
(
"Cannot convert
%
s to TensorType"
%
str_x
,
type
(
x
))
# this has a different name, because _as_tensor_variable is the
# this has a different name, because _as_tensor_variable is the
# function which ops use to upcast their arguments... this
# function which ops use to upcast their arguments... this
...
@@ -1584,9 +1591,9 @@ class _tensor_py_operators:
...
@@ -1584,9 +1591,9 @@ class _tensor_py_operators:
# Otherwise this will convert error when Theano flags
# Otherwise this will convert error when Theano flags
# compute_test_value is used
# compute_test_value is used
# Evidently, we need to catch NotImplementedError
# Evidently, we need to catch NotImplementedError
#
But we also need to catch TypeError
#
TypeError from as_tensor_variable are caught in Elemwise.make_node
# Oterwise TensorVariable * SparseVariable won't work!
# Oterwise TensorVariable * SparseVariable won't work!
except
(
NotImplementedError
,
Type
Error
):
except
(
NotImplementedError
,
AsTensor
Error
):
# We must return NotImplemented and not an
# We must return NotImplemented and not an
# NotImplementedError or raise an NotImplementedError.
# NotImplementedError or raise an NotImplementedError.
# That way python will give a good error message like this
# That way python will give a good error message like this
...
@@ -1599,7 +1606,7 @@ class _tensor_py_operators:
...
@@ -1599,7 +1606,7 @@ class _tensor_py_operators:
# and the return value in that case
# and the return value in that case
try
:
try
:
return
sub
(
self
,
other
)
return
sub
(
self
,
other
)
except
(
NotImplementedError
,
Type
Error
):
except
(
NotImplementedError
,
AsTensor
Error
):
return
NotImplemented
return
NotImplemented
def
__mul__
(
self
,
other
):
def
__mul__
(
self
,
other
):
...
@@ -1607,7 +1614,7 @@ class _tensor_py_operators:
...
@@ -1607,7 +1614,7 @@ class _tensor_py_operators:
# and the return value in that case
# and the return value in that case
try
:
try
:
return
mul
(
self
,
other
)
return
mul
(
self
,
other
)
except
(
NotImplementedError
,
Type
Error
):
except
(
NotImplementedError
,
AsTensor
Error
):
return
NotImplemented
return
NotImplemented
def
__div__
(
self
,
other
):
def
__div__
(
self
,
other
):
...
@@ -1619,7 +1626,7 @@ class _tensor_py_operators:
...
@@ -1619,7 +1626,7 @@ class _tensor_py_operators:
# This is to raise the exception that occurs when trying to divide
# This is to raise the exception that occurs when trying to divide
# two integer arrays (currently forbidden).
# two integer arrays (currently forbidden).
raise
raise
except
(
NotImplementedError
,
Type
Error
):
except
(
NotImplementedError
,
AsTensor
Error
):
return
NotImplemented
return
NotImplemented
if
PY3
:
if
PY3
:
__truediv__
=
__div__
__truediv__
=
__div__
...
@@ -1629,7 +1636,7 @@ class _tensor_py_operators:
...
@@ -1629,7 +1636,7 @@ class _tensor_py_operators:
# adn the return value in that case
# adn the return value in that case
try
:
try
:
return
pow
(
self
,
other
)
return
pow
(
self
,
other
)
except
(
NotImplementedError
,
Type
Error
):
except
(
NotImplementedError
,
AsTensor
Error
):
return
NotImplemented
return
NotImplemented
def
__mod__
(
self
,
other
):
def
__mod__
(
self
,
other
):
...
@@ -1641,7 +1648,7 @@ class _tensor_py_operators:
...
@@ -1641,7 +1648,7 @@ class _tensor_py_operators:
# This is to raise the exception that occurs when trying to compute
# This is to raise the exception that occurs when trying to compute
# x % y with either x or y a complex number.
# x % y with either x or y a complex number.
raise
raise
except
(
NotImplementedError
,
Type
Error
):
except
(
NotImplementedError
,
AsTensor
Error
):
return
NotImplemented
return
NotImplemented
def
__truediv__
(
self
,
other
):
def
__truediv__
(
self
,
other
):
...
...
theano/tensor/elemwise.py
浏览文件 @
2f0aa480
...
@@ -530,7 +530,6 @@ class Elemwise(Op):
...
@@ -530,7 +530,6 @@ class Elemwise(Op):
is left-completed to the greatest number of dimensions with 1s
is left-completed to the greatest number of dimensions with 1s
using DimShuffle.
using DimShuffle.
"""
"""
inputs
=
map
(
as_tensor_variable
,
inputs
)
inputs
=
map
(
as_tensor_variable
,
inputs
)
shadow
=
self
.
scalar_op
.
make_node
(
shadow
=
self
.
scalar_op
.
make_node
(
*
[
Scalar
(
dtype
=
i
.
type
.
dtype
)()
for
i
in
inputs
])
*
[
Scalar
(
dtype
=
i
.
type
.
dtype
)()
for
i
in
inputs
])
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论