diff --git a/README.md b/README.md index 5dabafc..64c69cd 100644 --- a/README.md +++ b/README.md @@ -10,8 +10,8 @@ - 测试集:链接:https://pan.baidu.com/s/1fxbO6e_gEJC9gNhaTPcrKg 提取码:emqi ### 设计划分 #### 神经网络训练 -1. [程序思路](train/README.md) +1. [程序说明](train/README.md) 2. [程序源码](train/train.py) #### 简单前端界面 -1. [程序思路](interface/README.md) +1. [程序说明](interface/README.md) 2. [程序源码](interface/interface.py) \ No newline at end of file diff --git a/interface/README.md b/interface/README.md new file mode 100644 index 0000000..e69de29 diff --git a/train/README.md b/train/README.md index e69de29..0404024 100644 --- a/train/README.md +++ b/train/README.md @@ -0,0 +1,65 @@ +## 神经网络训练程序说明 +### 实验框架要求 + - Ubuntu 16.04 + - TensorFlow-gpu + - CUDA10 + - Keras + - Python 3.x +### 实验框架搭建 +#### 安装Ubuntu 16.04 +直接在Ubuntu官网下载Ubuntu桌面版,然后将其烧写进U盘,再进行安装即可。 +#### 安装配置TensorFlow-gpu版本 +首先需要安装NVIDIA显卡的软件程序包,直接执行如下命令: +``` +# Add NVIDIA package repositories +# Add HTTPS support for apt-key +$ sudo apt-get install gnupg-curl +$ wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64/cuda-repo-ubuntu1604_10.0.130-1_amd64.deb +$ sudo dpkg -i cuda-repo-ubuntu1604_10.0.130-1_amd64.deb +$ sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64/7fa2af80.pub +$ sudo apt-get update +$ wget http://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1604/x86_64/nvidia-machine-learning-repo-ubuntu1604_1.0.0-1_amd64.deb +$ sudo apt install ./nvidia-machine-learning-repo-ubuntu1604_1.0.0-1_amd64.deb +$ sudo apt-get update +``` +然后是安装NVIDIA驱动,同时创建文件目录/usr/lib/nvidia。 +``` +$ sudo mkdir /usr/lib/nvidia +$ sudo apt-get install --no-install-recommends nvidia-410$ sudo apt-get update +``` +此时先使用指令nvidia-smi进行检查,看是否安装成功,然后再进行开发运行库的安装。 +``` +$ sudo apt-get install --no-install-recommends \ + cuda-10-0 \ + libcudnn7=7.4.1.5-1+cuda10.0 \ + libcudnn7-dev=7.4.1.5-1+cuda10.0 + +``` +最后安装TensorRT程序及CUDA10.0。 +``` +$ sudo apt-get update && \ + sudo apt-get install nvinfer-runtime-trt-repo-ubuntu1604-5.0.2-ga-cuda10.0 \ + && sudo apt-get update \ + && sudo apt-get install -y --no-install-recommends libnvinfer-dev=5.0.2-1+cuda10.0 + +``` +至此,就配置好了Ubuntu 16.04+CUDA10+TensorFlow-gpu的生产环境了。 +#### 安装Keras库 +Keras库可以直接使用Python的pip指令安装。首先我们进行pip安装: +``` +$ sudo apt-get install python-pip python-dev +``` +然后安装Keras库文件: +``` +$ sudo pip install -U --pre pip setuptools wheel +$ sudo pip install -U --pre numpy scipy matplotlib scikit-learn scikit-image +$ sudo pip install -U --pre tensorflow-gpu +$ sudo pip install -U --pre keras +``` +这样,我们就基本完成了实验框架的搭建(个别图片处理的库则自行使用pip安装即可)。 +### 程序设计思路简述 +训练程序中,我们搭建了三种神经网络的框架,分别是ResNet、AlexNet和一个简单测试网络框架,最终采用的是AlexNet网络。 + +采用AlexNet的原因有很多,其中主要的就是实验时采用的计算机计算能力较为一般,而AlexNet较为简单,训练速度较快,而使用ResNet进行调试则需要付出较大的时间开销,如果有计算能力强的计算机可以尝试一下。 + +设计的AlexNet网络是完全参考了AlexNet的原型,除了第一层的参数有些不同,后面的参数几乎相同。同时,为了避免过拟合,我们在网络中添加了Dropout正则化,并且对图像数据进行了扩充;为了提高学习效率,我们使用了学习率衰减。总的来说,整个模型还有优化的空间,进行更加细致的超参数调试,应该能够将正确率优化到99%以上(当前97.53%)。 \ No newline at end of file diff --git a/train/train.py b/train/train.py index 9530500..2b7a592 100644 --- a/train/train.py +++ b/train/train.py @@ -33,7 +33,7 @@ def bn_relu(x): return x -def resner50(out_dims, input_shape=(128, 128, 1)): +def resnet50(out_dims, input_shape=(128, 128, 1)): # input_dim = Input(input_shape) resnet_base_model = ResNet50(include_top=False, weights=None, input_shape=input_shape)