def test_shape_elementwise(self): part1 = Linear() part2 = Linear(20) self.assertEqual(part1.get_shape(), (None, None)) self.assertEqual(part2.get_shape(), (None, [Shape(20)])) part2.chain(part1) self.assertEqual(part1.get_shape(), ([Shape(20)], [Shape(20)])) self.assertEqual(part2.get_shape(), (None, [Shape(20)]))
def test_shape_inference2(self): part1 = Linear(10, 100) part2 = Linear(100, 20) self.assertEqual(part1.get_shape(), ([Shape(10)], [Shape(100)])) self.assertEqual(part2.get_shape(), ([Shape(100)], [Shape(20)])) part1.chain(part2) self.assertEqual(part1.get_shape(), ([Shape(10)], [Shape(100)])) self.assertEqual(part2.get_shape(), ([Shape(100)], [Shape(20)]))
def test_shape_inference2(self): part1 = Linear(10, 100) part2 = Linear(100, 20) self.assertEqual(part1.get_shape(), ([Shape(10)], [Shape(100)])) self.assertEqual(part2.get_shape(), ([Shape(100)], [Shape(20)])) part1.chain(part2) self.assertEqual(part1.get_shape(), ([Shape(10)], [Shape(100)])) self.assertEqual(part2.get_shape(), ([Shape(100)], [Shape(20)]))
def test_shape_elementwise(self): part1 = Linear() part2 = Linear(20) self.assertEqual(part1.get_shape(), (None, None)) self.assertEqual(part2.get_shape(), (None, [Shape(20)])) part2.chain(part1) self.assertEqual(part1.get_shape(), ([Shape(20)], [Shape(20)])) self.assertEqual(part2.get_shape(), (None, [Shape(20)]))
def test_shape_elementwise2(self): part1 = Linear(20) part2 = Linear() part3 = Linear(30, 40) self.assertEqual(part1.get_shape(), (None, [Shape(20)])) self.assertEqual(part2.get_shape(), (None, None)) self.assertEqual(part3.get_shape(), ([Shape(30)], [Shape(40)])) part4 = part1.chain(part2) self.assertEqual(part1.get_shape(), (None, [Shape(20)])) self.assertEqual(part2.get_shape(), ([Shape(20)], [Shape(20)])) self.assertEqual(part4.get_shape(), (None, [Shape(20)])) with self.assertRaises(ShapeInError): part4.chain(part3)
def test_shape_elementwise2(self): part1 = Linear(20) part2 = Linear() part3 = Linear(30, 40) self.assertEqual(part1.get_shape(), (None, [Shape(20)])) self.assertEqual(part2.get_shape(), (None, None)) self.assertEqual(part3.get_shape(), ([Shape(30)], [Shape(40)])) part4 = part1.chain(part2) self.assertEqual(part1.get_shape(), (None, [Shape(20)])) self.assertEqual(part2.get_shape(), ([Shape(20)], [Shape(20)])) self.assertEqual(part4.get_shape(), (None, [Shape(20)])) with self.assertRaises(ShapeInError): part4.chain(part3)
def test_bad_shape2(self): part1 = Linear(100) part2 = Linear(20) self.assertEqual(part1.get_shape(), (None, [Shape(100)])) self.assertEqual(part2.get_shape(), (None, [Shape(20)])) part1.chain(part2) self.assertEqual(part1.get_shape(), (None, [Shape(100)])) self.assertEqual(part2.get_shape(), ([Shape(100)], [Shape(20)])) part3 = Linear(100) part2.chain(part3) part4 = Linear(90) with self.assertRaises(ShapeInError): part4.chain(part3)
def test_bad_shape2(self): part1 = Linear(100) part2 = Linear(20) self.assertEqual(part1.get_shape(), (None, [Shape(100)])) self.assertEqual(part2.get_shape(), (None, [Shape(20)])) part1.chain(part2) self.assertEqual(part1.get_shape(), (None, [Shape(100)])) self.assertEqual(part2.get_shape(), ([Shape(100)], [Shape(20)])) part3 = Linear(100) part2.chain(part3) part4 = Linear(90) with self.assertRaises(ShapeInError): part4.chain(part3)