Full Code of nmhkahn/pytorch-exercise for AI

master 44468ff2650a cached
61 files
6.4 MB
1.7M tokens
172 symbols
1 requests
Download .txt
Showing preview only (6,696K chars total). Download the full file or copy to clipboard to get everything.
Repository: nmhkahn/pytorch-exercise
Branch: master
Commit: 44468ff2650a
Files: 61
Total size: 6.4 MB

Directory structure:
gitextract_zq6u0h7o/

├── .gitignore
├── README.md
├── codes/
│   ├── cdcgan/
│   │   ├── README.md
│   │   ├── net.py
│   │   ├── solver.py
│   │   └── train.py
│   ├── char_rnn/
│   │   ├── README.md
│   │   ├── net.py
│   │   ├── solver.py
│   │   ├── train.py
│   │   └── utils.py
│   ├── colorization/
│   │   ├── dataset.py
│   │   ├── net.py
│   │   ├── solver.py
│   │   ├── train.py
│   │   ├── utils.py
│   │   └── visualize.ipynb
│   ├── flower_cls/
│   │   ├── dataset.py
│   │   ├── net.py
│   │   ├── solver.py
│   │   ├── train.py
│   │   ├── utils.py
│   │   └── visualize.ipynb
│   ├── mnist/
│   │   ├── net.py
│   │   └── train.py
│   ├── show_and_tell/
│   │   ├── README.md
│   │   ├── data/
│   │   │   ├── .gitignore
│   │   │   └── download.sh
│   │   ├── dataset.py
│   │   ├── net.py
│   │   ├── solver.py
│   │   ├── train.py
│   │   ├── visdomX.py
│   │   └── visualize.ipynb
│   ├── show_attend_and_tell/
│   │   ├── README.md
│   │   ├── dataset.py
│   │   ├── net.py
│   │   ├── solver.py
│   │   ├── train.py
│   │   ├── visdomX.py
│   │   └── visualize.ipynb
│   ├── style_transfer/
│   │   ├── README.md
│   │   ├── train.py
│   │   ├── utils.py
│   │   └── vgg.py
│   ├── super_resolution/
│   │   ├── dataset.py
│   │   ├── net.py
│   │   ├── solver.py
│   │   ├── train.py
│   │   ├── utils.py
│   │   └── visualize.ipynb
│   ├── text_cls/
│   │   ├── net.py
│   │   ├── solver.py
│   │   ├── train.py
│   │   ├── utils.py
│   │   └── visualize.ipynb
│   └── utilities/
│       ├── README.md
│       ├── net.py
│       ├── train.py
│       └── visdomX.py
└── requirements.txt

================================================
FILE CONTENTS
================================================

================================================
FILE: .gitignore
================================================
*.DS_store
*.swp
*.pth
__pycache__

.ipynb_checkpoints
.vector_cache

data
checkpoint
runs
result

!codes/show_and_tell/data


================================================
FILE: README.md
================================================
# pytorch-exercise
This repository provides some exercise codes to learn PyTorch. Since this repo doesn't provide the basic tutorial, please see after reading [pytorch-exercise](https://github.com/yunjey/pytorch-tutorial) or [Official Tutorial](http://pytorch.org/tutorials/beginner/deep_learning_60min_blitz.html). NOTE: All the codes work on PyTorch 0.4.0.

## Contents
#### 1. Basics
- [MNIST Classification](codes/mnist)
- [Flower Classification (Custom Dataset)](codes/flower_cls)
- [Utilities](codes/utilities)

#### 2. CNN Applications
- [Image Super-resolution](codes/super_resolution)
- [Image Colorization](codes/colorization)
- [Style Transfer](codes/style_transfer)
- [Conditional DCGAN](codes/cdcgan)

#### 3. RNN Applications
- [Char-RNN](codes/char_rnn)
- [Text Classification](codes/text_cls)
- [Show and Tell (CUB dataset)](codes/show_and_tell)
- [Show Attend and Tell (COCO dataset)](codes/show_attend_and_tell)

## Installation
Make sure you have Python 3.5 or newer version. Installing the requirements are as follow:

```shell
pip install -r requirements.txt
```

#### (Optional)
For the RNN Applications codes, Some tokenizer pacakages such as [SpaCy](http://spacy.io/) or [NLTK](http://nltk.org/) are needed. You need to install these packages and its English model and data.

```shell
# install SpaCy
pip install spacy
python -m spacy download en

# install NLTK
pip install nltk
python -m nltk.downloader perluniprops nonbreaking_prefixes
```

[Visdom](https://github.com/facebookresearch/visdom) and [torchsummary](https://github.com/sksq96/pytorch-summary) are used in utilities exercise code. Please install these packages before run it.

```shell
pip install visdom torchsummary
```

## Getting Started
Since dataset is downloaded and preprocessed automatically in the runtime (except few exercises) simply running below start training.
```shell
python train.py
```
Input arguments are vary among the codes, so please check the `train.py` for more details.

## Known issues
1. `UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3` when run the text classification.<br/>
: Please refer [this issue](https://github.com/pytorch/text/issues/77).

## Suggested Readings
- [pytorch-tutorial](https://github.com/yunjey/pytorch-tutorial) by yunjey
- [practical-torchtext](https://github.com/keitakurita/practical-torchtext) by keitakurita


================================================
FILE: codes/cdcgan/README.md
================================================
#### Results of Conditional GAN
Label | Generated Fake Image
:----:|:-----:
T-shirt/top | ![](assets/fake_50_0.png)
Trouser | ![](assets/fake_50_1.png)
Pullover | ![](assets/fake_50_2.png)
Dress | ![](assets/fake_50_3.png)
Coat | ![](assets/fake_50_4.png)
Sandal | ![](assets/fake_50_5.png)
Shirt | ![](assets/fake_50_6.png)
Sneaker | ![](assets/fake_50_7.png)
Bag | ![](assets/fake_50_8.png)
Ankle boot | ![](assets/fake_50_9.png)


================================================
FILE: codes/cdcgan/net.py
================================================
import torch
import torch.nn as nn

def transpose_conv(in_channels, out_channels, 
                   kernel_size, stride=2, padding=1, 
                   act=nn.LeakyReLU(0.05, True),
                   bn=True):
    layers = list()

    layers += [nn.ConvTranspose2d(
        in_channels, out_channels, kernel_size, stride, padding)
    ]
    if bn:
        layers += [nn.BatchNorm2d(out_channels)]
    if act:
        layers += [act]

    return nn.Sequential(*layers)
    

def conv(in_channels, out_channels, 
         kernel_size, stride=2, padding=1, 
         act=nn.ReLU(True),
         bn=True):
    layers = list()

    layers += [nn.Conv2d(
        in_channels, out_channels, kernel_size, stride, padding)
    ]
    if bn:
        layers += [nn.BatchNorm2d(out_channels)]
    if act:
        layers += [act]

    return nn.Sequential(*layers)


class Generator(nn.Module):
    def __init__(self, num_class=10, z_dim=100):
        super(Generator, self).__init__()

        self.fc = transpose_conv(num_class+z_dim, 32, 7, 1, 0, bn=False)
        self.t_conv1 = transpose_conv(32, 64, 4)
        self.t_conv2 = transpose_conv(64, 128, 4)
        self.conv3   = conv(128, 1, 3, 1, 1, act=nn.Tanh(), bn=False)

    def forward(self, y, z):
        latent = torch.cat([y, z], dim=1)
        latent = latent.view(latent.size(0), latent.size(1), 1, 1)
        
        out = self.fc(latent)
        out = self.t_conv1(out)
        out = self.t_conv2(out)
        out = self.conv3(out)

        return out
    

class Discriminator(nn.Module):
    def __init__(self, num_class=10):
        super(Discriminator, self).__init__()

        self.conv1 = conv(1, 32, 4, bn=False)
        self.conv2 = conv(32, 64, 4)
        self.fc_adv = conv(64, 2, 7, 1, 0, act=None, bn=False)
        self.fc_cls = conv(64, num_class, 7, 1, 0, act=None, bn=False)
        
    def forward(self, x):
        out = x
        out = self.conv1(out)
        out = self.conv2(out)

        adv = self.fc_adv(out).squeeze()
        cls = self.fc_cls(out).squeeze()

        return adv, cls


================================================
FILE: codes/cdcgan/solver.py
================================================
import os
import numpy as np
import torch
import torch.nn as nn
import torchvision.datasets as datasets
import torchvision.transforms as transforms
from torchvision.utils import save_image
from net import *

class Solver():
    def __init__(self, args):
        # define normalize transformation
        transform = transforms.Compose([
                transforms.ToTensor(),
                transforms.Normalize(mean=(0.5, 0.5, 0.5), 
                                     std=(0.5, 0.5, 0.5))
        ])

        # prepare fashion MNIST dataset
        self.train_dataset = datasets.FashionMNIST(
            root=args.data_root,
            train=True, 
            transform=transform, 
            download=True)
 
        self.train_loader = torch.utils.data.DataLoader(
            dataset=self.train_dataset,
            batch_size=args.batch_size, 
            shuffle=True)
        
        self.G = Generator(z_dim=args.z_dim)
        self.D = Discriminator()
        
        # cudafy if available
        self.device = torch.device("cuda" if torch.cuda.is_available() else "cpu")

        self.G = self.G.to(self.device)
        self.D = self.D.to(self.device)

        self.loss_fn = nn.CrossEntropyLoss()
        self.optim_G = torch.optim.Adam(self.G.parameters(), args.lr)
        self.optim_D = torch.optim.Adam(self.D.parameters(), args.lr)
        
        self.args = args
        
        if not os.path.exists(args.ckpt_dir):
            os.makedirs(args.ckpt_dir)
        if not os.path.exists(args.result_dir):
            os.makedirs(args.result_dir)
        
    def fit(self):
        args = self.args

        for epoch in range(args.max_epochs):
            self.G.train()
            self.D.train()
            for step, inputs in enumerate(self.train_loader):
                batch_size = inputs[0].size(0)

                images = inputs[0].to(self.device)
                labels = inputs[1].to(self.device)
                
                # create the labels used to distingush real or fake
                real_labels = torch.ones(batch_size, dtype=torch.int64).to(self.device)
                fake_labels = torch.zeros(batch_size, dtype=torch.int64).to(self.device)
                
                # train the discriminator
                
                # discriminator <- real image
                D_real, D_real_cls = self.D(images)
                D_loss_real = self.loss_fn(D_real, real_labels)
                D_loss_real_cls = self.loss_fn(D_real_cls, labels)
                
                # noise vector
                z = torch.randn(batch_size, args.z_dim).to(self.device)

                # make label to onehot vector
                y_onehot = torch.zeros((batch_size, 10)).to(self.device)
                y_onehot.scatter_(1, labels.unsqueeze(1), 1)
                y_onehot.requires_grad_(False)
                
                # discriminator <- fake image
                G_fake = self.G(y_onehot, z)
                D_fake, D_fake_cls = self.D(G_fake)
                D_loss_fake = self.loss_fn(D_fake, fake_labels)
                D_loss_fake_cls = self.loss_fn(D_fake_cls, labels)
                
                D_loss = D_loss_real + D_loss_fake + \
                         D_loss_real_cls + D_loss_fake_cls
                self.D.zero_grad()
                D_loss.backward()
                self.optim_D.step()
                
                # train the generator

                z = torch.randn(batch_size, args.z_dim).to(self.device)
                G_fake = self.G(y_onehot, z)
                D_fake, D_fake_cls = self.D(G_fake)
                
                G_loss = self.loss_fn(D_fake, real_labels) + \
                         self.loss_fn(D_fake_cls, labels)
                self.G.zero_grad()
                G_loss.backward()
                self.optim_G.step()

            if (epoch+1) % args.print_every == 0:
                print("Epoch [{}/{}] Loss_D: {:.3f}, Loss_G: {:.3f}".
                    format(epoch+1, args.max_epochs, D_loss.item(), G_loss.item()))
                self.save(args.ckpt_dir, epoch+1)
                self.sample(epoch+1)

                
    def sample(self, global_step=0):
        self.G.eval()
        self.D.eval()
        
        args = self.args
        batch_size = args.batch_size
                
        # produce the samples among 10-classes
        with torch.no_grad():
            for i in range(10):
                z = torch.randn(batch_size, args.z_dim).to(self.device)
                labels = torch.full((batch_size,), i, dtype=torch.int64).to(self.device)
            
                # make label to onehot vector
                y_onehot = torch.zeros((batch_size, 10)).to(self.device)
                y_onehot.scatter_(1, labels.unsqueeze(1), 1)
                y_onehot.requires_grad_(False)

                G_fake = self.G(y_onehot, z)

                # save the results
                save_image(denormalize(G_fake.detach()),
                    os.path.join(args.result_dir, "fake_{}_{}.png".format(global_step, i)))

    def save(self, ckpt_dir, global_step):
        D_path = os.path.join(
            ckpt_dir, "discriminator_{}.pth".format(global_step))
        G_path = os.path.join(
            ckpt_dir, "generator_{}.pth".format(global_step))

        torch.save(self.D.state_dict(), D_path)
        torch.save(self.G.state_dict(), G_path)


def denormalize(tensor):
    out = (tensor + 1) / 2
    return out.clamp(0, 1)



================================================
FILE: codes/cdcgan/train.py
================================================
import os
import argparse
from solver import Solver

def main():
    parser = argparse.ArgumentParser()
    parser.add_argument("--lr", type=float, default=0.0003)
    parser.add_argument("--batch_size", type=int, default=64)
    parser.add_argument("--max_epochs", type=int, default=100)
    parser.add_argument("--z_dim", type=int, default=100)
    
    parser.add_argument("--print_every", type=int, default=1)
    parser.add_argument("--result_dir", type=str, default="./result")
    parser.add_argument("--ckpt_dir", type=str, default="./checkpoint")
    parser.add_argument("--data_root", type=str, default="./data")

    args = parser.parse_args()
    solver = Solver(args)
    solver.fit()

if __name__ == "__main__":
    main()


================================================
FILE: codes/char_rnn/README.md
================================================
#### Results of Char-RNN
Default settings, `prime="All:"` and `length=300`.

Epoch [1/200] loss: 0.056
```
All:
The shall be the father of the father of the stand the father of the stand the father of the stand the father of the stand the father of the stand the father of the stand the father of the stand the father of the stand the father of the stand the father of the stand the father of the stand the father of the stand the father of the stand the father of the stand the father of the stand the father of the stand the father of the stand the father of the stand the father of the stand the father of th
```
Epoch [50/200] loss: 0.029
```
All:
And when the chapping of this fair daughters of such a thought of this and many head in this place?

KATHARINA:
A piece of the forest bird;
And therefore lay their sovereign from the fair beholders, or any man that did not weak to be a puppe things since to prove a beauty talk of a counterment that the king and fit with the fiery blow of the feasts, the fair soldiers are all these wondrous body
To greet me good
And he to come about, sir, to endure her the mariage to his crown and postering stra
```
Epoch [100/200] loss: 0.025
```
All:
'Tis so behold me to the better.

PAULINA:
Therefore must have you deliver'd.

GREGORY:
The queen is spent them to the prince. Why, Broudle my lord,
You shall never be the heated for your tale against the world, I'll straight and graced thee to our mistress,
And the most of our own shoulders, and peril in his life; I'll be his trial.

LADY ANNE:
The great soldier's horn! You are a strange too soon at the prisoner?

EENCE:
What shall we hear the head, and in the breath of blood of the king with
```
Epoch [150/200] loss: 0.024
```
All:
'Tis but their issue of a rounded by his eyes:
The shepherd's son thou wilt say with the best weeping from his tongue, the husband to deck:
What shall be her eyes against the soul, by the sire I am no good of our side,
The manage of this stoness of her own life, the great Judishmen seems distradicing enough and by oath, and therefore have laid the secrets to the king in law my father was to weap with her breed!

KATHARINA:
Nay, by your laws! do not speak for thee sees,
To pluck the prince the c
```
Epoch [200/200] loss: 0.023
```
All:
'Tell him free from the sea, and the poor beauty hath made thee to be our state to entertainment,
The news, and all of you to be a happier farewell of this contract.

LUCENTIO:
I pray you, sir, let me be the bridaling looks,
And with the man that yoke of the wall and that you shall be so,
Lest convey my commity, and a sure as choose but what you are not an heaven, and with the storm, stars it for his love.

FLORIZEL:
No, for our king, provost? 'tis a same to prove his lovers nor to thee,
That t
```


================================================
FILE: codes/char_rnn/net.py
================================================
import torch
import torch.nn as nn

class Net(nn.Module):
    def __init__(self,
                 vocab_size, embed_dim=300,
		         hidden_dim=512, num_layers=1):
        super().__init__()

        self.hidden_dim = hidden_dim

        self.embedding = nn.Embedding(vocab_size, embed_dim)
        self.encoder = nn.LSTM(embed_dim, hidden_dim, 
                               num_layers=num_layers)

        self.decoder = nn.Linear(hidden_dim, vocab_size)

    def forward(self, x):
        batch_size = x.size(0)

        embed = self.embedding(x)
        out, hidden = self.encoder(embed)

        out = self.decoder(out)
        out = out.view(-1, out.size(2))

        return out, hidden
    
    def sample(self, prime, length):
        # NOTE:
        # For char-RNN, behaviors of train and sample phase are different.
        # e.g. The model can't see the the ground-truth sentence in the sample phase.
        #      So, the input of each time-step has to be the output of previous time.
        # To handle it, RNN model is implemented by for-loop to unroll it.
        indices = list()
        
        # prepare the first hidden state
        out, hidden = self.forward(prime)

        # hidden state of last step
        h_0 = hidden[0][:,-1,:].contiguous().view(-1, 1, self.hidden_dim)
        c_0 = hidden[1][:,-1,:].contiguous().view(-1, 1, self.hidden_dim)
        hidden = (h_0, c_0)

        x = prime[:, -1]
        for t in range(length):
            embed = self.embedding(x)
            embed = embed.view(1, 1, -1)

            out, hidden = self.encoder(embed, hidden) 
            out = self.decoder(out)
            out = out.view(-1, out.size(2))
            
            _, argmax = torch.max(out, 1)
            indices.append(argmax)

            x = argmax # previous output is current output

        return indices


================================================
FILE: codes/char_rnn/solver.py
================================================
import os
import numpy as np
import torch
from net import Net
from utils import *

class Solver():
    def __init__(self, args):
        # prepare shakespeare dataset
        train_iter, data_info = load_shakespeare(args.batch_size, args.bptt_len)
        self.vocab_size = data_info["vocab_size"]
        self.TEXT = data_info["TEXT"]
        
        self.device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
        
        self.net = Net(self.vocab_size, args.embed_dim, 
                       args.hidden_dim, args.num_layers).to(self.device)
        self.loss_fn = torch.nn.CrossEntropyLoss(ignore_index=1) # <pad>: 1
        self.optim   = torch.optim.Adam(self.net.parameters(), args.lr)
        
        self.args = args
        self.train_iter = train_iter
        
        if not os.path.exists(args.ckpt_dir):
            os.makedirs(args.ckpt_dir)
        
    def fit(self):
        args = self.args

        for epoch in range(args.max_epochs):
            self.net.train()
            for step, inputs in enumerate(self.train_iter):
                X = inputs.text.to(self.device)
                y = inputs.target.to(self.device)

                out, _ = self.net(X)
                loss = self.loss_fn(out, y.view(-1))

                self.optim.zero_grad()
                loss.backward()
                self.optim.step()
            
            if (epoch+1) % args.print_every == 0:
                text = self.sample(args.sample_length, args.sample_prime)
                print("Epoch [{}/{}] loss: {:.3f}"
                    .format(epoch+1, args.max_epochs, loss.item()/args.bptt_len))
                print(text, "\n")
                self.save(args.ckpt_dir, args.ckpt_name, epoch+1)

    def sample(self, length, prime="The"):
        args = self.args

        self.net.eval()
        samples = list(prime)

        # convert prime string to torch.LongTensor type
        prime = self.TEXT.process(prime, device=self.device, train=False)
        
        # sample character indices
        indices = self.net.sample(prime, length)

        # convert char indices to string type
        for index in indices:
            out = self.TEXT.vocab.itos[index.item()]
            samples.append(out.replace("<eos>", "\n"))
        
        self.TEXT.sequential = True

        return "".join(samples)
                
    def save(self, ckpt_dir, ckpt_name, global_step):
        save_path = os.path.join(
            ckpt_dir, "{}_{}.pth".format(ckpt_name, global_step))
        torch.save(self.net.state_dict(), save_path)


================================================
FILE: codes/char_rnn/train.py
================================================
import os
import argparse
from solver import Solver

def main():
    parser = argparse.ArgumentParser()
    parser.add_argument("--lr", type=float, default=0.001)
    parser.add_argument("--batch_size", type=int, default=128)
    parser.add_argument("--max_epochs", type=int, default=200)
    parser.add_argument("--bptt_len", type=int, default=30)
    
    parser.add_argument("--embed_dim", type=int, default=300)
    parser.add_argument("--hidden_dim", type=int, default=512)
    parser.add_argument("--num_layers", type=int, default=1)
    
    parser.add_argument("--sample_prime", type=str, default="All:")
    parser.add_argument("--sample_length", type=int, default=500)
    
    parser.add_argument("--ckpt_dir", type=str, default="checkpoint")
    parser.add_argument("--ckpt_name", type=str, default="char-rnn")
    parser.add_argument("--print_every", type=int, default=1)
    
    args = parser.parse_args()
    solver = Solver(args)
    solver.fit()

if __name__ == "__main__":
    main()


================================================
FILE: codes/char_rnn/utils.py
================================================
import torch
import torchtext.data as data
import torchtext.datasets as datasets

class Shakespeare(datasets.LanguageModelingDataset):
    urls = ["https://raw.githubusercontent.com/karpathy/char-rnn/master/data/tinyshakespeare/input.txt"]
    name = "tinyshakespeare"
    dirname = "./"

    @classmethod
    def splits(cls, 
               text_field, 
               root="./data", train="input.txt",
               **kwargs):
        return super(Shakespeare, cls).splits(
            root=root, train=train,
            text_field=text_field, **kwargs)

    @classmethod
    def iters(cls, 
              batch_size=32, bptt_len=35, 
              root="./data", 
              repeat=False,
              **kwargs):
        TEXT = data.Field(sequential=True, tokenize=list)

        train, = cls.splits(TEXT, root=root, **kwargs)
        TEXT.build_vocab(train)

        return TEXT, data.BPTTIterator.splits(
            (train, ), batch_size=batch_size, bptt_len=bptt_len, repeat=repeat)


def load_shakespeare(batch_size, bptt_len):
    TEXT, (train_iter,) = Shakespeare.iters(
        batch_size=batch_size,
        bptt_len=bptt_len,
        repeat=False)

    data_info = {
        "vocab_size": len(TEXT.vocab),
        "TEXT": TEXT
    }

    return train_iter, data_info


================================================
FILE: codes/colorization/dataset.py
================================================
import os
import glob
import numpy as np
from PIL import Image
from skimage.color import rgb2lab, rgb2gray
import torch
import torch.utils.data as data
import torchvision.transforms as transforms
from utils import *

class Dataset(data.Dataset):
    def __init__(self, train, **kwargs):
        super(Dataset, self).__init__()

        self.size = kwargs.get("size", None)
        self.data_root = kwargs.get("data_root", "./data")
        
        self._prepare_dataset(self.data_root)
        
        phase = "train" if train else "test"
        dirname = os.path.join(self.data_root, "flower/{}".format(phase))

        self.paths = glob.glob(os.path.join(dirname, "*.jpg"))
  
    def __getitem__(self, index):
        image_raw = Image.open(self.paths[index])
        
        # resize original images
        if self.size:
            image_raw = image_raw.resize((self.size, self.size), Image.BICUBIC)
            
        image_raw = np.array(image_raw)
        
        # convert RGB image to Lab space
        image_lab = rgb2lab(image_raw).astype(np.float32)
        image_lab = (image_lab + 128) / 255
        
        image_ab = image_lab[:, :, 1:]
        image_ab = torch.from_numpy(image_ab.transpose((2, 0, 1)))
        
        image_gray = rgb2gray(image_raw).astype(np.float32)
        image_gray = torch.from_numpy(image_gray)

        return image_gray, image_ab

    def __len__(self):
        return len(self.paths)

    def _prepare_dataset(self, data_root):
        check = os.path.join(data_root, "flower")
        if not os.path.isdir(check):
            download_and_convert(data_root)

================================================
FILE: codes/colorization/net.py
================================================
import torch
import torch.nn as nn
import torch.nn.functional as F

class Net(nn.Module):
    def __init__(self):
        super(Net, self).__init__()
        
        layers = list()
        layers += [nn.Conv2d(1, 64, 3, 2, 1), nn.BatchNorm2d(64), nn.ReLU()]
        layers += [nn.Conv2d(64, 128, 3, 1, 1), nn.BatchNorm2d(128), nn.ReLU()]
        
        layers += [nn.Conv2d(128, 128, 3, 2, 1), nn.BatchNorm2d(128), nn.ReLU()]
        layers += [nn.Conv2d(128, 256, 3, 1, 1), nn.BatchNorm2d(256), nn.ReLU()]
        
        layers += [nn.Conv2d(256, 256, 3, 2, 1), nn.BatchNorm2d(256), nn.ReLU()]
        layers += [nn.Conv2d(256, 512, 3, 1, 1), nn.BatchNorm2d(512), nn.ReLU()]
        
        layers += [nn.ConvTranspose2d(512, 256, 4, 2, 1), nn.BatchNorm2d(256), nn.ReLU()]
        layers += [nn.Conv2d(256, 256, 3, 1, 1), nn.BatchNorm2d(256), nn.ReLU()]
        
        layers += [nn.ConvTranspose2d(256, 128, 4, 2, 1), nn.BatchNorm2d(128), nn.ReLU()]
        layers += [nn.Conv2d(128, 128, 3, 1, 1), nn.BatchNorm2d(128), nn.ReLU()]
        
        layers += [nn.ConvTranspose2d(128, 64, 4, 2, 1), nn.BatchNorm2d(64), nn.ReLU()]
        layers += [nn.Conv2d(64, 2, 3, 1, 1)]
        
        self.layers = nn.Sequential(*layers)

    def forward(self, x):
        out = self.layers(x.unsqueeze(1))

        return out

================================================
FILE: codes/colorization/solver.py
================================================
import os
import numpy as np
from skimage.color import lab2rgb
import torch
import torchvision.transforms as transforms
from torch.utils.data import DataLoader
from net import Net
from dataset import Dataset

class Solver():
    def __init__(self, args):      
        # prepare a datasets
        self.train_data = Dataset(train=True,
                                  data_root=args.data_root,
                                  size=args.image_size)
        self.test_data  = Dataset(train=False,
                                  data_root=args.data_root,
                                  size=args.image_size)
        self.train_loader = DataLoader(self.train_data,
                                       batch_size=args.batch_size,
                                       num_workers=1,
                                       shuffle=True, drop_last=True)
        
        self.device = torch.device("cuda" if torch.cuda.is_available() else "cpu")

        self.net     = Net().to(self.device)
        self.loss_fn = torch.nn.L1Loss()
        self.optim   = torch.optim.Adam(self.net.parameters(), args.lr)
        
        self.args = args
        
        if not os.path.exists(args.ckpt_dir):
            os.makedirs(args.ckpt_dir)
        
    def fit(self):
        args = self.args

        for epoch in range(args.max_epochs):
            self.net.train()
            for step, inputs in enumerate(self.train_loader):
                gt_gray = inputs[0].to(self.device)
                gt_ab   = inputs[1].to(self.device)
                
                pred_ab = self.net(gt_gray)
                loss = self.loss_fn(pred_ab, gt_ab)
                
                self.optim.zero_grad()
                loss.backward()
                self.optim.step()

            if (epoch+1) % args.print_every == 0:
                print("Epoch [{}/{}] loss: {:.6f}".format(epoch+1, args.max_epochs, loss.item()))
                self.save(args.ckpt_dir, args.ckpt_name, epoch+1)

    def save(self, ckpt_dir, ckpt_name, global_step):
        save_path = os.path.join(
            ckpt_dir, "{}_{}.pth".format(ckpt_name, global_step))
        torch.save(self.net.state_dict(), save_path)


================================================
FILE: codes/colorization/train.py
================================================
import os
import argparse
from solver import Solver

def main():
    parser = argparse.ArgumentParser()
    parser.add_argument("--lr", type=float, default=0.0001)
    parser.add_argument("--batch_size", type=int, default=64)
    parser.add_argument("--max_epochs", type=int, default=200)
    
    parser.add_argument("--ckpt_dir", type=str, default="./checkpoint")
    parser.add_argument("--ckpt_name", type=str, default="color")
    parser.add_argument("--print_every", type=int, default=1)
    
    parser.add_argument("--image_size", type=int, default=128)
    parser.add_argument("--data_root", type=str, default="./data")

    args = parser.parse_args()
    solver = Solver(args)
    solver.fit()

if __name__ == "__main__":
    main()


================================================
FILE: codes/colorization/utils.py
================================================
import os
import glob
import shutil
import tarfile
import urllib.request
import scipy.misc as misc

url = "http://download.tensorflow.org/example_images/flower_photos.tgz"
dirnames = ["daisy", "dandelion", "roses", "sunflowers", "tulips"]

def download_and_uncompress_tarball(tarball_url, dataset_dir):
    filename = tarball_url.split('/')[-1]
    filepath = os.path.join(dataset_dir, filename)

    filepath, _ = urllib.request.urlretrieve(tarball_url, filepath)
    tarfile.open(filepath, "r:gz").extractall(dataset_dir)


def download_and_convert(data_root):
    if not os.path.exists(data_root):
        os.makedirs(data_root)

    if not os.path.exists(os.path.join(data_root, "flower_photos")):
        print("[!] Downloading images...")
        download_and_uncompress_tarball(url, data_root)

    data_dir = os.path.join(data_root, "flower")
    
    if not os.path.exists(os.path.join(data_dir, "train")):
        os.makedirs(os.path.join(data_dir, "train"))
    if not os.path.exists(os.path.join(data_dir, "test")):
        os.makedirs(os.path.join(data_dir, "test"))
    
    print("[!] Converting images...")
    for dirname in dirnames:
        paths = glob.glob(os.path.join(
            data_root, "flower_photos", dirname, "*.jpg"))
        
        # training data
        for path in paths[:-10]:
            new_path = os.path.join(data_dir, "train",
                "{}_{}".format(dirname, path.split("/")[-1]))

            im = misc.imread(path)
            misc.imsave(new_path, im)

        # test data
        for path in paths[-10:]:
            new_path = os.path.join(data_dir, "test",
                "{}_{}".format(dirname, path.split("/")[-1]))

            im = misc.imread(path)
            misc.imsave(new_path, im)


================================================
FILE: codes/colorization/visualize.ipynb
================================================
{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "from skimage.color import lab2rgb\n",
    "import matplotlib.pyplot as plt\n",
    "import torch\n",
    "from torch.utils.data import DataLoader\n",
    "from net import Net\n",
    "from dataset import Dataset\n",
    "%matplotlib inline"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "batch_size = 8\n",
    "image_size = 128\n",
    "data_root = \"./data\"\n",
    "ckpt_path = \"./checkpoint/color_200.pth\""
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "data  = Dataset(train=False,\n",
    "                data_root=data_root,\n",
    "                size=image_size)\n",
    "loader = DataLoader(data,\n",
    "                    batch_size=batch_size,\n",
    "                    num_workers=1,\n",
    "                    shuffle=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "device = torch.device(\"cuda\" if torch.cuda.is_available() else \"cpu\")\n",
    "net = Net().to(device)\n",
    "\n",
    "# load pre-trained model\n",
    "state_dict = torch.load(ckpt_path)\n",
    "net.load_state_dict(state_dict)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/home/nmhkahn/.venv3/lib/python3.6/site-packages/skimage/color/colorconv.py:985: UserWarning: Color data out of range: Z < 0 in 1 pixels\n",
      "  warn('Color data out of range: Z < 0 in %s pixels' % invalid[0].size)\n",
      "/home/nmhkahn/.venv3/lib/python3.6/site-packages/skimage/color/colorconv.py:985: UserWarning: Color data out of range: Z < 0 in 13 pixels\n",
      "  warn('Color data out of range: Z < 0 in %s pixels' % invalid[0].size)\n",
      "/home/nmhkahn/.venv3/lib/python3.6/site-packages/skimage/color/colorconv.py:985: UserWarning: Color data out of range: Z < 0 in 10 pixels\n",
      "  warn('Color data out of range: Z < 0 in %s pixels' % invalid[0].size)\n",
      "/home/nmhkahn/.venv3/lib/python3.6/site-packages/skimage/color/colorconv.py:985: UserWarning: Color data out of range: Z < 0 in 16 pixels\n",
      "  warn('Color data out of range: Z < 0 in %s pixels' % invalid[0].size)\n",
      "/home/nmhkahn/.venv3/lib/python3.6/site-packages/skimage/color/colorconv.py:985: UserWarning: Color data out of range: Z < 0 in 5 pixels\n",
      "  warn('Color data out of range: Z < 0 in %s pixels' % invalid[0].size)\n",
      "/home/nmhkahn/.venv3/lib/python3.6/site-packages/skimage/color/colorconv.py:985: UserWarning: Color data out of range: Z < 0 in 9 pixels\n",
      "  warn('Color data out of range: Z < 0 in %s pixels' % invalid[0].size)\n",
      "/home/nmhkahn/.venv3/lib/python3.6/site-packages/skimage/color/colorconv.py:985: UserWarning: Color data out of range: Z < 0 in 21 pixels\n",
      "  warn('Color data out of range: Z < 0 in %s pixels' % invalid[0].size)\n"
     ]
    }
   ],
   "source": [
    "net.eval()\n",
    "gt_rgb, pred_rgb = list(), list()\n",
    "with torch.no_grad():\n",
    "    for step, inputs in enumerate(loader):\n",
    "        gt_gray = inputs[0].to(device)\n",
    "        gt_ab   = inputs[1].to(device)\n",
    "        \n",
    "        pred_ab = net(gt_gray)\n",
    "\n",
    "        gt_gray = gt_gray.detach().cpu().unsqueeze(1)\n",
    "        gt_ab   = gt_ab.detach().cpu()\n",
    "        pred_ab = pred_ab.detach().cpu()\n",
    "\n",
    "        # construct the Lab image\n",
    "        gt_lab   = torch.cat([gt_gray, gt_ab], dim=1)\n",
    "        pred_lab = torch.cat([gt_gray, pred_ab], dim=1)\n",
    "\n",
    "        gt_gray  = gt_gray.permute(0, 2, 3, 1).numpy()\n",
    "        gt_lab   = gt_lab.permute(0, 2, 3, 1).numpy()\n",
    "        pred_lab = pred_lab.permute(0, 2, 3, 1).numpy()\n",
    "        \n",
    "        # convert Lab to RGB space\n",
    "        for gt, pred in zip(gt_lab, pred_lab):\n",
    "            gt = gt.astype(np.float64)\n",
    "            gt[:, :, :1] = np.clip(gt[:, :, :1]*100, 0, 100)\n",
    "            gt[:, :, 1:] = gt[:, :, 1:]*255-128\n",
    "            gt_rgb.append(lab2rgb(gt))\n",
    "            \n",
    "            pred[:, :, :1] = pred[:, :, :1] * 100\n",
    "            pred[:, :, 1:] = pred[:, :, 1:] * 255 - 128\n",
    "            pred = pred.astype(np.float64)\n",
    "            pred_rgb.append(lab2rgb(pred))\n",
    "        break # run only first batch"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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
Download .txt
gitextract_zq6u0h7o/

├── .gitignore
├── README.md
├── codes/
│   ├── cdcgan/
│   │   ├── README.md
│   │   ├── net.py
│   │   ├── solver.py
│   │   └── train.py
│   ├── char_rnn/
│   │   ├── README.md
│   │   ├── net.py
│   │   ├── solver.py
│   │   ├── train.py
│   │   └── utils.py
│   ├── colorization/
│   │   ├── dataset.py
│   │   ├── net.py
│   │   ├── solver.py
│   │   ├── train.py
│   │   ├── utils.py
│   │   └── visualize.ipynb
│   ├── flower_cls/
│   │   ├── dataset.py
│   │   ├── net.py
│   │   ├── solver.py
│   │   ├── train.py
│   │   ├── utils.py
│   │   └── visualize.ipynb
│   ├── mnist/
│   │   ├── net.py
│   │   └── train.py
│   ├── show_and_tell/
│   │   ├── README.md
│   │   ├── data/
│   │   │   ├── .gitignore
│   │   │   └── download.sh
│   │   ├── dataset.py
│   │   ├── net.py
│   │   ├── solver.py
│   │   ├── train.py
│   │   ├── visdomX.py
│   │   └── visualize.ipynb
│   ├── show_attend_and_tell/
│   │   ├── README.md
│   │   ├── dataset.py
│   │   ├── net.py
│   │   ├── solver.py
│   │   ├── train.py
│   │   ├── visdomX.py
│   │   └── visualize.ipynb
│   ├── style_transfer/
│   │   ├── README.md
│   │   ├── train.py
│   │   ├── utils.py
│   │   └── vgg.py
│   ├── super_resolution/
│   │   ├── dataset.py
│   │   ├── net.py
│   │   ├── solver.py
│   │   ├── train.py
│   │   ├── utils.py
│   │   └── visualize.ipynb
│   ├── text_cls/
│   │   ├── net.py
│   │   ├── solver.py
│   │   ├── train.py
│   │   ├── utils.py
│   │   └── visualize.ipynb
│   └── utilities/
│       ├── README.md
│       ├── net.py
│       ├── train.py
│       └── visdomX.py
└── requirements.txt
Download .txt
SYMBOL INDEX (172 symbols across 44 files)

FILE: codes/cdcgan/net.py
  function transpose_conv (line 4) | def transpose_conv(in_channels, out_channels,
  function conv (line 21) | def conv(in_channels, out_channels,
  class Generator (line 38) | class Generator(nn.Module):
    method __init__ (line 39) | def __init__(self, num_class=10, z_dim=100):
    method forward (line 47) | def forward(self, y, z):
  class Discriminator (line 59) | class Discriminator(nn.Module):
    method __init__ (line 60) | def __init__(self, num_class=10):
    method forward (line 68) | def forward(self, x):

FILE: codes/cdcgan/solver.py
  class Solver (line 10) | class Solver():
    method __init__ (line 11) | def __init__(self, args):
    method fit (line 51) | def fit(self):
    method sample (line 113) | def sample(self, global_step=0):
    method save (line 137) | def save(self, ckpt_dir, global_step):
  function denormalize (line 147) | def denormalize(tensor):

FILE: codes/cdcgan/train.py
  function main (line 5) | def main():

FILE: codes/char_rnn/net.py
  class Net (line 4) | class Net(nn.Module):
    method __init__ (line 5) | def __init__(self,
    method forward (line 18) | def forward(self, x):
    method sample (line 29) | def sample(self, prime, length):

FILE: codes/char_rnn/solver.py
  class Solver (line 7) | class Solver():
    method __init__ (line 8) | def __init__(self, args):
    method fit (line 27) | def fit(self):
    method sample (line 50) | def sample(self, length, prime="The"):
    method save (line 71) | def save(self, ckpt_dir, ckpt_name, global_step):

FILE: codes/char_rnn/train.py
  function main (line 5) | def main():

FILE: codes/char_rnn/utils.py
  class Shakespeare (line 5) | class Shakespeare(datasets.LanguageModelingDataset):
    method splits (line 11) | def splits(cls,
    method iters (line 20) | def iters(cls,
  function load_shakespeare (line 34) | def load_shakespeare(batch_size, bptt_len):

FILE: codes/colorization/dataset.py
  class Dataset (line 11) | class Dataset(data.Dataset):
    method __init__ (line 12) | def __init__(self, train, **kwargs):
    method __getitem__ (line 25) | def __getitem__(self, index):
    method __len__ (line 46) | def __len__(self):
    method _prepare_dataset (line 49) | def _prepare_dataset(self, data_root):

FILE: codes/colorization/net.py
  class Net (line 5) | class Net(nn.Module):
    method __init__ (line 6) | def __init__(self):
    method forward (line 30) | def forward(self, x):

FILE: codes/colorization/solver.py
  class Solver (line 10) | class Solver():
    method __init__ (line 11) | def __init__(self, args):
    method fit (line 35) | def fit(self):
    method save (line 55) | def save(self, ckpt_dir, ckpt_name, global_step):

FILE: codes/colorization/train.py
  function main (line 5) | def main():

FILE: codes/colorization/utils.py
  function download_and_uncompress_tarball (line 11) | def download_and_uncompress_tarball(tarball_url, dataset_dir):
  function download_and_convert (line 19) | def download_and_convert(data_root):

FILE: codes/flower_cls/dataset.py
  class Dataset (line 12) | class Dataset(data.Dataset):
    method __init__ (line 17) | def __init__(self, train, **kwargs):
    method __getitem__ (line 37) | def __getitem__(self, index):
    method __len__ (line 49) | def __len__(self):
    method _prepare_dataset (line 52) | def _prepare_dataset(self, data_root):

FILE: codes/flower_cls/net.py
  class Net (line 4) | class Net(nn.Module):
    method __init__ (line 5) | def __init__(self):
    method _make_block (line 24) | def _make_block(self,
    method forward (line 38) | def forward(self, x):

FILE: codes/flower_cls/solver.py
  class Solver (line 8) | class Solver():
    method __init__ (line 9) | def __init__(self, args):
    method fit (line 34) | def fit(self):
    method evaluate (line 59) | def evaluate(self, data):
    method save (line 82) | def save(self, ckpt_dir, ckpt_name, global_step):

FILE: codes/flower_cls/train.py
  function main (line 5) | def main():

FILE: codes/flower_cls/utils.py
  function download_and_uncompress_tarball (line 12) | def download_and_uncompress_tarball(tarball_url, dataset_dir):
  function download_and_convert (line 20) | def download_and_convert(data_root):

FILE: codes/mnist/net.py
  class Net (line 4) | class Net(nn.Module):
    method __init__ (line 5) | def __init__(self):
    method forward (line 22) | def forward(self, x):

FILE: codes/mnist/train.py
  function evaluate (line 8) | def evaluate(net, loader, device):
  function train (line 27) | def train(args):
  function main (line 76) | def main():

FILE: codes/show_and_tell/dataset.py
  class CaptionDataset (line 9) | class CaptionDataset(torch.utils.data.Dataset):
    method __init__ (line 16) | def __init__(self, train, **kwargs):
    method __getitem__ (line 47) | def __getitem__(self, index):
    method __len__ (line 61) | def __len__(self):
    method indices_to_string (line 64) | def indices_to_string(self, indices, words=False):
  function collate_fn (line 92) | def collate_fn(data):
  function get_caption_dataset (line 119) | def get_caption_dataset(train,

FILE: codes/show_and_tell/net.py
  class Net (line 6) | class Net(nn.Module):
    method __init__ (line 7) | def __init__(self, TEXT,
    method forward (line 19) | def forward(self, image, caption, lengths):
    method sample (line 25) | def sample(self, image):
  class Encoder (line 32) | class Encoder(nn.Module):
    method __init__ (line 33) | def __init__(self, embed_dim):
    method forward (line 44) | def forward(self, x):
  class Decoder (line 48) | class Decoder(nn.Module):
    method __init__ (line 49) | def __init__(self, TEXT,
    method forward (line 63) | def forward(self, feature, caption, lengths):
    method sample (line 76) | def sample(self, feature):

FILE: codes/show_and_tell/solver.py
  class Solver (line 9) | class Solver():
    method __init__ (line 10) | def __init__(self, args):
    method fit (line 36) | def fit(self):
    method save (line 64) | def save(self, ckpt_dir, ckpt_name, global_step):

FILE: codes/show_and_tell/train.py
  function main (line 5) | def main():

FILE: codes/show_and_tell/visdomX.py
  class VisdomX (line 4) | class VisdomX:
    method __init__ (line 5) | def __init__(self):
    method add_scalars (line 9) | def add_scalars(self,
    method add_text (line 34) | def add_text(self, text):

FILE: codes/show_attend_and_tell/dataset.py
  class CaptionDataset (line 10) | class CaptionDataset(torch.utils.data.Dataset):
    method __init__ (line 17) | def __init__(self, train, **kwargs):
    method __getitem__ (line 65) | def __getitem__(self, index):
    method __len__ (line 79) | def __len__(self):
    method indices_to_string (line 82) | def indices_to_string(self, indices, words=False):
  function collate_fn (line 110) | def collate_fn(data):
  function get_caption_dataset (line 137) | def get_caption_dataset(train,

FILE: codes/show_attend_and_tell/net.py
  class Net (line 6) | class Net(nn.Module):
    method __init__ (line 7) | def __init__(self, TEXT,
    method forward (line 21) | def forward(self, image, caption, lengths):
    method sample (line 27) | def sample(self, image):
  class Encoder (line 34) | class Encoder(nn.Module):
    method __init__ (line 35) | def __init__(self, embed_dim):
    method forward (line 44) | def forward(self, x):
  class AttentionDecoder (line 48) | class AttentionDecoder(nn.Module):
    method __init__ (line 49) | def __init__(self, TEXT,
    method _attention (line 74) | def _attention(self, feature, feature_proj, hx):
    method forward (line 87) | def forward(self, feature, caption, lengths):
    method sample (line 124) | def sample(self, feature):

FILE: codes/show_attend_and_tell/solver.py
  class Solver (line 7) | class Solver():
    method __init__ (line 8) | def __init__(self, args):
    method fit (line 39) | def fit(self):
    method save (line 78) | def save(self, ckpt_dir, ckpt_name, global_step):

FILE: codes/show_attend_and_tell/train.py
  function main (line 5) | def main():

FILE: codes/show_attend_and_tell/visdomX.py
  class VisdomX (line 4) | class VisdomX:
    method __init__ (line 5) | def __init__(self):
    method add_scalars (line 9) | def add_scalars(self,
    method add_text (line 34) | def add_text(self, text):

FILE: codes/style_transfer/train.py
  function mse (line 7) | def mse(feat1, feat2):
  function gram_matrix (line 11) | def gram_matrix(matrix):
  function single_layer_style_loss (line 18) | def single_layer_style_loss(X_feat, style_feat):
  function single_layer_content_loss (line 27) | def single_layer_content_loss(X_feat, content_feat):
  function total_variance_loss (line 31) | def total_variance_loss(image):
  function fit (line 38) | def fit(X, content, style, device, args):
  function main (line 79) | def main(args):

FILE: codes/style_transfer/utils.py
  function prepare_images (line 8) | def prepare_images(content_path, style_path,
  function save_image (line 36) | def save_image(tensor, filename):

FILE: codes/style_transfer/vgg.py
  class VGGNet (line 5) | class VGGNet(nn.Module):
    method __init__ (line 11) | def __init__(self):
    method forward (line 15) | def forward(self, x, phase):

FILE: codes/super_resolution/dataset.py
  class Dataset (line 10) | class Dataset(data.Dataset):
    method __init__ (line 11) | def __init__(self, scale, train, **kwargs):
    method __getitem__ (line 28) | def __getitem__(self, index):
    method __len__ (line 41) | def __len__(self):
    method _prepare_dataset (line 44) | def _prepare_dataset(self, data_root):

FILE: codes/super_resolution/net.py
  class Net (line 6) | class Net(nn.Module):
    method __init__ (line 7) | def __init__(self, scale):
    method forward (line 24) | def forward(self, x):

FILE: codes/super_resolution/solver.py
  class Solver (line 8) | class Solver():
    method __init__ (line 9) | def __init__(self, args):
    method fit (line 35) | def fit(self):
    method evaluate (line 56) | def evaluate(self, global_step):
    method save (line 81) | def save(self, ckpt_dir, ckpt_name, global_step):
  function psnr (line 87) | def psnr(im1, im2):

FILE: codes/super_resolution/train.py
  function main (line 5) | def main():

FILE: codes/super_resolution/utils.py
  function download_and_uncompress_tarball (line 11) | def download_and_uncompress_tarball(tarball_url, dataset_dir):
  function download_and_convert (line 19) | def download_and_convert(data_root):

FILE: codes/text_cls/net.py
  class Net (line 3) | class Net(nn.Module):
    method __init__ (line 4) | def __init__(self, TEXT,
    method forward (line 25) | def forward(self, x):

FILE: codes/text_cls/solver.py
  class Solver (line 7) | class Solver():
    method __init__ (line 8) | def __init__(self, args):
    method fit (line 35) | def fit(self):
    method evaluate (line 59) | def evaluate(self, iters):
    method save (line 78) | def save(self, ckpt_dir, ckpt_name, global_step):

FILE: codes/text_cls/train.py
  function main (line 5) | def main():

FILE: codes/text_cls/utils.py
  function _iters (line 5) | def _iters(batch_size,
  function load_sst (line 28) | def load_sst(batch_size, max_vocab, fine_grained=True):

FILE: codes/utilities/net.py
  class Net (line 4) | class Net(nn.Module):
    method __init__ (line 5) | def __init__(self):
    method forward (line 22) | def forward(self, x):

FILE: codes/utilities/train.py
  function evaluate (line 12) | def evaluate(net, loader, device):
  function train (line 31) | def train(args):
  function main (line 96) | def main():

FILE: codes/utilities/visdomX.py
  class VisdomX (line 4) | class VisdomX:
    method __init__ (line 5) | def __init__(self):
    method add_scalars (line 9) | def add_scalars(self,
    method add_text (line 34) | def add_text(self, text):
Condensed preview — 61 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (6,697K chars).
[
  {
    "path": ".gitignore",
    "chars": 125,
    "preview": "*.DS_store\n*.swp\n*.pth\n__pycache__\n\n.ipynb_checkpoints\n.vector_cache\n\ndata\ncheckpoint\nruns\nresult\n\n!codes/show_and_tell/"
  },
  {
    "path": "README.md",
    "chars": 2365,
    "preview": "# pytorch-exercise\nThis repository provides some exercise codes to learn PyTorch. Since this repo doesn't provide the ba"
  },
  {
    "path": "codes/cdcgan/README.md",
    "chars": 432,
    "preview": "#### Results of Conditional GAN\nLabel | Generated Fake Image\n:----:|:-----:\nT-shirt/top | ![](assets/fake_50_0.png)\nTrou"
  },
  {
    "path": "codes/cdcgan/net.py",
    "chars": 2071,
    "preview": "import torch\nimport torch.nn as nn\n\ndef transpose_conv(in_channels, out_channels, \n                   kernel_size, strid"
  },
  {
    "path": "codes/cdcgan/solver.py",
    "chars": 5484,
    "preview": "import os\nimport numpy as np\nimport torch\nimport torch.nn as nn\nimport torchvision.datasets as datasets\nimport torchvisi"
  },
  {
    "path": "codes/cdcgan/train.py",
    "chars": 737,
    "preview": "import os\nimport argparse\nfrom solver import Solver\n\ndef main():\n    parser = argparse.ArgumentParser()\n    parser.add_a"
  },
  {
    "path": "codes/char_rnn/README.md",
    "chars": 2778,
    "preview": "#### Results of Char-RNN\nDefault settings, `prime=\"All:\"` and `length=300`.\n\nEpoch [1/200] loss: 0.056\n```\nAll:\nThe shal"
  },
  {
    "path": "codes/char_rnn/net.py",
    "chars": 1854,
    "preview": "import torch\nimport torch.nn as nn\n\nclass Net(nn.Module):\n    def __init__(self,\n                 vocab_size, embed_dim="
  },
  {
    "path": "codes/char_rnn/solver.py",
    "chars": 2568,
    "preview": "import os\nimport numpy as np\nimport torch\nfrom net import Net\nfrom utils import *\n\nclass Solver():\n    def __init__(self"
  },
  {
    "path": "codes/char_rnn/train.py",
    "chars": 1003,
    "preview": "import os\nimport argparse\nfrom solver import Solver\n\ndef main():\n    parser = argparse.ArgumentParser()\n    parser.add_a"
  },
  {
    "path": "codes/char_rnn/utils.py",
    "chars": 1286,
    "preview": "import torch\nimport torchtext.data as data\nimport torchtext.datasets as datasets\n\nclass Shakespeare(datasets.LanguageMod"
  },
  {
    "path": "codes/colorization/dataset.py",
    "chars": 1615,
    "preview": "import os\nimport glob\nimport numpy as np\nfrom PIL import Image\nfrom skimage.color import rgb2lab, rgb2gray\nimport torch\n"
  },
  {
    "path": "codes/colorization/net.py",
    "chars": 1327,
    "preview": "import torch\nimport torch.nn as nn\nimport torch.nn.functional as F\n\nclass Net(nn.Module):\n    def __init__(self):\n      "
  },
  {
    "path": "codes/colorization/solver.py",
    "chars": 2192,
    "preview": "import os\nimport numpy as np\nfrom skimage.color import lab2rgb\nimport torch\nimport torchvision.transforms as transforms\n"
  },
  {
    "path": "codes/colorization/train.py",
    "chars": 743,
    "preview": "import os\nimport argparse\nfrom solver import Solver\n\ndef main():\n    parser = argparse.ArgumentParser()\n    parser.add_a"
  },
  {
    "path": "codes/colorization/utils.py",
    "chars": 1752,
    "preview": "import os\nimport glob\nimport shutil\nimport tarfile\nimport urllib.request\nimport scipy.misc as misc\n\nurl = \"http://downlo"
  },
  {
    "path": "codes/colorization/visualize.ipynb",
    "chars": 1312139,
    "preview": "{\n \"cells\": [\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 1,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n "
  },
  {
    "path": "codes/flower_cls/dataset.py",
    "chars": 1645,
    "preview": "import os\nimport csv\nimport glob\nimport random\nimport numpy as np\nfrom PIL import Image\nimport torch\nimport torch.utils."
  },
  {
    "path": "codes/flower_cls/net.py",
    "chars": 1482,
    "preview": "import torch\nimport torch.nn as nn\n\nclass Net(nn.Module):\n    def __init__(self):\n        super(Net, self).__init__()\n  "
  },
  {
    "path": "codes/flower_cls/solver.py",
    "chars": 3087,
    "preview": "import os\nimport numpy as np\nimport torch\nfrom torch.utils.data import DataLoader\nfrom net import Net\nfrom dataset impor"
  },
  {
    "path": "codes/flower_cls/train.py",
    "chars": 815,
    "preview": "import os\nimport argparse\nfrom solver import Solver\n\ndef main():\n    parser = argparse.ArgumentParser()\n    parser.add_a"
  },
  {
    "path": "codes/flower_cls/utils.py",
    "chars": 2601,
    "preview": "import os\nimport csv\nimport glob\nimport shutil\nimport tarfile\nimport urllib.request\nimport scipy.misc as misc\n\nurl = \"ht"
  },
  {
    "path": "codes/flower_cls/visualize.ipynb",
    "chars": 871516,
    "preview": "{\n \"cells\": [\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 1,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n "
  },
  {
    "path": "codes/mnist/net.py",
    "chars": 730,
    "preview": "import torch\nimport torch.nn as nn\n\nclass Net(nn.Module):\n    def __init__(self):\n        super(Net, self).__init__()\n  "
  },
  {
    "path": "codes/mnist/train.py",
    "chars": 2727,
    "preview": "import torch\nimport torch.nn as nn\nimport torchvision.datasets as datasets\nimport torchvision.transforms as transforms\nf"
  },
  {
    "path": "codes/show_and_tell/README.md",
    "chars": 1469,
    "preview": "# Show and Tell in PyTorch\nPyTorch implementation of [Show and Tell: A Neural Image Caption Generator](https://arxiv.org"
  },
  {
    "path": "codes/show_and_tell/data/.gitignore",
    "chars": 33,
    "preview": "*\n!.gitignore\n!.csv\n!download.sh\n"
  },
  {
    "path": "codes/show_and_tell/data/download.sh",
    "chars": 164,
    "preview": "wget http://www.vision.caltech.edu/visipedia-data/CUB-200-2011/CUB_200_2011.tgz\ntar xvf CUB_200_2011.tar\nmv CUB_200_2011"
  },
  {
    "path": "codes/show_and_tell/dataset.py",
    "chars": 4731,
    "preview": "import os\nimport csv\nimport numpy as np\nfrom PIL import Image\nimport torch\nimport torchtext\nimport torchvision.transform"
  },
  {
    "path": "codes/show_and_tell/net.py",
    "chars": 2825,
    "preview": "import torch\nimport torch.nn as nn\nimport torchvision.models as models\nfrom torch.nn.utils.rnn import pack_padded_sequen"
  },
  {
    "path": "codes/show_and_tell/solver.py",
    "chars": 2441,
    "preview": "import os\nimport torch\nfrom nltk.translate.bleu_score import sentence_bleu\nfrom net import Net\nfrom dataset import get_c"
  },
  {
    "path": "codes/show_and_tell/train.py",
    "chars": 934,
    "preview": "import os\nimport argparse\nfrom solver import Solver\n\ndef main():\n    parser = argparse.ArgumentParser()\n    parser.add_a"
  },
  {
    "path": "codes/show_and_tell/visdomX.py",
    "chars": 935,
    "preview": "import numpy as np\nfrom visdom import Visdom\n\nclass VisdomX:\n    def __init__(self):\n        self.vis = Visdom()\n       "
  },
  {
    "path": "codes/show_and_tell/visualize.ipynb",
    "chars": 1180954,
    "preview": "{\n \"cells\": [\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 1,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n "
  },
  {
    "path": "codes/show_attend_and_tell/README.md",
    "chars": 1614,
    "preview": "# Show Attend and Tell in PyTorch\nPyTorch implementation of [Show, Attend and Tell: Neural Image Caption Generation with"
  },
  {
    "path": "codes/show_attend_and_tell/dataset.py",
    "chars": 5488,
    "preview": "import os\nimport csv\nimport numpy as np\nfrom PIL import Image\nfrom pycocotools.coco import COCO\nimport torch\nimport torc"
  },
  {
    "path": "codes/show_attend_and_tell/net.py",
    "chars": 5510,
    "preview": "import torch\nimport torch.nn as nn\nimport torch.nn.functional as F\nimport torchvision.models as models\n\nclass Net(nn.Mod"
  },
  {
    "path": "codes/show_attend_and_tell/solver.py",
    "chars": 2957,
    "preview": "import os\nimport torch\nfrom net import Net\nfrom dataset import get_caption_dataset\nfrom visdomX import VisdomX\n\nclass So"
  },
  {
    "path": "codes/show_attend_and_tell/train.py",
    "chars": 1080,
    "preview": "import os\nimport argparse\nfrom solver import Solver\n\ndef main():\n    parser = argparse.ArgumentParser()\n    parser.add_a"
  },
  {
    "path": "codes/show_attend_and_tell/visdomX.py",
    "chars": 935,
    "preview": "import numpy as np\nfrom visdom import Visdom\n\nclass VisdomX:\n    def __init__(self):\n        self.vis = Visdom()\n       "
  },
  {
    "path": "codes/show_attend_and_tell/visualize.ipynb",
    "chars": 2557636,
    "preview": "{\n \"cells\": [\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 1,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n "
  },
  {
    "path": "codes/style_transfer/README.md",
    "chars": 547,
    "preview": "#### Results of Style Transfer\nContent |  Style | Result\n:-------------------------:|:-------------------------:|:------"
  },
  {
    "path": "codes/style_transfer/train.py",
    "chars": 3642,
    "preview": "import os\nimport numpy as np\nimport torch\nfrom utils import *\nfrom vgg import *\n\ndef mse(feat1, feat2):\n    return torch"
  },
  {
    "path": "codes/style_transfer/utils.py",
    "chars": 1269,
    "preview": "import numpy as np\nimport PIL\nfrom PIL import Image\nimport torch\nimport torchvision\nfrom torchvision import transforms\n\n"
  },
  {
    "path": "codes/style_transfer/vgg.py",
    "chars": 802,
    "preview": "import torch\nimport torch.nn as nn\nfrom torchvision import models\n\nclass VGGNet(nn.Module):\n    feature_table = {\n      "
  },
  {
    "path": "codes/super_resolution/dataset.py",
    "chars": 1425,
    "preview": "import os\nimport glob\nimport numpy as np\nfrom PIL import Image\nimport torch\nimport torch.utils.data as data\nimport torch"
  },
  {
    "path": "codes/super_resolution/net.py",
    "chars": 854,
    "preview": "import math\nimport torch\nimport torch.nn as nn\nimport torch.nn.functional as F\n\nclass Net(nn.Module):\n    def __init__(s"
  },
  {
    "path": "codes/super_resolution/solver.py",
    "chars": 3509,
    "preview": "import os\nimport numpy as np\nimport torch\nfrom torch.utils.data import DataLoader\nfrom net import Net\nfrom dataset impor"
  },
  {
    "path": "codes/super_resolution/train.py",
    "chars": 796,
    "preview": "import os\nimport argparse\nfrom solver import Solver\n\ndef main():\n    parser = argparse.ArgumentParser()\n    parser.add_a"
  },
  {
    "path": "codes/super_resolution/utils.py",
    "chars": 1752,
    "preview": "import os\nimport glob\nimport shutil\nimport tarfile\nimport urllib.request\nimport scipy.misc as misc\n\nurl = \"http://downlo"
  },
  {
    "path": "codes/super_resolution/visualize.ipynb",
    "chars": 654844,
    "preview": "{\n \"cells\": [\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 1,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n "
  },
  {
    "path": "codes/text_cls/net.py",
    "chars": 909,
    "preview": "import torch.nn as nn\n\nclass Net(nn.Module):\n    def __init__(self, TEXT,\n                 hidden_dim=512, num_layers=2,"
  },
  {
    "path": "codes/text_cls/solver.py",
    "chars": 2776,
    "preview": "import os\nimport numpy as np\nimport torch\nfrom net import Net\nfrom utils import *\n\nclass Solver():\n    def __init__(self"
  },
  {
    "path": "codes/text_cls/train.py",
    "chars": 867,
    "preview": "import os\nimport argparse\nfrom solver import Solver\n\ndef main():\n    parser = argparse.ArgumentParser()\n    parser.add_a"
  },
  {
    "path": "codes/text_cls/utils.py",
    "chars": 1068,
    "preview": "import torch\nimport torchtext.data as data\nimport torchtext.datasets as datasets\n\ndef _iters(batch_size,\n           max_"
  },
  {
    "path": "codes/text_cls/visualize.ipynb",
    "chars": 8552,
    "preview": "{\n \"cells\": [\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 1,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n "
  },
  {
    "path": "codes/utilities/README.md",
    "chars": 1786,
    "preview": "# PyTorch Utilities\nTensorflow and Keras have their own powerful API to visualize the model or logs (mainly by the tenso"
  },
  {
    "path": "codes/utilities/net.py",
    "chars": 730,
    "preview": "import torch\nimport torch.nn as nn\n\nclass Net(nn.Module):\n    def __init__(self):\n        super(Net, self).__init__()\n  "
  },
  {
    "path": "codes/utilities/train.py",
    "chars": 3278,
    "preview": "import numpy as np\nimport torch\nimport torch.nn as nn\nimport torchvision.datasets as datasets\nimport torchvision.transfo"
  },
  {
    "path": "codes/utilities/visdomX.py",
    "chars": 935,
    "preview": "import numpy as np\nfrom visdom import Visdom\n\nclass VisdomX:\n    def __init__(self):\n        self.vis = Visdom()\n       "
  },
  {
    "path": "requirements.txt",
    "chars": 99,
    "preview": "numpy\nscipy\nmatplotlib\nscikit-image\njupyter\ntorch >= 0.4.0\ntorchvision >= 0.2.1\ntorchtext >= 0.2.3\n"
  }
]

About this extraction

This page contains the full source code of the nmhkahn/pytorch-exercise GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 61 files (6.4 MB), approximately 1.7M tokens, and a symbol index with 172 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!