# 实现一个densenet的网络,并插入到slim框架中进行训练 **Repository Path**: edwinjiang703/denseness ## Basic Information - **Project Name**: 实现一个densenet的网络,并插入到slim框架中进行训练 - **Description**: 根据论文实现Dense Net网络结构,并于Incetptionv3网络性能做对比 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2018-07-08 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 实现一个densenet的网络,并插入到slim框架中进行训练 ### 代码部分:
densenet.py是 Dense Net的实现文件 train_image_classifier.py slim框架下训练模型 nets_factory.py 将dense net模型放到slim框架下 train_densenet_on_cifar10.sh 模型测试脚本 训练结果.doc. 训练结果文件 ### 代码说明:
1 实现三层的dense block 2 第一的dense block有6层。第二个dense block有12层,第三个dense block有24层。第四个dense block有16层 3 模型K值是24,压缩比是0.5 4 每个dense block中分别实现1*1和3*3的组合处理(BN——Relu--Conv2d--DropOut) 5 transaction layer用 1*1的卷积加上2*2的池化处理 将densenet.py文件拷贝到nets目录下。同时修改nets_factory.py文件,将densenet添加进去。train_densenet_on_cifar10.sh文件里包含了训练命令: # Run training. python train_image_classifier.py \ --train_dir=${TRAIN_DIR} \ --dataset_name=cifar10 \ --dataset_split_name=train \ --dataset_dir=${DATASET_DIR} \ --model_name=densenet \ --preprocessing_name=cifarnet \ --max_number_of_steps=100000 \ --batch_size=128 \ --save_interval_secs=120 \ --save_summaries_secs=120 \ --log_every_n_steps=100 \ --optimizer=sgd \ --learning_rate=0.1 \ --learning_rate_decay_factor=0.1 \ --num_epochs_per_decay=200 \ --weight_decay=0.004 \ --clone_on_cpu=True ### 网络的一些理解: Growth Rate: 即K值 这个参数需要根据训练的数据来确定,比如这次实验用的是cifa的数据集。当把grow调整到48的时候。训练不出来了。recall的值没有。个人认为是cifa的数据集是32*32的。可能一张图的特征没有48那么多。过多的grow,可能会带来噪声,导致训练不出来结果。并且训练的时间会大幅度增加。 Dense(稠密)的理解 Dense网络,之所以叫稠密。个人认为和其每层的输入特征数量和其他网络不一样,dense的每层输入都作为其他层的输入。每层的输入特征大概是 k+K*(L-1)个特征。所以这个网络需要对特征进行降维处理,方便进行计算。比如在transaction layer层就是一个1*1的卷积先进行channel的降维。然后在用2*2的池化进行长、宽的降维。如果在加上bottleneck layer的话。那就是1*1的卷积在加上一个3*3的组合操作((BN——Relu--Conv2d) 注:本次测试由于TinyMind一直跑不起来,环境有问题,所以在本地运行。用的数据集是Cifa的。Data Processing用的也是Cifa的处理过程。本机效率低,运行慢,参数调整困难,导致效果很不好。等TingMind稳定之后会继续进行测试。