介绍4个最基础的深度学习编程的文件,实属学习Deep Learning的必备知识。废话少说,咱直接开写!
1 model.py( 两个类; 四个函数)
1. model.py( 两个类; 四个函数)`` ``# 定义最基础模块的类``class DoubleConv(nn.Module):` ` # 实现init函数,在这里定义模块的网络结构` `def __init__()` ` # 实现forward函数,在这里写出数据是如何在上述网络结构中流动的` `def forward()`` `` ``class UNET(nn.Module)` ` # 实现init函数,在这里定义模块的网络结构` `def __init__()` ` # 实现forward函数,在这里写出数据是如何在上述网络结构中流动的` `def forward()
首先,我们看到model.py里定义了两个类,DoubleConv和UNET。这两个类都继承自nn.Module,这是PyTorch中构建模型的基础。__init__()函数负责定义模型的结构,而forward()函数则描述了数据在模型中的传播过程。
理解这两个函数的作用是掌握深度学习模型的关键。这里的模型架构可能需要根据你的具体任务进行调整,记住,“好的模型架构是任务成功的一半”。
2 train.py( 两个函数)
`` ``# 定义训练函数, for循环loader,获取数据,forward, backward``def train_fn(loader, model, optimizer, loss_fn, scaler)` `for batch_idx, (data, targets) in enumerate(loop):`` ``# 主函数``def main()` `train_transform` `val_transforms` `# 定义模型` `model = UNET(in_channels=3, out_channels=1).to(DEVICE)` `# loss函数` `# 优化器` ` # 定义好数据的loader` `train_loader, val_loader = get_loaders()` ` # 开始一个个epoch循环` `for epoch in range(NUM_EPOCHS):` `# 把上面四个东西,给训练函数,开始训练` `Train_fn()` ` # 保存模型` `Save_checkpoint()` ` #检查精度。需要一个model和测试数据的loader` `check_accuracy(loader, model, device = "cuda"):
接着,我们看到train.py中定义了训练过程。这里首先定义了一些超参数,如学习率、批处理大小、图像大小等。这些参数是训练过程中可以调整的,它们对模型的性能有直接影响。训练函数train_fn是训练过程的核心,它通过遍历数据加载器(loader)获取数据,然后进行前向传播(forward)和反向传播(backward)。
主函数main则负责整个训练流程,包括数据预处理、定义模型、定义损失函数和优化器、加载数据、进行训练、保存模型和检查精度。
3 dataset.py (一个类; 三个函数)
class MyDataset(Dataset):` `# should give the dir where to get images and labels` `def __init__(self, image_dir, mask_dir, transform = None):` ` def __len__(self):` ` # should have a "index" to sent to the function` `def __getitem__(self, index):`` ``
dataset.py中定义了一个数据集类MyDataset,这个类继承自Dataset,是PyTorch中构建数据集的基础。
__init__()函数负责初始化数据集,
__len__()函数返回数据集的大小,
而__getitem__()函数则负责获取数据集中的数据。
4 utils.py (多个函数)
#保存模型的函数``def save_checkpoint():`` ``#加载模型的函数``def load_checkpoint(checkpoint, model):`` ``# 获取数据loader的函数``# 需要知道数据文件夹的路径,还有batchsize,还有要没有数据变换``def get_loaders(` `train_dir,` `train_maskdir,` `val_dir,` `val_maskdir,` `batch_size,` `train_transform,` `val_transform,` `num_workers=4,` `pin_memory=True,``):`` ``# 训练过程中查看网络的精度``def check_accuracy(loader, model, device = "cuda"):`` ``# 训练过程中保存数据``def save_predictions_as_imgs():``
最后,utils.py中定义了一些辅助函数,包括保存模型、加载模型、获取数据加载器、检查精度和保存预测结果等。这些函数可以帮助你更好地管理你的训练过程。
在深度学习的学习过程中,理解和掌握这些基本概念和技巧是非常重要的。在学习过程中多思考、多实践,不怕犯错,因为犯错是学习的一部分。记住,“掌握深度学习,不在于你走得有多快,而在于你走得有多坚定。” 深度学习的道路上充满了挑战,但只要坚持下去,一定能够掌握它。
记住,“在深度学习的世界里,没有什么问题是不能被解决的。如果有,那就再深入学习一下。”
祝你在深度学习的道路上越走越远。
点击下方安全链接前往获取
👉Python实战案例👈
光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
👉Python书籍和视频合集👈
观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
👉Python副业创收路线👈
这些资料都是非常不错的,朋友们如果有需要《Python学习路线&学习资料》,点击下方安全链接前往获取
本文转自网络,如有侵权,请联系删除。