博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
深度学习工程模板
阅读量:7066 次
发布时间:2019-06-28

本文共 1290 字,大约阅读时间需要 4 分钟。

使用方式

下载工程

git clone https://github.com/SpikeKing/DL-Project-Template

创建和激活虚拟环境

 
virtualenv venv
source venv/bin/activate

安装Python依赖库

pip install -r requirements.txt

开发流程

 ●  定义自己的数据加载类,继承DataLoaderBase;
 ●  定义自己的网络结构类,继承ModelBase;
 ●  定义自己的模型训练类,继承TrainerBase;
 ●  定义自己的样本预测类,继承InferBase;
 ●  定义自己的配置文件,写入实验的相关参数;

执行训练模型和预测样本操作。

示例工程

识别MNIST库中手写数字,工程simple_mnist

训练:

python main_train.py -c configs/simple_mnist_config.json

预测:

 
python main_test.py -c configs/simple_mnist_config.json -m simple_m
nist.weights.10-0.24.hdf5
32682a479b70136475412d763cd098fb689ca2bf

TensorBoard

3bfa22c484a6c6d00c2d8da9dd642d59210ceb6a

工程架构

e0032d645ac4a8a3dc56abfb58def0b4530056f9

主要组件

DataLoader

操作步骤:

 ●  创建自己的加载数据类,继承DataLoaderBase基类;
 ●  覆写
get_train_data()
get_test_data()
,返回训练和测试数据;

Model

操作步骤:

 ●  创建自己的网络结构类,继承ModelBase基类;
 ●  覆写
build_model()
,创建网络结构;
 ●  在构造器中,调用
build_model()

注意:plot_model()支持绘制网络结构;

Trainer

操作步骤:

 ●  创建自己的训练类,继承TrainerBase基类;
 ●  参数:网络结构model、训练数据data;
 ●  覆写
train()
,fit数据,训练网络结构;

注意:支持在训练中调用callbacks,额外添加模型存储、TensorBoard、FPR度量等。

Infer

操作步骤:

 ●  创建自己的预测类,继承InferBase基类;
 ●  覆写
load_model()
,提供模型加载功能;

 ●  覆写predict(),提供样本预测功能;

Config

定义在模型训练过程中所需的参数,JSON格式,支持:学习率、Epoch、Batch等参数。

Main

训练:

 ●  创建配置文件config;
 ●  创建数据加载类dataloader;
 ●  创建网络结构类model;
 ●  创建训练类trainer,参数是训练和测试数据、模型;
 ●  执行训练类trainer的train();

预测:

 ●  创建配置文件config;
 ●  处理预测样本test;
 ●  创建预测类infer;

 ●  执行预测类infer的predict();

原文发布时间为:2018-10-24

本文来自云栖社区合作伙伴“大数据挖掘DT机器学习”,了解相关信息可以关注“”。

转载地址:http://jball.baihongyu.com/

你可能感兴趣的文章
8个很棒的 jQuery 倒计时插件和教程
查看>>
python implemention javascript encodeURIComponent
查看>>
SQL查询语句精华
查看>>
Socket服务器整体架构概述
查看>>
Sketchup二次开发API之UI类
查看>>
串连接
查看>>
jsp连接数据库的乱码问题 servlet请求参数编码处理get post
查看>>
Java小项目--坦克大战(version1.0)
查看>>
Java多线程同步问题的探究
查看>>
图示指针传值操作
查看>>
7张图片学习VIM教程
查看>>
ajax readyState的五种状态详解
查看>>
在JAVASCRIPT中构建一个复杂的对象,并用JSON进行转换
查看>>
javascript中的后退和刷新
查看>>
Codeforces Round #264 (Div. 2)
查看>>
Java 时间和字符换的处理
查看>>
抬起头吧
查看>>
数据透视表sql:用SQL行列转换实现数据透视的一些思考
查看>>
一个Web Project引用多个Java Project在Eclipse下的配置--转载
查看>>
【转】每天一个linux命令(10):cat 命令
查看>>