提交 ea838a11 authored 作者: Benjamin Scellier's avatar Benjamin Scellier

file theano/gpuarray/tests/test_pool.py

上级 6192a58d
...@@ -4,7 +4,7 @@ import unittest ...@@ -4,7 +4,7 @@ import unittest
import copy import copy
import itertools import itertools
import numpy import numpy as np
import theano import theano
from theano import gradient from theano import gradient
from theano import tensor from theano import tensor
...@@ -81,7 +81,7 @@ def test_pool2d(): ...@@ -81,7 +81,7 @@ def test_pool2d():
(3, 2, 6, 6, 6, 5), (3, 2, 6, 6, 6, 5),
(3, 2, 6, 6, 6, 5, 7), ] (3, 2, 6, 6, 6, 5, 7), ]
numpy.random.RandomState(utt.fetch_seed()).shuffle(shps) np.random.RandomState(utt.fetch_seed()).shuffle(shps)
test_ws = (2, 2), (3, 2), (1, 1) test_ws = (2, 2), (3, 2), (1, 1)
test_st = (2, 2), (3, 2), (1, 1) test_st = (2, 2), (3, 2), (1, 1)
test_mode = ['max', 'sum', 'average_inc_pad', 'average_exc_pad'] test_mode = ['max', 'sum', 'average_inc_pad', 'average_exc_pad']
...@@ -113,7 +113,7 @@ def test_pool2d(): ...@@ -113,7 +113,7 @@ def test_pool2d():
for node in f.maker.fgraph.toposort()]) for node in f.maker.fgraph.toposort()])
assert any([isinstance(node.op, Pool) assert any([isinstance(node.op, Pool)
for node in f2.maker.fgraph.toposort()]) for node in f2.maker.fgraph.toposort()])
assert numpy.allclose(f(), f2()), (shp, ws, st, pad, mode, ignore_border) assert np.allclose(f(), f2()), (shp, ws, st, pad, mode, ignore_border)
a_pooled_grad = tensor.grad(a_pooled.sum(), a) a_pooled_grad = tensor.grad(a_pooled.sum(), a)
...@@ -131,7 +131,7 @@ def test_pool2d(): ...@@ -131,7 +131,7 @@ def test_pool2d():
assert any([isinstance(node.op, gop2) assert any([isinstance(node.op, gop2)
for node in g2.maker.fgraph.toposort()]) for node in g2.maker.fgraph.toposort()])
assert numpy.allclose(g(), g2()), (shp, ws, st, pad, mode, ignore_border) assert np.allclose(g(), g2()), (shp, ws, st, pad, mode, ignore_border)
# test rop and grad grad for max pooling # test rop and grad grad for max pooling
# for average pooling grad grad is just average pooling grad # for average pooling grad grad is just average pooling grad
...@@ -151,7 +151,7 @@ def test_pool2d(): ...@@ -151,7 +151,7 @@ def test_pool2d():
isinstance(node.op, DownsampleFactorMaxGradGrad) isinstance(node.op, DownsampleFactorMaxGradGrad)
for node in gr2.maker.fgraph.toposort() for node in gr2.maker.fgraph.toposort()
]) ])
assert numpy.allclose(gr(), gr2()), (shp, ws, st, pad, mode, ignore_border) assert np.allclose(gr(), gr2()), (shp, ws, st, pad, mode, ignore_border)
ggf = gradient.Lop(tensor.grad((a_pooled**2).sum(), a), a, a) ggf = gradient.Lop(tensor.grad((a_pooled**2).sum(), a), a, a)
...@@ -166,7 +166,7 @@ def test_pool2d(): ...@@ -166,7 +166,7 @@ def test_pool2d():
isinstance(node.op, DownsampleFactorMaxGradGrad) isinstance(node.op, DownsampleFactorMaxGradGrad)
for node in gg2.maker.fgraph.toposort() for node in gg2.maker.fgraph.toposort()
]) ])
assert numpy.allclose(gg(), gg2()), (shp, ws, st, pad, mode, ignore_border) assert np.allclose(gg(), gg2()), (shp, ws, st, pad, mode, ignore_border)
def test_pool3d(): def test_pool3d():
...@@ -191,7 +191,7 @@ def test_pool3d(): ...@@ -191,7 +191,7 @@ def test_pool3d():
(3, 2, 6, 6, 6, 5), (3, 2, 6, 6, 6, 5),
(3, 2, 6, 6, 6, 5, 7), ] (3, 2, 6, 6, 6, 5, 7), ]
numpy.random.RandomState(utt.fetch_seed()).shuffle(shps) np.random.RandomState(utt.fetch_seed()).shuffle(shps)
test_ws = (2, 2, 2), (3, 2, 3), (1, 1, 1) test_ws = (2, 2, 2), (3, 2, 3), (1, 1, 1)
test_st = (2, 2, 2), (2, 3, 2), (1, 1, 1) test_st = (2, 2, 2), (2, 3, 2), (1, 1, 1)
test_mode = ['max', 'sum', 'average_inc_pad', 'average_exc_pad'] test_mode = ['max', 'sum', 'average_inc_pad', 'average_exc_pad']
...@@ -223,7 +223,7 @@ def test_pool3d(): ...@@ -223,7 +223,7 @@ def test_pool3d():
for node in f.maker.fgraph.toposort()]) for node in f.maker.fgraph.toposort()])
assert any([isinstance(node.op, Pool) assert any([isinstance(node.op, Pool)
for node in f2.maker.fgraph.toposort()]) for node in f2.maker.fgraph.toposort()])
assert numpy.allclose(f(), f2()), (shp, ws, st, pad, mode, ignore_border) assert np.allclose(f(), f2()), (shp, ws, st, pad, mode, ignore_border)
a_pooled_grad = tensor.grad(a_pooled.sum(), a) a_pooled_grad = tensor.grad(a_pooled.sum(), a)
...@@ -241,7 +241,7 @@ def test_pool3d(): ...@@ -241,7 +241,7 @@ def test_pool3d():
assert any([isinstance(node.op, gop2) assert any([isinstance(node.op, gop2)
for node in g2.maker.fgraph.toposort()]) for node in g2.maker.fgraph.toposort()])
assert numpy.allclose(g(), g2()), (shp, ws, st, pad, mode, ignore_border) assert np.allclose(g(), g2()), (shp, ws, st, pad, mode, ignore_border)
# test rop and grad grad for max pooling # test rop and grad grad for max pooling
# for average pooling grad grad is just average pooling grad # for average pooling grad grad is just average pooling grad
...@@ -261,7 +261,7 @@ def test_pool3d(): ...@@ -261,7 +261,7 @@ def test_pool3d():
isinstance(node.op, DownsampleFactorMaxGradGrad) isinstance(node.op, DownsampleFactorMaxGradGrad)
for node in gr2.maker.fgraph.toposort() for node in gr2.maker.fgraph.toposort()
]) ])
assert numpy.allclose(gr(), gr2()), (shp, ws, st, pad, mode, ignore_border) assert np.allclose(gr(), gr2()), (shp, ws, st, pad, mode, ignore_border)
ggf = gradient.Lop(tensor.grad((a_pooled**2).sum(), a), a, a) ggf = gradient.Lop(tensor.grad((a_pooled**2).sum(), a), a, a)
...@@ -276,4 +276,4 @@ def test_pool3d(): ...@@ -276,4 +276,4 @@ def test_pool3d():
isinstance(node.op, DownsampleFactorMaxGradGrad) isinstance(node.op, DownsampleFactorMaxGradGrad)
for node in gg2.maker.fgraph.toposort() for node in gg2.maker.fgraph.toposort()
]) ])
assert numpy.allclose(gg(), gg2()), (shp, ws, st, pad, mode, ignore_border) assert np.allclose(gg(), gg2()), (shp, ws, st, pad, mode, ignore_border)
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论