提交 86cf354b authored 作者: Joseph Turian's avatar Joseph Turian

Improved testing for [hv]stack

上级 56b2db6b
......@@ -26,11 +26,15 @@ CODE
* Implement state
* 0.2: Verbose mode for compile.function
* Klass system
* Go over sandbox and figure out what is still relevant
EPYDOC
* Add WRITEME to code
* Go over and remove all WRITEME
* Maybe use EPYDOC glossary definitions
* Fix the term definitions generated to include brief description
TRAC
* Add a "Rename page" plugin
......@@ -95,5 +99,6 @@ TRAC
Dev docs
Proposals + discussions
Historical proposals + discussion
* Documentation of Klass system
* Package 0.1 documentation, so we are free to update it
* Convert wiki into sphinx or epydoc.
......@@ -970,18 +970,21 @@ class T_Join_and_Split(unittest.TestCase):
def test_join_matrix1_using_vertical_stack(self):
a = as_tensor(numpy.array([[1, 2, 3], [4, 5, 6]]))
b = as_tensor(numpy.array([[7, 8, 9]]))
s = vertical_stack(a, b)
c = as_tensor(numpy.array([[9, 8, 7]]))
s = vertical_stack(a, b, c)
want = numpy.array([[1, 2, 3],[4,5,6],[7, 8, 9]])
want = numpy.array([[1, 2, 3],[4,5,6],[7, 8, 9], [9, 8, 7]])
self.failUnless((eval_outputs([s]) == want).all())
def test_join_matrix1_using_horizontal_stack(self):
av=numpy.array([[1, 2, 3], [4, 5, 6]], dtype='float32')
bv= numpy.array([[7], [8]],dtype='float32')
bv=numpy.array([[7], [8]],dtype='float32')
cv=numpy.array([[3, 2, 1], [6, 5, 4]], dtype='float32')
a = as_tensor(av)
b = as_tensor(bv)
s = horizontal_stack(a, b)
want = numpy.array([[1, 2, 3, 7], [4, 5, 6, 8]], dtype='float32')
c = as_tensor(cv)
s = horizontal_stack(a, b, c)
want = numpy.array([[1, 2, 3, 7, 3, 2, 1], [4, 5, 6, 8, 6, 5, 4]], dtype='float32')
self.failUnless((eval_outputs([s]) == want).all())
verify_grad(self, lambda a, b: join(1,a,b), [av, bv], eps=1.0e-4, tol=1.0e-3)
......
......@@ -1647,18 +1647,15 @@ def horizontal_stack(*args):
Stack two L{Tensor}s along the second axis (column wise). These
L{Tensor}s must have the same shape along all dimensions but the
second.
@note: Unlike VerticalStack, we assume that the L{Tensor}s have
two dimensions.
"""
for arg in args:
assert arg.type.ndim == 2
assert len(args) >= 2
for arg in args: assert arg.type.ndim == 2
return concatenate(args, axis=1)
@constructor
def vertical_stack(*args):
for arg in args:
assert arg.type.ndim == 2
assert len(args) >= 2
for arg in args: assert arg.type.ndim == 2
return concatenate(args, axis=0)
if 0: #vertical and horizontal stacking are deprecated. Better to use stack() and join().
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论