コード例 #1
0
    def trainBatch(self, net, criterion, optimizer, cpu_images, cpu_texts):
        batch_size = cpu_images.size(0)
        loadData(self.image, cpu_images)
        t, l = self.converter.encode(cpu_texts)

        loadData(self.text, t)
        loadData(self.length, l)
        preds = net(self.image)
        preds_size = Variable(torch.IntTensor([preds.size(0)] * batch_size))
        cost = criterion(preds, self.text, preds_size,
                         self.length) / batch_size
        net.zero_grad()
        cost.backward()
        optimizer.step()
        return cost
コード例 #2
0
def trainBatch(net, criterion, optimizer, cpu_images, cpu_texts):
    # data = train_iter.next()
    # cpu_images, cpu_texts = data
    batch_size = cpu_images.size(0)
    loadData(image, cpu_images)
    t, l = converter.encode(cpu_texts)

    loadData(text, t)
    loadData(length, l)
    preds = net(image)
    preds_size = Variable(torch.IntTensor([preds.size(0)] * batch_size))
    cost = criterion(preds, text, preds_size, length) / batch_size
    net.zero_grad()
    cost.backward()
    optimizer.step()
    return cost