深度学习小记(包括pytorch 还有一些神经网络架构)

这个是用来增加深度学习的知识面或者就是记录一些常用的命令,会不断的更新

python 复制代码
import torchvision.transforms as transforms
toPIL = transforms.ToPILImage()#可以把tensor转换为Image类型的
img=toPIL(img)
#利用save就可以保存下来
img.save("/opt/data/private/stable_signature-main/output/dogtes.jpg")



totensor=transforms.ToTensor()
img=totensor(img)#此时img是其他类型的,但是通过这个用法以后可以转变为tensor
python 复制代码
随机种子数的设定
seed = 42
np.random.seed(seed)
torch.manual_seed(seed)
random.seed(seed)
if torch.cuda.is_available():
    torch.cuda.manual_seed(seed)
    torch.cuda.manual_seed_all(seed)
python 复制代码
读取数据用的,可以直接拿来用
import numpy as np
from PIL import Image
from torchvision import transforms
import torch
import os
from torch.utils.data import DataLoader, Subset
from torchvision.datasets.folder import is_image_file, default_loader
normalize_vqgan = transforms.Normalize(mean=[0.5, 0.5, 0.5], std=[0.5, 0.5, 0.5])
transform = transforms.Compose([
        transforms.Resize(256),
        transforms.CenterCrop(256),
        transforms.ToTensor(),
        normalize_vqgan,
    ])

def get_image_paths(path):
    paths = []
    for path, _, files in os.walk(path):
        for filename in files:
            paths.append(os.path.join(path, filename))
    return sorted([fn for fn in paths if is_image_file(fn)])
class ImageFolder:
    """An image folder dataset intended for self-supervised learning."""

    def __init__(self, path, transform=None, loader=default_loader):
        self.samples = get_image_paths(path)
        self.loader = loader
        self.transform = transform

    def __getitem__(self, idx: int):
        assert 0 <= idx < len(self)
        img = self.loader(self.samples[idx])
        if self.transform:
            return self.transform(img)
        return img

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

def collate_fn(batch):
    """ Collate function for data loader. Allows to have img of different size"""
    return batch
def get_dataloader(data_dir, transform, batch_size=128, num_imgs=None, shuffle=False, num_workers=4, collate_fn=collate_fn):
    dataset = ImageFolder(data_dir, transform=transform)
    if num_imgs is not None:
        dataset = Subset(dataset, np.random.choice(len(dataset), num_imgs, replace=False))
    return DataLoader(dataset, batch_size=batch_size, shuffle=shuffle, num_workers=num_workers, pin_memory=True, drop_last=False, collate_fn=collate_fn)
train_loader = get_dataloader(train_dir, transform, batch_size, num_imgs=batch_size*1200, shuffle=True, num_workers=4, collate_fn=None)#调用代码
python 复制代码
调整学习率可以直接用,放在你训练的for循环里面
def adjust_learning_rate(optimizer, step, steps, warmup_steps, blr, min_lr=1e-6):
    """Decay the learning rate with half-cycle cosine after warmup"""
    if step < warmup_steps:
        lr = blr * step / warmup_steps 
    else:
        lr = min_lr + (blr - min_lr) * 0.5 * (1. + math.cos(math.pi * (step - warmup_steps) / (steps - warmup_steps)))
    for param_group in optimizer.param_groups:
        if "lr_scale" in param_group:
            param_group["lr"] = lr * param_group["lr_scale"]
        else:
            param_group["lr"] = lr
    return lr

举一个例子来说,steps代表了100次训练,step代表了当前的第几步

在PyTorch中,unsqueeze函数用于在指定维度上增加一个维度

python 复制代码
import torch

x = torch.randn(3, 4)  # 创建一个形状为 (3, 4) 的张量
print(x.shape)        # 输出: torch.Size([3, 4])
#在维度0上增加一个维度
y = torch.unsqueeze(x, 0)
print(y.shape)  # 输出: torch.Size([1, 3, 4])

在PyTorch中,squeeze函数用于在指定维度上增加一个维度

相关推荐
手写码匠7 小时前
华为云Flexus+DeepSeek征文|Dify 多智能体协同编排实战:R1 规划 + V3 执行,构建企业 Agent 团队
人工智能·深度学习·算法·aigc
Lee_jerome10 小时前
python神经网络编程入门(二十五)——IMDB 数据集预处理与词汇表构建
rnn·深度学习·词频统计·文本预处理·imdb数据集·词表构建·nlp入门
指尖的爷10 小时前
RKNN转化环境搭建(rknn_toolkit2新版本)
嵌入式硬件·深度学习·物联网·目标检测
HyperAI超神经12 小时前
在线教程|ProteinGym 第一名!VenusREM 用「检索增强」预测蛋白突变影响,加速蛋白质设计
人工智能·深度学习·生物信息学·大模型推理·生物医学
一碗白开水一14 小时前
入门实践工程四:基于 PyTorch 的手写数字识别(MNIST 图像分类)|附:环境依赖环境及工程源码
人工智能·pytorch·分类
雪的季节14 小时前
不安装YOLO只安装 PyTorch,加载已有yolo数据,从无到有创建模型训练数据并加载使用(重要)
人工智能·pytorch·yolo
鬼手点金17 小时前
机器学习、深度学习、强化学习、神经网络、自注意力机制
人工智能·深度学习·神经网络·机器学习·skill·vibecoding·opencode
一次旅行17 小时前
DPO/KTO/ORPO深度对比:三大LLM偏好对齐数学推导+完整PyTorch实现+落地选型指南
人工智能·pytorch·python
断眉的派大星17 小时前
CLIP原理详解:图像与文本的跨模态学习
人工智能·深度学习·机器学习
LaughingZhu17 小时前
Product Hunt 每日热榜 | 2026-08-05
人工智能·深度学习·神经网络·搜索引擎·百度