コード例 #1
0
def test_avg(t):
    out = minitorch.avgpool2d(t, (2, 2))
    assert_close(
        out[0, 0, 0, 0],
        sum([t[0, 0, i, j] for i in range(2) for j in range(2)]) / 4.0)

    out = minitorch.avgpool2d(t, (2, 1))
    assert_close(
        out[0, 0, 0, 0],
        sum([t[0, 0, i, j] for i in range(2) for j in range(1)]) / 2.0)

    out = minitorch.avgpool2d(t, (1, 2))
    assert_close(
        out[0, 0, 0, 0],
        sum([t[0, 0, i, j] for i in range(1) for j in range(2)]) / 2.0)
    minitorch.grad_check(lambda t: minitorch.avgpool2d(t, (2, 2)), t)
コード例 #2
0
 def forward(self, x):
     self.mid = self.conv1.forward(x).relu()
     # print(self.mid.shape)
     self.out = self.conv2.forward(self.mid).relu()
     # print(self.out.shape)
     pool = minitorch.avgpool2d(self.out, (4, 4))
     # print(pool.shape)
     pool = pool.view(BATCH, 392)
     # print(pool.shape)
     h = self.layer1.forward(pool).relu()
     # print(h.shape)
     if self.mode == "train":
         h = minitorch.dropout(h, 0.25)
     return minitorch.logsoftmax(self.layer2.forward(h), dim=1)