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

Improved testing for [hv]stack

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