python打卡day40@浙大疏锦行

知识点回顾:

  1. 彩色和灰度图片测试和训练的规范写法:封装在函数中
  2. 展平操作:除第一个维度batchsize外全部展平
  3. dropout操作:训练阶段随机丢弃神经元,测试阶段eval模式关闭dropout

一、彩色/灰度图片处理规范写法

def process_image(image, is_grayscale=False):
    """统一处理彩色/灰度图像"""
    if is_grayscale:
        # 灰度图处理 (H,W) -> (1,H,W)
        image = image.unsqueeze(0) if len(image.shape) == 2 else image
    else:
        # 彩色图处理 (H,W,C) -> (C,H,W)
        if len(image.shape) == 3 and image.shape[-1] == 3:
            image = image.permute(2, 0, 1)
    return image.float() / 255.0  # 归一化

 二、展平操作规范

class Net(nn.Module):
    def forward(self, x):
        # 保留batch维度,其余展平
        x = x.view(x.size(0), -1)  # (batch, C*H*W)
        return self.fc(x)

三、Dropout训练/测试模式规范

model = nn.Sequential(
    nn.Linear(784, 256),
    nn.Dropout(0.5),  # 训练时50%概率丢弃
    nn.ReLU(),
    nn.Linear(256, 10)
)

# 训练阶段
model.train()  # 启用dropout
output = model(inputs)

# 测试阶段
model.eval()  # 关闭dropout
with torch.no_grad():
    test_output = model(test_inputs)

关键点说明:

1. 图像处理函数应自动适配输入维度
2. 展平操作必须保留batch维度
3. dropout的行为通过 train() / eval() 自动切换
4. 测试阶段建议配合 torch.no_grad() 减少内存消耗

你可能感兴趣的:(python打卡60天行动,python,深度学习,机器学习)