提交 ba5d6da9 authored 作者: projects@lgcm's avatar projects@lgcm

added more docstrings to tensor.py

上级 3a1cdec7
...@@ -477,6 +477,7 @@ class TensorConstant(Constant, _tensor_py_operators): ...@@ -477,6 +477,7 @@ class TensorConstant(Constant, _tensor_py_operators):
class TensorValue(Value, _tensor_py_operators): class TensorValue(Value, _tensor_py_operators):
pass pass
#QUESTION: why are we doing this!?
elemwise.as_tensor = as_tensor elemwise.as_tensor = as_tensor
elemwise.Tensor = Tensor elemwise.Tensor = Tensor
elemwise.TensorResult = TensorResult elemwise.TensorResult = TensorResult
...@@ -661,11 +662,22 @@ def argmax(x, axis=None): ...@@ -661,11 +662,22 @@ def argmax(x, axis=None):
########################## ##########################
lt, lt_inplace = _elemwise(scal.lt, 'lt') lt, lt_inplace = _elemwise(scal.lt, 'lt')
"""less than (elemwise)"""
gt, gt_inplace = _elemwise(scal.gt, 'gt') gt, gt_inplace = _elemwise(scal.gt, 'gt')
"""greater than (elemwise)"""
le, le_inplace = _elemwise(scal.le, 'le') le, le_inplace = _elemwise(scal.le, 'le')
"""less than, or equal to (elemwise)"""
ge, ge_inplace = _elemwise(scal.ge, 'ge') ge, ge_inplace = _elemwise(scal.ge, 'ge')
"""greater than, or equal to (elemwise)"""
eq, eq_inplace = _elemwise(scal.eq, 'eq') eq, eq_inplace = _elemwise(scal.eq, 'eq')
"""equal to (elemwise)"""
neq, neq_inplace = _elemwise(scal.neq, 'neq') neq, neq_inplace = _elemwise(scal.neq, 'neq')
"""not equal to (elemwise)"""
########################## ##########################
...@@ -673,29 +685,65 @@ neq, neq_inplace = _elemwise(scal.neq, 'neq') ...@@ -673,29 +685,65 @@ neq, neq_inplace = _elemwise(scal.neq, 'neq')
########################## ##########################
and_, and_inplace = _elemwise(scal.and_, 'and_') and_, and_inplace = _elemwise(scal.and_, 'and_')
"""bitwise AND (elemwise)"""
or_, or_inplace = _elemwise(scal.or_, 'or_') or_, or_inplace = _elemwise(scal.or_, 'or_')
"""bitwise OR (elemwise)"""
xor, xor_inplace = _elemwise(scal.xor, 'xor') xor, xor_inplace = _elemwise(scal.xor, 'xor')
"""bitwise XOR (elemwise)"""
invert, invert_inplace = _elemwise(scal.invert, 'invert') invert, invert_inplace = _elemwise(scal.invert, 'invert')
"""bitwise NOT (elemwise)"""
########################## ##########################
# Math # Math
########################## ##########################
_abs, abs_inplace = _elemwise(scal.abs, 'abs') _abs, abs_inplace = _elemwise(scal.abs, 'abs')
"""absolute value (elemwise)"""
exp, exp_inplace = _elemwise(scal.exp, 'exp') exp, exp_inplace = _elemwise(scal.exp, 'exp')
"""exponential (elemwise)"""
neg, neg_inplace = _elemwise(scal.neg, 'neg') neg, neg_inplace = _elemwise(scal.neg, 'neg')
"""negative (elemwise)"""
inv, inv_inplace = _elemwise(scal.inv, 'inv') inv, inv_inplace = _elemwise(scal.inv, 'inv')
"""multiplicative inverse (elemwise)"""
log, log_inplace = _elemwise(scal.log, 'log') log, log_inplace = _elemwise(scal.log, 'log')
"""logarithm base-e (elemwise)"""
log2, log2_inplace = _elemwise(scal.log2, 'log2') log2, log2_inplace = _elemwise(scal.log2, 'log2')
"""logarithm base-2 (elemwise)"""
sgn, sgn_inplace = _elemwise(scal.sgn, 'sgn') sgn, sgn_inplace = _elemwise(scal.sgn, 'sgn')
"""sign (elemwise)"""
sqr, sqr_inplace = _elemwise(scal.sqr, 'sqr') sqr, sqr_inplace = _elemwise(scal.sqr, 'sqr')
"""square (elemwise)"""
sqrt, sqrt_inplace = _elemwise(scal.sqrt, 'sqrt') sqrt, sqrt_inplace = _elemwise(scal.sqrt, 'sqrt')
"""square root (elemwise)"""
cos, cos_inplace = _elemwise(scal.cos, 'cos') cos, cos_inplace = _elemwise(scal.cos, 'cos')
"""cosine (elemwise)"""
sin, sin_inplace = _elemwise(scal.sin, 'sin') sin, sin_inplace = _elemwise(scal.sin, 'sin')
"""sine (elemwise)"""
tan, tan_inplace = _elemwise(scal.tan, 'tan') tan, tan_inplace = _elemwise(scal.tan, 'tan')
"""tan = sin/cos (elemwise)"""
cosh, cosh_inplace = _elemwise(scal.cosh, 'cosh') cosh, cosh_inplace = _elemwise(scal.cosh, 'cosh')
"""hyperbolic cosine (elemwise)"""
sinh, sinh_inplace = _elemwise(scal.sinh, 'sinh') sinh, sinh_inplace = _elemwise(scal.sinh, 'sinh')
"""hyperbolic sine (elemwise)"""
tanh, tanh_inplace = _elemwise(scal.tanh, 'tanh') tanh, tanh_inplace = _elemwise(scal.tanh, 'tanh')
"""hyperbolic tangent (elemwise)"""
########################## ##########################
...@@ -703,18 +751,22 @@ tanh, tanh_inplace = _elemwise(scal.tanh, 'tanh') ...@@ -703,18 +751,22 @@ tanh, tanh_inplace = _elemwise(scal.tanh, 'tanh')
########################## ##########################
fill, fill_inplace = _elemwise(scal.second, 'fill') fill, fill_inplace = _elemwise(scal.second, 'fill')
"""fill WRITEME (elemwise)"""
@constructor @constructor
def ones_like(model): def ones_like(model):
"""WRITEME"""
#return Ones(model.type.ndim)(shape(model)) #return Ones(model.type.ndim)(shape(model))
return fill(model, 1.0) return fill(model, 1.0)
@constructor @constructor
def zeros_like(model): def zeros_like(model):
"""WRITEME"""
#return Zeros(model.type.ndim)(shape(model)) #return Zeros(model.type.ndim)(shape(model))
return fill(model, 0.0) return fill(model, 0.0)
class Filler(gof.Op): class Filler(gof.Op):
"""WRITEME"""
def __init__(self, value, ndim, dtype = 'float64'): def __init__(self, value, ndim, dtype = 'float64'):
self.value = value self.value = value
self.ndim = ndim self.ndim = ndim
...@@ -748,7 +800,10 @@ class Filler(gof.Op): ...@@ -748,7 +800,10 @@ class Filler(gof.Op):
return hash(self.ndim) ^ hash(self.dtype) return hash(self.ndim) ^ hash(self.dtype)
Zeros = functools.partial(Filler, 0) Zeros = functools.partial(Filler, 0)
"""WRITEME"""
Ones = functools.partial(Filler, 1) Ones = functools.partial(Filler, 1)
"""WRITEME"""
@constructor @constructor
def zero(): def zero():
...@@ -759,18 +814,24 @@ def zero(): ...@@ -759,18 +814,24 @@ def zero():
@constructor @constructor
def one(): def one():
"""WRITEME"""
return Ones(0)([]) return Ones(0)([])
tensor_copy = elemwise.Elemwise(scal.identity) tensor_copy = elemwise.Elemwise(scal.identity)
"""Copy a tensor"""
identity = elemwise.Elemwise(scal.identity, inplace_pattern = {0: [0]}) identity = elemwise.Elemwise(scal.identity, inplace_pattern = {0: [0]})
"""Do nothing (elemwise)"""
@constructor @constructor
def sum(input, axis = None): def sum(input, axis = None):
"""WRITEME"""
return elemwise.Sum(axis)(input) return elemwise.Sum(axis)(input)
@constructor @constructor
def mean(input, axis = None): def mean(input, axis = None):
"""WRITEME"""
s = sum(input, axis) s = sum(input, axis)
shp = shape(input) shp = shape(input)
if axis is None: if axis is None:
...@@ -807,11 +868,22 @@ repeat = Repeat() ...@@ -807,11 +868,22 @@ repeat = Repeat()
########################## ##########################
add, add_inplace = _elemwise(scal.add, 'add') add, add_inplace = _elemwise(scal.add, 'add')
"""addition (elemwise)"""
sub, sub_inplace = _elemwise(scal.sub, 'sub') sub, sub_inplace = _elemwise(scal.sub, 'sub')
"""subtraction (elemwise)"""
mul, mul_inplace = _elemwise(scal.mul, 'mul') mul, mul_inplace = _elemwise(scal.mul, 'mul')
"""multiplication (elemwise)"""
div, div_inplace = _elemwise(scal.div, 'div') div, div_inplace = _elemwise(scal.div, 'div')
"""division (elemwise)"""
mod, mod_inplace = _elemwise(scal.mod, 'mod') mod, mod_inplace = _elemwise(scal.mod, 'mod')
"""modulo (elemwise)"""
pow, pow_inplace = _elemwise(scal.pow, 'pow') pow, pow_inplace = _elemwise(scal.pow, 'pow')
"""raise to given exponent (elemwise)"""
########################## ##########################
...@@ -844,7 +916,10 @@ class TransposeInplace(Op): ...@@ -844,7 +916,10 @@ class TransposeInplace(Op):
return "TransposeView" return "TransposeView"
transpose_inplace = TransposeInplace() transpose_inplace = TransposeInplace()
"""WRITEME"""
def transpose(x, **kwargs): def transpose(x, **kwargs):
"""WRITEME"""
return transpose_inplace(tensor_copy(x), **kwargs) return transpose_inplace(tensor_copy(x), **kwargs)
...@@ -980,6 +1055,7 @@ class Subtensor(Op): ...@@ -980,6 +1055,7 @@ class Subtensor(Op):
class SetSubtensor(Subtensor): class SetSubtensor(Subtensor):
"""WRITEME"""
view_map = {} view_map = {}
destroy_map = {0: [0]} destroy_map = {0: [0]}
...@@ -1032,6 +1108,7 @@ class SetSubtensor(Subtensor): ...@@ -1032,6 +1108,7 @@ class SetSubtensor(Subtensor):
class MakeVector(Op): class MakeVector(Op):
"""WRITEME"""
def __init__(self, stype): def __init__(self, stype):
self.stype = stype self.stype = stype
def make_node(self, *inputs): def make_node(self, *inputs):
...@@ -1044,6 +1121,7 @@ class MakeVector(Op): ...@@ -1044,6 +1121,7 @@ class MakeVector(Op):
return [None]*len(inputs) return [None]*len(inputs)
make_lvector = MakeVector(lscalar) make_lvector = MakeVector(lscalar)
"""WRITEME"""
class VerticalStack(Op): class VerticalStack(Op):
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论