Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
P
pytensor
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
testgroup
pytensor
Commits
76e85db4
提交
76e85db4
authored
9月 24, 2008
作者:
James Bergstra
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
converted to _scal_elemwise
上级
5deb979e
隐藏空白字符变更
内嵌
并排
正在显示
1 个修改的文件
包含
137 行增加
和
58 行删除
+137
-58
tensor.py
tensor.py
+137
-58
没有找到文件。
tensor.py
浏览文件 @
76e85db4
...
@@ -691,25 +691,13 @@ def argmax(x, axis=None):
...
@@ -691,25 +691,13 @@ def argmax(x, axis=None):
# Comparison
# Comparison
##########################
##########################
def
_elemwise_macro
(
scalar_op
,
*
args
):
straight
=
elemwise
.
Elemwise
(
scalar_op
)
return
straight
(
*
args
)
def
_elemwise_macro_inplace
(
scalar_op
,
*
args
):
#construct an inplace version of the scalar op
inplace_scalar_op
=
scalar_op
.
__class__
(
scal
.
transfer_type
(
0
))
inplace
=
elemwise
.
Elemwise
(
inplace_scalar_op
,
{
0
:
0
})
return
inplace
(
*
args
)
@_scal_elemwise
@_scal_elemwise
def
lt
(
a
,
b
):
def
lt
(
a
,
b
):
"""a < b"""
"""a < b"""
return
_elemwise_macro
(
scal
.
lt
,
a
,
b
)
@_scal_elemwise
@_scal_elemwise
def
_lt_inplace
(
a
,
b
):
def
_lt_inplace
(
a
,
b
):
"""a < b (inplace on a)"""
"""a < b (inplace on a)"""
return
_elemwise_macro_inplace
(
scal
.
lt
,
a
,
b
)
@_scal_elemwise
@_scal_elemwise
def
gt
(
a
,
b
):
def
gt
(
a
,
b
):
...
@@ -805,55 +793,120 @@ def _abs(*a):
...
@@ -805,55 +793,120 @@ def _abs(*a):
def
__abs_inplace
(
a
):
def
__abs_inplace
(
a
):
"""|a| (inplace on a)"""
"""|a| (inplace on a)"""
exp
,
_exp_inplace
=
_elemwise
(
scal
.
exp
,
'exp'
,
@_scal_elemwise
"""exponential (elemwise)"""
)
def
exp
(
a
):
"""e^a"""
@_scal_elemwise
def
_exp_inplace
(
a
):
"""e^a (inplace on a)"""
neg
,
_neg_inplace
=
_elemwise
(
scal
.
neg
,
'neg'
,
@_scal_elemwise
"""negative (elemwise)"""
)
def
neg
(
a
):
"""-a"""
@_scal_elemwise
def
_neg_inplace
(
a
):
"""-a (inplace on a)"""
inv
,
_inv_inplace
=
_elemwise
(
scal
.
inv
,
'inv'
,
@_scal_elemwise
"""multiplicative inverse (elemwise)"""
)
def
inv
(
a
):
"""1.0/a (inplace on a)"""
@_scal_elemwise
def
_inv_inplace
(
a
):
"""1.0/a (inplace on a)"""
log
,
_log_inplace
=
_elemwise
(
scal
.
log
,
'log'
,
@_scal_elemwise
"""logarithm base-e (elemwise)"""
)
def
log
(
a
):
"""base e logarithm of a"""
@_scal_elemwise
def
_log_inplace
(
a
):
"""base e logarithm of a (inplace on a)"""
log2
,
_log2_inplace
=
_elemwise
(
scal
.
log2
,
'log2'
,
@_scal_elemwise
"""logarithm base-2 (elemwise)"""
)
def
log2
(
a
):
"""base 2 logarithm of a"""
@_scal_elemwise
def
_log2_inplace
(
a
):
"""base 2 logarithm of a (inplace on a)"""
sgn
,
_sgn_inplace
=
_elemwise
(
scal
.
sgn
,
'sgn'
,
@_scal_elemwise
"""sign (elemwise)"""
)
def
sgn
(
a
):
"""sign of a"""
@_scal_elemwise
def
_sgn_inplace
(
a
):
"""sign of `a` (inplace on `a`)"""
sqr
,
_sqr_inplace
=
_elemwise
(
scal
.
sqr
,
'sqr'
,
@_scal_elemwise
"""square (elemwise)"""
)
def
sqr
(
a
):
"""square of a"""
@_scal_elemwise
def
_sqr_inplace
(
a
):
"""square of `a` (inplace on `a`)"""
sqrt
,
_sqrt_inplace
=
_elemwise
(
scal
.
sqrt
,
'sqrt'
,
@_scal_elemwise
"""square root (elemwise)"""
)
def
sqrt
(
a
):
"""square root of a"""
@_scal_elemwise
def
_sqrt_inplace
(
a
):
"""square root of `a` (inplace on `a`)"""
cos
,
_cos_inplace
=
_elemwise
(
scal
.
cos
,
'cos'
,
@_scal_elemwise
"""cosine (elemwise)"""
)
def
cos
(
a
):
"""cosine of a"""
@_scal_elemwise
def
_cos_inplace
(
a
):
"""cosine of `a` (inplace on `a`)"""
sin
,
_sin_inplace
=
_elemwise
(
scal
.
sin
,
'sin'
,
@_scal_elemwise
"""sine (elemwise)"""
)
def
sin
(
a
):
"""sine of a"""
@_scal_elemwise
def
_sin_inplace
(
a
):
"""sine of `a` (inplace on `a`)"""
tan
,
_tan_inplace
=
_elemwise
(
scal
.
tan
,
'tan'
,
@_scal_elemwise
"""tan = sin/cos (elemwise)"""
)
def
tan
(
a
):
"""tangent of a"""
@_scal_elemwise
def
_tan_inplace
(
a
):
"""tangent of `a` (inplace on `a`)"""
cosh
,
_cosh_inplace
=
_elemwise
(
scal
.
cosh
,
'cosh'
,
@_scal_elemwise
"""hyperbolic cosine (elemwise)"""
)
def
cosh
(
a
):
"""hyperbolic cosine of a"""
@_scal_elemwise
def
_cosh_inplace
(
a
):
"""hyperbolic cosine of `a` (inplace on `a`)"""
sinh
,
_sinh_inplace
=
_elemwise
(
scal
.
sinh
,
'sinh'
,
@_scal_elemwise
"""hyperbolic sine (elemwise)"""
)
def
sinh
(
a
):
"""hyperbolic sine of a"""
@_scal_elemwise
def
_sinh_inplace
(
a
):
"""hyperbolic sine of `a` (inplace on `a`)"""
tanh
,
_tanh_inplace
=
_elemwise
(
scal
.
tanh
,
'tanh'
,
@_scal_elemwise
"""hyperbolic tangent (elemwise)"""
)
def
tanh
(
a
):
"""hyperbolic tangent of a"""
@_scal_elemwise
def
_tanh_inplace
(
a
):
"""hyperbolic tangent of `a` (inplace on `a`)"""
##########################
##########################
# Misc
# Misc
##########################
##########################
fill
,
_fill_inplace
=
_elemwise
(
scal
.
second
,
'fill'
,
#fill, _fill_inplace = _elemwise(scal.second, 'fill',
"""fill WRITEME (elemwise)"""
)
#"""fill WRITEME (elemwise)""")
@_scal_elemwise
def
second
(
a
,
b
):
"""Create a matrix by filling the shape of a with b"""
@_scal_elemwise
def
_second_inplace
(
a
):
"""Fill `a` with `b`"""
fill
=
second
_fill_inplace
=
_second_inplace
@constructor
@constructor
def
ones_like
(
model
):
def
ones_like
(
model
):
...
@@ -920,11 +973,13 @@ def one():
...
@@ -920,11 +973,13 @@ def one():
return
Ones
(
0
)([])
return
Ones
(
0
)([])
tensor_copy
=
elemwise
.
Elemwise
(
scal
.
identity
)
@_epydoc_cheat
(
elemwise
.
Elemwise
(
scal
.
identity
))
"""Copy a tensor"""
def
tensor_copy
(
a
):
"""Create a duplicate of `a` (with duplicated storage)"""
identity
=
elemwise
.
Elemwise
(
scal
.
identity
,
inplace_pattern
=
{
0
:
[
0
]})
@_epydoc_cheat
(
elemwise
.
Elemwise
(
scal
.
identity
,
inplace_pattern
=
{
0
:
[
0
]}))
"""Do nothing (elemwise)"""
def
view
(
a
):
"""Create a duplicate of `a` (with shared storage)"""
@constructor
@constructor
def
sum
(
input
,
axis
=
None
):
def
sum
(
input
,
axis
=
None
):
...
@@ -969,23 +1024,47 @@ repeat = Repeat()
...
@@ -969,23 +1024,47 @@ repeat = Repeat()
# Arithmetics
# Arithmetics
##########################
##########################
add
,
_add_inplace
=
_elemwise
(
scal
.
add
,
'add'
,
@_scal_elemwise
"""addition (element-wise)"""
)
def
add
(
a
,
b
):
"""elementwise addition"""
@_scal_elemwise
def
_add_inplace
(
a
,
b
):
"""elementwise addition (inplace on `a`)"""
sub
,
_sub_inplace
=
_elemwise
(
scal
.
sub
,
'sub'
,
@_scal_elemwise
"""subtraction (elemwise)"""
)
def
sub
(
a
,
b
):
"""elementwise subtraction"""
@_scal_elemwise
def
_sub_inplace
(
a
,
b
):
"""elementwise subtraction (inplace on `a`)"""
mul
,
_mul_inplace
=
_elemwise
(
scal
.
mul
,
'mul'
,
@_scal_elemwise
"""multiplication (elemwise)"""
)
def
mul
(
a
,
b
):
"""elementwise multiplication"""
@_scal_elemwise
def
_mul_inplace
(
a
,
b
):
"""elementwise multiplication (inplace on `a`)"""
div
,
_div_inplace
=
_elemwise
(
scal
.
div
,
'div'
,
@_scal_elemwise
"""division (elemwise)"""
)
def
div
(
a
,
b
):
"""elementwise division"""
@_scal_elemwise
def
_div_inplace
(
a
,
b
):
"""elementwise division (inplace on `a`)"""
mod
,
_mod_inplace
=
_elemwise
(
scal
.
mod
,
'mod'
,
@_scal_elemwise
"""modulo (elemwise)"""
)
def
mod
(
a
,
b
):
"""elementwise modulo"""
@_scal_elemwise
def
_mod_inplace
(
a
,
b
):
"""elementwise modulo (inplace on `a`)"""
pow
,
_pow_inplace
=
_elemwise
(
scal
.
pow
,
'pow'
,
@_scal_elemwise
"""raise to given exponent (elemwise)"""
)
def
pow
(
a
,
b
):
"""elementwise power"""
@_scal_elemwise
def
_pow_inplace
(
a
,
b
):
"""elementwise power (inplace on `a`)"""
##########################
##########################
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论