Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
P
pytensor
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
testgroup
pytensor
Commits
dc13bfca
提交
dc13bfca
authored
9月 02, 2015
作者:
Frédéric Bastien
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #3339 from nouiz/davikrehalt-master
[CRASH] fix crash on Raspberry Pi 1
上级
46680247
616d7860
隐藏空白字符变更
内嵌
并排
正在显示
5 个修改的文件
包含
68 行增加
和
47 行删除
+68
-47
config.txt
doc/library/config.txt
+23
-10
cmodule.py
theano/gof/cmodule.py
+5
-3
printing.py
theano/printing.py
+3
-5
dnn.py
theano/sandbox/cuda/dnn.py
+36
-28
basic.py
theano/tensor/basic.py
+1
-1
没有找到文件。
doc/library/config.txt
浏览文件 @
dc13bfca
...
@@ -541,22 +541,35 @@ import theano and print the config variable, as in:
...
@@ -541,22 +541,35 @@ import theano and print the config variable, as in:
.. attribute:: config.dnn.conv.workmem
.. attribute:: config.dnn.conv.workmem
String value: 'none', 'small', 'large'
Deprecated, use dnn.conv.algo_fwd.
Default: 'small'
The default value for the amount of working memory that is
.. attribute:: config.dnn.conv.workmem_bwd
tolerated in the convolution implementation in cudnn.
'none'
Deprecated, use dnn.conv.algo_bwd.
Don't allow any extra memory.
'small'
.. attribute:: config.dnn.conv.algo_fwd
Allow extra memory that is much smaller than the input sizes.
'large'
String value: ``small``, ``none``, ``large``, ``fft``, ``guess_once``,
Allow extra memory that is on the order of the input sizes.
``guess_on_shape_change``, ``time_once``,
``time_on_shape_change``.
Default: ``small``
3d convolution only support ``none``, ``guess_once``,
``guess_on_shape_change``, ``time_once``, ``time_on_shape_change``.
.. attribute:: config.dnn.conv.algo_bwd
String value: ``none``, ``deterministic``, ``fft``, ``guess_once``,
``guess_on_shape_change``, ``time_once``,
``time_on_shape_change``.
Default: ``none``
3d convolution only support ``none``, ``guess_once``,
``guess_on_shape_change``, ``time_once``, ``time_on_shape_change``.
.. attribute:: config.gcc.cxxflags
.. attribute:: config.gcc.cxxflags
...
...
theano/gof/cmodule.py
浏览文件 @
dc13bfca
...
@@ -2003,7 +2003,8 @@ class GCC_compiler(Compiler):
...
@@ -2003,7 +2003,8 @@ class GCC_compiler(Compiler):
# or 64 bit and compile accordingly. This step is ignored for ARM
# or 64 bit and compile accordingly. This step is ignored for ARM
# architectures in order to make Theano compatible with the Raspberry
# architectures in order to make Theano compatible with the Raspberry
# Pi, and Raspberry Pi 2.
# Pi, and Raspberry Pi 2.
if
not
any
([
'arm'
in
flag
for
flag
in
cxxflags
])
and
platform
.
machine
()
!=
'armv7l'
:
if
(
not
any
([
'arm'
in
flag
for
flag
in
cxxflags
])
and
'arm'
not
in
platform
.
machine
()):
n_bits
=
local_bitwidth
()
n_bits
=
local_bitwidth
()
cxxflags
.
append
(
'-m
%
d'
%
n_bits
)
cxxflags
.
append
(
'-m
%
d'
%
n_bits
)
_logger
.
debug
(
"Compiling for
%
s bit architecture"
,
n_bits
)
_logger
.
debug
(
"Compiling for
%
s bit architecture"
,
n_bits
)
...
@@ -2116,8 +2117,9 @@ class GCC_compiler(Compiler):
...
@@ -2116,8 +2117,9 @@ class GCC_compiler(Compiler):
cppfile
.
write
(
'
\n
'
)
cppfile
.
write
(
'
\n
'
)
cppfile
.
close
()
cppfile
.
close
()
lib_filename
=
os
.
path
.
join
(
location
,
'
%
s.
%
s'
%
lib_filename
=
os
.
path
.
join
(
(
module_name
,
get_lib_extension
()))
location
,
'
%
s.
%
s'
%
(
module_name
,
get_lib_extension
()))
_logger
.
debug
(
'Generating shared lib
%
s'
,
lib_filename
)
_logger
.
debug
(
'Generating shared lib
%
s'
,
lib_filename
)
cmd
=
[
theano
.
config
.
cxx
,
get_gcc_shared_library_arg
(),
'-g'
]
cmd
=
[
theano
.
config
.
cxx
,
get_gcc_shared_library_arg
(),
'-g'
]
...
...
theano/printing.py
浏览文件 @
dc13bfca
...
@@ -767,11 +767,9 @@ def pydotprint(fct, outfile=None,
...
@@ -767,11 +767,9 @@ def pydotprint(fct, outfile=None,
varstr
=
'
%
s
%
s'
%
(
dstr
,
str
(
var
.
type
))
varstr
=
'
%
s
%
s'
%
(
dstr
,
str
(
var
.
type
))
elif
(
var
in
input_update
and
elif
(
var
in
input_update
and
input_update
[
var
]
.
name
is
not
None
):
input_update
[
var
]
.
name
is
not
None
):
if
var_with_name_simple
:
varstr
=
input_update
[
var
]
.
name
varstr
=
input_update
[
var
]
.
variable
.
name
if
not
var_with_name_simple
:
else
:
varstr
+=
str
(
var
.
type
)
varstr
=
(
input_update
[
var
]
.
variable
.
name
+
str
(
var
.
type
))
else
:
else
:
# a var id is needed as otherwise var with the same type will be
# a var id is needed as otherwise var with the same type will be
# merged in the graph.
# merged in the graph.
...
...
theano/sandbox/cuda/dnn.py
浏览文件 @
dc13bfca
...
@@ -423,8 +423,12 @@ class GpuDnnConv(DnnBase, COp):
...
@@ -423,8 +423,12 @@ class GpuDnnConv(DnnBase, COp):
descr
descr
The convolution descriptor.
The convolution descriptor.
workmem
workmem
*deprecated*, use parameter algo instead.
*deprecated*, use parameter algo instead.
algo : {'small', 'none', 'large', 'fft', 'guess_once', 'guess_on_shape_change', 'time_once', 'time_on_shape_change'}
algo
['none', 'small', 'large', 'fft', 'guess_once',
'guess_on_shape_change', 'time_once',
'time_on_shape_change']
Default is the value of :attr:`config.dnn.conv.algo_fwd`.
Default is the value of :attr:`config.dnn.conv.algo_fwd`.
"""
"""
...
@@ -607,18 +611,17 @@ class GpuDnnConv3d(GpuDnnConv):
...
@@ -607,18 +611,17 @@ class GpuDnnConv3d(GpuDnnConv):
:param image:
:param image:
:param kernel:
:param kernel:
:param descr: the convolution descriptor
:param descr: the convolution descriptor
:param workmem:
*deprecated*, use parameter algo instead.
:param algo: ['none', 'guess_once', 'guess_on_shape_change',
'time_once', 'time_on_shape_change']
Default is the value of :attr:`config.dnn.conv.algo_fwd.
"""
"""
__props__
=
(
'algo'
,
'inplace'
)
__props__
=
(
'algo'
,
'inplace'
)
__input_name__
=
(
'image'
,
'kernel'
,
'output'
,
__input_name__
=
(
'image'
,
'kernel'
,
'output'
,
'descriptor'
,
'alpha'
,
'beta'
)
'descriptor'
,
'alpha'
,
'beta'
)
def
__init__
(
self
,
workmem
=
None
,
inplace
=
False
,
algo
=
None
):
def
__init__
(
self
,
workmem
=
None
,
inplace
=
False
,
algo
=
None
):
"""
:param workmem: *deprecated*, use param algo instead
:param algo: either 'none', 'guess_once', 'guess_on_shape_change',
'time_once' or 'time_on_shape_change'.
Default is the value of :attr:`config.dnn.conv.algo_fwd.
"""
if
workmem
is
not
None
:
if
workmem
is
not
None
:
warnings
.
warn
((
"GpuDnnConv3d: parameter 'workmem' is deprecated. "
warnings
.
warn
((
"GpuDnnConv3d: parameter 'workmem' is deprecated. "
"Use 'algo' instead."
),
stacklevel
=
3
)
"Use 'algo' instead."
),
stacklevel
=
3
)
...
@@ -712,6 +715,14 @@ class GpuDnnConvGradW(DnnBase, COp):
...
@@ -712,6 +715,14 @@ class GpuDnnConvGradW(DnnBase, COp):
kernel
kernel
descr
descr
The convolution descriptor.
The convolution descriptor.
workmem
*deprecated*, use parameter algo instead.
algo
['none', 'deterministic', 'fft', 'guess_once',
'guess_on_shape_change', 'time_once',
'time_on_shape_change']
Default is the value of :attr:`config.dnn.conv.algo_bwd`.
"""
"""
...
@@ -719,12 +730,6 @@ class GpuDnnConvGradW(DnnBase, COp):
...
@@ -719,12 +730,6 @@ class GpuDnnConvGradW(DnnBase, COp):
__input_name__
=
(
'image'
,
'grad'
,
'output'
,
'descriptor'
,
'alpha'
,
'beta'
)
__input_name__
=
(
'image'
,
'grad'
,
'output'
,
'descriptor'
,
'alpha'
,
'beta'
)
def
__init__
(
self
,
inplace
=
False
,
workmem
=
None
,
algo
=
None
):
def
__init__
(
self
,
inplace
=
False
,
workmem
=
None
,
algo
=
None
):
"""
:param workmem: *deprecated*, use param algo instead
:param algo: either 'none', 'deterministic', 'fft', 'guess_once',
'guess_on_shape_change', 'time_once' or 'time_on_shape_change'.
Default is the value of :attr:`config.dnn.conv.algo_bwd`.
"""
COp
.
__init__
(
self
,
[
"dnn_base.c"
,
"dnn_conv_base.c"
,
"dnn_gw.c"
],
COp
.
__init__
(
self
,
[
"dnn_base.c"
,
"dnn_conv_base.c"
,
"dnn_gw.c"
],
"APPLY_SPECIFIC(conv_gw)"
)
"APPLY_SPECIFIC(conv_gw)"
)
...
@@ -849,18 +854,17 @@ class GpuDnnConv3dGradW(GpuDnnConvGradW):
...
@@ -849,18 +854,17 @@ class GpuDnnConv3dGradW(GpuDnnConvGradW):
:param image:
:param image:
:param kernel:
:param kernel:
:param descr: the convolution descriptor
:param descr: the convolution descriptor
:param workmem:
*deprecated*, use parameter algo instead.
:param algo: ['none', 'guess_once', 'guess_on_shape_change',
'time_once', 'time_on_shape_change']
Default is the value of :attr:`config.dnn.conv.algo_bwd`.
"""
"""
__props__
=
(
'algo'
,
'inplace'
,)
__props__
=
(
'algo'
,
'inplace'
,)
__input_name__
=
(
'image'
,
'grad'
,
'output'
,
'descriptor'
,
'alpha'
,
'beta'
)
__input_name__
=
(
'image'
,
'grad'
,
'output'
,
'descriptor'
,
'alpha'
,
'beta'
)
def
__init__
(
self
,
inplace
=
False
,
workmem
=
None
,
algo
=
None
):
def
__init__
(
self
,
inplace
=
False
,
workmem
=
None
,
algo
=
None
):
"""
:param workmem: *deprecated*, use param algo instead
:param algo: either 'none', 'guess_once', 'guess_on_shape_change',
'time_once' or 'time_on_shape_change'.
Default is the value of :attr:`config.dnn.conv.algo_bwd.
"""
if
workmem
is
not
None
:
if
workmem
is
not
None
:
warnings
.
warn
((
"GpuDnnConv3dGradW: parameter 'workmem' is "
warnings
.
warn
((
"GpuDnnConv3dGradW: parameter 'workmem' is "
"deprecated. Use 'algo' instead."
),
stacklevel
=
3
)
"deprecated. Use 'algo' instead."
),
stacklevel
=
3
)
...
@@ -920,8 +924,12 @@ class GpuDnnConvGradI(DnnBase, COp):
...
@@ -920,8 +924,12 @@ class GpuDnnConvGradI(DnnBase, COp):
descr
descr
The convolution descriptor.
The convolution descriptor.
workmem
workmem
*deprecated*, use parameter algo instead.
*deprecated*, use parameter algo instead.
algo : {'none', 'deterministic', 'fft', 'guess_once', 'guess_on_shape_change', 'time_once', 'time_on_shape_change'}
algo
['none', 'deterministic', 'fft', 'guess_once',
'guess_on_shape_change', 'time_once',
'time_on_shape_change']
Default is the value of :attr:`config.dnn.conv.algo_bwd`.
Default is the value of :attr:`config.dnn.conv.algo_bwd`.
"""
"""
...
@@ -1055,6 +1063,12 @@ class GpuDnnConv3dGradI(GpuDnnConvGradI):
...
@@ -1055,6 +1063,12 @@ class GpuDnnConv3dGradI(GpuDnnConvGradI):
:param image:
:param image:
:param kernel:
:param kernel:
:param descr: the convolution descriptor
:param descr: the convolution descriptor
:param workmem:
*deprecated*, use parameter algo instead.
:param algo: ['none', 'guess_once', 'guess_on_shape_change',
'time_once', 'time_on_shape_change']
Default is the value of :attr:`config.dnn.conv.algo_bwd`.
"""
"""
__props__
=
(
'algo'
,
'inplace'
,)
__props__
=
(
'algo'
,
'inplace'
,)
...
@@ -1062,12 +1076,6 @@ class GpuDnnConv3dGradI(GpuDnnConvGradI):
...
@@ -1062,12 +1076,6 @@ class GpuDnnConv3dGradI(GpuDnnConvGradI):
'beta'
)
'beta'
)
def
__init__
(
self
,
inplace
=
False
,
workmem
=
None
,
algo
=
None
):
def
__init__
(
self
,
inplace
=
False
,
workmem
=
None
,
algo
=
None
):
"""
:param workmem: *deprecated*, use param algo instead
:param algo: either 'none', 'guess_once', 'guess_on_shape_change',
'time_once' or 'time_on_shape_change'.
Default is the value of :attr:`config.dnn.conv.algo_bwd.
"""
if
workmem
is
not
None
:
if
workmem
is
not
None
:
warnings
.
warn
((
"GpuDnnConv3dGradI: parameter 'workmem' is "
warnings
.
warn
((
"GpuDnnConv3dGradI: parameter 'workmem' is "
"deprecated. Use 'algo' instead."
),
stacklevel
=
3
)
"deprecated. Use 'algo' instead."
),
stacklevel
=
3
)
...
...
theano/tensor/basic.py
浏览文件 @
dc13bfca
...
@@ -5300,7 +5300,7 @@ def _tensordot_as_dot(a, b, axes, dot, batched):
...
@@ -5300,7 +5300,7 @@ def _tensordot_as_dot(a, b, axes, dot, batched):
if
not
numpy
.
isscalar
(
axes
)
and
len
(
axes
)
!=
2
:
if
not
numpy
.
isscalar
(
axes
)
and
len
(
axes
)
!=
2
:
raise
ValueError
(
'Axes should be an integer or a '
raise
ValueError
(
'Axes should be an integer or a '
'list/tuple of len 2 (
%
s was provided)'
'list/tuple of len 2 (
%
s was provided)'
%
rep
r
(
axes
))
%
st
r
(
axes
))
# if 'axes' is a number of axes to multiply and sum over (trailing axes
# if 'axes' is a number of axes to multiply and sum over (trailing axes
# of a, leading axes of b), we can just reshape and use dot.
# of a, leading axes of b), we can just reshape and use dot.
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论