1. Học hỏi
  2. /
  3. Khoa Học
  4. /
  5. Deep Learning cho Ảnh với PyTorch

Connected

Bài tập

Generator

Một generator trong GAN nhận một vector nhiễu ngẫu nhiên làm đầu vào và tạo ra một ảnh sinh ra. Để tái sử dụng kiến trúc dễ dàng hơn, bạn sẽ truyền cả kích thước đầu vào và đầu ra làm tham số cho mô hình. Như vậy, bạn có thể dùng cùng một mô hình với nhiều kích thước nhiễu đầu vào và các ảnh có hình dạng khác nhau.

Bạn đã có torch.nn được import sẵn dưới tên nn. Bạn cũng có thể dùng hàm gen_block() tùy chỉnh, hàm này trả về một khối gồm: tầng linear, batch norm, và kích hoạt ReLU. Bạn sẽ dùng nó như một khối xây dựng cho generator.

def gen_block(in_dim, out_dim):
    return nn.Sequential(
        nn.Linear(in_dim, out_dim),
        nn.BatchNorm1d(out_dim),
        nn.ReLU(inplace=True)
    )

Hướng dẫn

100 XP
  • Định nghĩa self.generator là một mô hình tuần tự.
  • Sau gen_block cuối cùng, thêm một tầng linear với kích thước đầu vào phù hợp và kích thước đầu ra là out_dim.
  • Thêm một hàm kích hoạt sigmoid sau tầng linear.
  • Trong phương thức forward(), truyền đầu vào của mô hình qua self.generator.