提交 59018422 authored 作者: Joseph Paul Cohen's avatar Joseph Paul Cohen

add T.cov and tests

上级 8e292493
...@@ -2168,6 +2168,11 @@ def sqr(a): ...@@ -2168,6 +2168,11 @@ def sqr(a):
square = sqr square = sqr
def cov(a):
X -= X.mean(axis=1, keepdims=1)
c = X.dot(X.T)
return c/(X.shape[1]-1)
@_scal_elemwise @_scal_elemwise
def sqrt(a): def sqrt(a):
"""square root of a""" """square root of a"""
......
...@@ -8171,6 +8171,25 @@ def test_norm(): ...@@ -8171,6 +8171,25 @@ def test_norm():
f = theano.function([x], n) f = theano.function([x], n)
assert np.allclose(f([1, 1]), np.sqrt(2)) assert np.allclose(f([1, 1]), np.sqrt(2))
def test_cov():
x = theano.tensor.matrix('x')
c = T.cov(x)
f = theano.function([x], c)
data = np.asarray(np.random.rand(3,5),dtype=config.floatX)
assert np.allclose(f(data), np.cov(data))
data = np.asarray(np.random.rand(5,3),dtype=config.floatX)
assert np.allclose(f(data), np.cov(data))
data = np.asarray(np.random.rand(10,10),dtype=config.floatX)
assert np.allclose(f(data), np.cov(data))
data = np.asarray(np.random.rand(2,2),dtype=config.floatX)
assert np.allclose(f(data), np.cov(data))
data = np.asarray(np.random.rand(1,2),dtype=config.floatX)
assert np.allclose(f(data), np.cov(data))
class test_ptp(unittest.TestCase): class test_ptp(unittest.TestCase):
def test_scalar(self): def test_scalar(self):
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论