【Week-G4】手势图像生成(CGAN)- PyTorch【使用生成好的生成器生成指定手势】

本文环境:
系统环境:
语言:Python3.7.8
编译器:VSCode
深度学习框架:torch 1.13.1
是否GPU训练:CPU

本周代码基本和G3周一致,个别地方有修改:
(1)epoch=300
(2)绘制Loss图
(3)选择训练好的epoch=300时的生成器模型来生成手势
(4)数据集可视化部分选择显示第一个批次的图片

训练持续时间:7.17日23:00-7月18日08:12,耗时9h12min

本次学习的重点:predictions.permute(0,2,3,1),该函数用于对张量的维度进行重新排列,生成指定图像就是靠这个函数,Pytorch框架才有的

一、准备数据 & 环境

2. 数据可视化

# 可视化第一个batch的数据
def show_images(dl):
    for images, _ in dl:
        fig, ax = plt.subplots(figsize=(10, 10))
        ax.set_xticks([]); ax.set_yticks([])
        ax.imshow(make_grid(images.detach(), nrow=16).permute(1, 2, 0))
        break
show_images(train_loader)
# def show_batch(dl):
#     for images, _ in dl:
#         show_images(images)
#         break

# show_batch(train_loader)  #显示图片
print("===============1.2 数据可视化 End============\n")

在这里插入图片描述
在这里插入图片描述

二、构建模型

print("===============2. 构建模型================")
latent_dim = 100
n_classes = 3
embedding_dim = 100
# 自定义权重初始化函数,用于初始化生成器和判别器的权重
def weights_init(m):
    # 获取当前层的类名
    classname = m.__class__.__name__

    # 如果当前层是卷积层(类名中包含 'Conv' )
    if classname.find('Conv') != -1:
        # 使用正态分布随机初始化权重,均值为0,标准差为0.02
        torch.nn.init.normal_(m.weight, 0.0, 0.02)
    
    # 如果当前层是批归一化层(类名中包含 'BatchNorm' )
    elif classname.find('BatchNorm') != -1:
        # 使用正态分布随机初始化权重,均值为1,标准差为0.02
        torch.nn.init.normal_(m.weight, 1.0, 0.02
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值