def test_vector_to_conv_c01b_invertible():
 rng = np.random.RandomState([2013, 5, 1])
 batch_size = 3
 rows = 4
 cols = 5
 channels = 2
 conv = Conv2DSpace([rows, cols], channels=channels, axes=('c', 0, 1, 'b'))
 vec = VectorSpace(conv.get_total_dimension())
 X = conv.make_batch_theano()
 Y = conv.format_as(X, vec)
 Z = vec.format_as(Y, conv)
 A = vec.make_batch_theano()
 B = vec.format_as(A, conv)
 C = conv.format_as(B, vec)
 f = function([X, A], [Z, C])
 X = rng.randn(*conv.get_origin_batch(batch_size).shape).astype(X.dtype)
 A = rng.randn(*vec.get_origin_batch(batch_size).shape).astype(A.dtype)
 (Z, C) = f(X, A)
 np.testing.assert_allclose(Z, X)
 np.testing.assert_allclose(C, A)

def test_vector_to_conv_c01b_invertible ( ) : rng = np . random . RandomState ( [ 2013 , 5 , 1 ] ) batch_size = 3 rows = 4 cols = 5 channels = 2 conv = Conv2DSpace ( [ rows , cols ] , channels = channels , axes = ( 'c' , 0 , 1 , 'b' ) ) vec = VectorSpace ( conv . get_total_dimension ( ) ) X = conv . make_batch_theano ( ) Y = conv . format_as ( X , vec ) Z = vec . format_as ( Y , conv ) A = vec . make_batch_theano ( ) B = vec . format_as ( A , conv ) C = conv . format_as ( B , vec ) f = function ( [ X , A ] , [ Z , C ] ) X = rng . randn ( * conv . get_origin_batch ( batch_size ) . shape ) . astype ( X . dtype ) A = rng . randn ( * vec . get_origin_batch ( batch_size ) . shape ) . astype ( A . dtype ) ( Z , C ) = f ( X , A ) np . testing . assert_allclose ( Z , X ) np . testing . assert_allclose ( C , A )
tests that the format_as methods between conv2dspace and vectorspace are invertible for the axis format .