import torch.nn as nn
import torch.nn.functional as F


class Model(nn.Module):
    def __init__(self, config):
        super(Model, self).__init__()
        self.drop = nn.Dropout(config['dropout'])

        self.fc1 = nn.Linear(784, 2000)
        self.fc2 = nn.Linear(2000, 2000)
        self.fc3 = nn.Linear(2000, 2000)
        self.fc4 = nn.Linear(2000, 2000)
        self.fc5 = nn.Linear(2000, 10)

    def forward(self, x):
        # 784 -> 2000
        x = F.relu(self.drop(self.fc1(x)))
        # 2000 -> 2000
        x = F.relu(self.drop(self.fc2(x)))
        # 2000 -> 2000
        x = F.relu(self.drop(self.fc3(x)))
        # 2000 -> 2000
        x = F.relu(self.drop(self.fc4(x)))
        # 2000 -> 100
        x = self.fc5(x)
        return x
[((177, 206), 'torch.nn.Dropout', 'nn.Dropout', (["config['dropout']"], {}), "(config['dropout'])\n", (187, 206), True, 'import torch.nn as nn\n'), ((229, 249), 'torch.nn.Linear', 'nn.Linear', (['(784)', '(2000)'], {}), '(784, 2000)\n', (238, 249), True, 'import torch.nn as nn\n'), ((270, 291), 'torch.nn.Linear', 'nn.Linear', (['(2000)', '(2000)'], {}), '(2000, 2000)\n', (279, 291), True, 'import torch.nn as nn\n'), ((312, 333), 'torch.nn.Linear', 'nn.Linear', (['(2000)', '(2000)'], {}), '(2000, 2000)\n', (321, 333), True, 'import torch.nn as nn\n'), ((354, 375), 'torch.nn.Linear', 'nn.Linear', (['(2000)', '(2000)'], {}), '(2000, 2000)\n', (363, 375), True, 'import torch.nn as nn\n'), ((396, 415), 'torch.nn.Linear', 'nn.Linear', (['(2000)', '(10)'], {}), '(2000, 10)\n', (405, 415), True, 'import torch.nn as nn\n')]