百度飞桨深度学习简单框架(内含代码)

本文介绍如何基于百度飞桨构建深度学习框架,模仿现有的项目模板,详细讲解了项目结构,并提供了部分关键代码,包括数据加载、模型定义和训练过程。强调了模型、数据加载器和训练模块的重要性,同时分享了遇到的梯度爆炸问题及其解决方案。
摘要由CSDN通过智能技术生成

背景

自己学习经常用一个jupyter notebook写代码,很粗糙,想整一个工程一样的东西方便以后做优化升级。
这里借鉴了大佬的的深度学习框架(这是个基于keras的框架) https://github.com/SpikeKing/DL-Project-Template,还有飞桨里面一个工程——AI识虫比赛 https://aistudio.baidu.com/aistudio/projectdetail/683716

这里还是要夸一波百度飞桨给了免费的GPU环境,很好用!

大体结构

按照百度飞桨的项目划分习惯,进去之后就会有一个notebook,运行在主目录下,work文件放工程代码,data放数据库。
work文件下就可以放自己的框架了。
├── bases
│ ├── data_loader_base.py - 数据加载基类
│ ├── infer_base.py - 预测样本(推断)基类
│ ├── model_base.py - 网络结构(模型)基类
│ ├── trainer_base.py - 训练模型基类
├── configs - 配置文件夹
│ └── simple_config.json
├── data_loaders - 数据加载文件夹
│ ├── init.py
│ ├── simple_mnist_dl.py
├── infers - 推断文件夹
│ ├── init.py
│ ├── simple_infer.py
├── main_test.py - 预测样本入口
├── main_train.py - 训练模型入口
├── models - 网络结构文件夹
│ ├── init.py
│ ├── SSD.py
│ ├── resnet.py
│ ├── VGG16.py
├── requirements.txt - 依赖库
├── trainers - 训练模型文件夹
│ ├── init.py
│ ├── simple_trainer.py
└── utils - 工具文件夹
├── init.py
├── config_utils.py - 配置工具类
├── np_utils.py - NumPy工具类
├── utils.py - 其他工具类
├── basic_trainsforms.py - 图片变换类

使用方法,首先安装依赖库,在运行main_train

部分代码

需要改动比较大的文件有,model、dataloader、train。
1、model文件需要自己根据所需要的来写,有的时候需要自己重写backward或者loss函数。由于我这个项目只做了2分类,用太复杂的模型训练不好训练,这里只使用一个阉割版的vgg16模型。(这个网络也不好训练,问就是别用~或者找个预训练模型)
另外,我在写这段代码的时候,碰到过梯度爆炸的现象。主要原因应该是我在最后一层的输出用了tanh,这里必须要用softmax。另外,这里有一篇解释了一下权值初始化,很值得一读!!!!https://blog.csdn.net/qq_24739717/article/details/102896678

class VGG_16(ModelBase):
    """
    SimpleMnist模型
    """
    def __init__(self, config):
        super(VGG_16, self).__init__(config)
        self.conv1 = Sequential(
            Conv2D(num_channels=3,num_filters=64,filter_size=(3,3),stride=1,padding=1,act="relu"),
            Conv2D(num_channels=64,num_filters=64,filter_size=(3,3),stride=1,padding=1,act="relu"),
            Pool2D(pool_size=2,pool_stride=2,pool_padding=0,pool_type="max")
        )
        self.conv2 = Sequential(
            Conv2D(num_channels=64,num_filters=128,filter_size=(3,3),
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值