小小甜菜深度学习爬坑记

主要目的是整理一路学习的技术分享贴。我的电脑是笔记本联想拯救者R720,显卡是GTX1050Ti。其它环境仅供参考。

安装ubuntu+win10双系统

详情见技术贴用 EasyUEFI 在 Win8/10 中硬盘安装 Ubuntu16.04图文教程,注意事项如下:

  • 备用下载地址EasyUEFI
  • WIN10系统下格式化FAT32,需要用格式化工具。
  • 我的显卡太新会出现兼容性问题,需在启动F2中禁掉显卡后再安装系统,安装驱动后解我的显卡太新会出现兼容性问题,需在启动F2中禁掉显卡后再安装系统,安装驱动后解禁
  • sudo apt-get install nvidia-384
  • sudo apt-get install nvidia-driver-418
  • WIFI开机会出现无法正常打开命令行设置
  • sudo gedit /etc/rc.local
  • modprobe -r ideapad_laptop//在exit 0前加上
  • 使用国内源: pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple django

谷歌Tensorflow

  • 安装环境
  • 参考ubuntu安装Tensorflow安装CUDA和cudnn:
  • python3.5升级
sudo add-apt-repository ppa:jonathonf/python-3.6
sudo apt-get update
sudo apt-get install python3.6
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.6 1
sudo update-alternatives --config python3
sudo apt-get install python3.6-dev
//缺少依赖库解决办法:
sudo apt-get install freeglut3-dev build-essential libx11-dev libxmu-dev libxi-dev libgl1-mesa-glx libglu1-mesa libglu1-mesa-dev
//CUDA9.0问题解决办法:
sudo apt install gcc-6 g++-6
sudo ln -s /usr/bin/gcc-6 /usr/local/bin/gcc
sudo ln -s /usr/bin/g++-6 /usr/local/bin/g++
//使配置生效
source ~/.bashrc
//安装tensorflow—gpu和models
sudo apt install python3-pip
pip3 install tensorflow-gpu==1.9.0
ln -s /home/xs/.local/lib/python3.6/site-packages/tensorflow
sudo apt install git
git clone https://github.com/tensorflow/models.git
//将models文件夹复制到tensorflow下,在/home/xs/.local/lib/python3.6/site-packages下创建tensorflow_model.pth,内容为如下两行:
/home/xs/.local/lib/python3.6/site-packages/tensorflow/models/research
/home/xs/.local/lib/python3.6/site-packages/tensorflow/models/research/slim
pip3 install matplotlib
pip3 install opencv-python
  • TensorFlow Object Detection API:
  • ubuntu16.04安装时protobuf编译出错解决办法
  • 原理解析
  • 在ubuntu上配置
  • Object Detection API使用教学
    xml_to_csv出错解决办法:sudo pip install pandas -i http://pypi.douban.com/simple --trusted-host pypi.douban.com
    训练文件出错解决办法:sudo pip install pycocotools
    TypeError: can’t pickle dict_values objects解决办法:在model_lib.py中将category_index.values()改为list(category_index.values())即可(414行)
    在object_detection目录下:python model_main.py --pipeline_config_path=training/ssd_mobilenet_v1_coco.config --model_dir=training --num_train_steps=50000 --num_eval_steps=2000 --alsologtostderr
    有时内存不够出错,重启恢复,原因未知。
    使用tensorboard查看模型情况python /home/xs/anaconda3/lib/python3.6/site-packages/tensorboard/main.py --logdir=training
    使用Tensorboard分析模型
    基于教程的工程

    比较有效的数据集是真实环境下,相同采集器搜集的不同情况下的数据组成的数据集。模型的识别率与数据集的大小,模型的好坏,迭代的次数有关。如图的模型我使用的是真实场景下,手机拍摄的20张照片组成的数据集,ssd_mobilenet_v1_coco_2017_11_17模型通过迁移学习,迭代次数为35000次的实际效果。工程和APK见附件。
    关于batch_size:一般设置越大,一次训练的就越多,loss收敛越快,但一般GPU内存有限,过大会内存爆炸;设置越小,反向回传容易出现weights都大于1的情况,连着乘容易炸。
    参考资料
  • Mask Rcnn
    我是根据链接例程走的,由于我的笔记本电脑显卡4G,跑不动Mask Rcnn,在训练后无法验证实际效果。不得不吐槽AI是显卡战争,P100太贵了。
    用Tensorflow Object Detection API 训练自己的mask R-CNN模型
  • 语音识别
    运行官方例程
    如果是单独识别中文说话,做语音互交等内容,没必要自己做模型,主要是数据集需求太大,情感识别和模糊匹配难度太大。我选择使用腾讯翻译了谷歌官网的项目介绍主要用来识别如狗叫,背景音等定制化内容。
    由于我是PIP安装,需要先在github中tensorflow上下载工程源码,再将tensorflow/examples/speech_commands文件夹解压缩至/home/xs/anaconda3/lib/python3.6/site-packages/tensorflow/models/samples中,在modles文件夹中运行python samples/speech_commands/train.py,在根目录下tmp文件夹中会生成数据集和模型。
    在tmp/retrain_logs文件夹下终端python /home/xs/anaconda3/lib/python3.6/site-packages/tensorboard/main.py --logdir=validation可看到图形化模型效果。
    生成模型:将tmp文件夹下speech_commands_train复制到speech_commands文件夹下(方便地址调用),在samples文件夹下打开终端python speech_commands/freeze.py --start_checkpoint=speech_commands/speech_commands_train/conv.ckpt-18000 --output_file=speech_commands/my_frozen_graph.pb,会生成my_frozen_graph.pb。
  • 将pb模型和speech_commands_train文件夹下的conv_labels.txt复制到之前的APP工程中简单修改代码就能调用。
    测试模型:在speech_commands文件夹下python label_wav.py --graph=my_frozen_graph.pb --labels=speech_commands_train/conv_labels.txt --wav=speech_dataset/dog/0a2b400e_nohash_0.wav
    做自己的中文语音识别
    首先下载中文语音数据集,这个比较难暂时弃坑,填坑时间未知。
    利用例程识别其它音频
    实际体验不佳,使用谷歌语音数据集的dog可以正确识别,但是上网下载的狗叫声音由于数据集太小,狗的声音太离散,无法识别。感觉做AI必须要掌握爬虫工具,音频数据剪辑等能力。音频数据集自己制作难度比图片数据集大,普通下载的或录音需要修改后才能使用,故暂时弃坑,等有具体项目再精心准备数据集。
    直接使用官方语音数据集只需要在train.py中改变要识别的单词就行,我主要希望识别特定音频,需要涉及到制作自己的语音数据集。
    Google同时还开源了制作这个数据集的工具
  • yolov3
pip3 install keras==2.1.5
pip3 install --upgrade h5py

Keras/Tensorflow+python+yolo3训练自己的数据集
Tensorflow实现YOLO v3(TF-Slim)

  • Tlite模型
    个人理解主要原理主要是对特定模型进行量化处理,把参数数据类型为float32的模型量化成int8,int16等,使模型size变小,同时配合代码上的优化使运算速度加快。Tlite模型目前支持的模型种类有限,初学者尽量选择已经确定支持的模型做迁移学习,使用官方接口更容易使用,高手请无视。
    强调算法学习主要目的是做模型的剪枝,压缩等工作。个人理解剪枝:减少模型中非零参数,让模型更稀疏。在这过程中可以调整算法让剪枝结构化,使的运算速度可以得到实质加快。
    模型调整是我接下来学习重点,暂时先挖坑。
  • tensorflow C++ 环境搭建及实战

百度AI平台

转帖到小小甜菜百度AI爬坑记

神经计算棒

转帖到小小甜菜Movidius爬坑记

模型处理

目前有人工手动处理和自动处理两种,我了解的有tensorflow lite和pocketflow两种。先挖坑,填坑时间未知。

安装caffe(GPU)

//CUDA,CUDNN参照前,其他参照下面
sudo apt-get install python-opencv
sudo apt-get install python-pip
make all
make test
make runtest
wget https://bootstrap.pypa.io/get-pip.py
sudo python3 get-pip.py
sudo apt-get install python-protobuf

ubuntu18.04安装caffe
SSD配置
错误1

小结

由于我的工作是嵌入式开发,对于服务器端的在线部署不是很了解,所研究的主要是嵌入式端的本地识别。对以上3个平台进行对比:

  • 百度AI入门门槛最低,功能种类丰富,但是由于开源不彻底,实际项目中受到很多制约。实际开发过程中并不涉及多少深度学习内容,只适合急需项目和入门初学者。AI studio非常适合初学者学习,提供大量教学视频和丰富案例,不过由于才建立不久,有一定不足之处,不太适合企业级开发。
  • 谷歌tensorflow是学习和研究深度学习最好的平台之一,完全开源且有谷歌技术支持,对于有志于学习深度学习的入门初学者是最理想的平台。大多资料是英文的,推荐和百度AI studio结合学习。企业大多是使用tensorflow平台开发。
  • 神经计算棒是致力于解决嵌入式设备没GPU,大型模型本地化部署难的问题所推出的产品,可以使用caffe和tensorflow两种框架的大部分模型。由于推出时间短,还没形成完善的系统,再加上想要在实际项目中使用必须有一定硬件功底(芯片要集成到嵌入式板卡),实际开发难度最大,不太适合初学者。

小贴士

  • QT5.4.2安装教程
  • 错误解决办法
  • UBUNTU安装Andriod studio
  • 搭建JAVA环境
  • 终端下安装谷歌浏览器(目前感觉最好用的浏览器)
wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
sudo dpkg -i google-chrome-stable_current_amd64.deb
  • 安装VNC viewer
sudo dpkg -i VNC-Viewer-6.18.907-Linux-x64.deb
  • 百度AI学习训练营(强烈推荐)
  • labelimg教程
  • 神经计算棒教程
  • 谷歌中文教程
  • 附件工程及APK百度云提取码
  • TensorFlow初学者必须了解的55个经典案例
  • 推荐个IT学习视频APP:腾讯课堂(用来学习IT开发还是蛮好用的)
  • 在线思维导图软件
  • 3D打印机建模
  • OPENMV
  • tensorflow中文社区
  • 终端代理
    问题1
  • ubuntu设置VNCviewer
  • 灰屏解决办法
使用WinSCP登录后,打开终端输入:
vncserver
之后用VNCviewer打开
//输入法解决办法:在xstartup添加
fcitx &
  • opencv编译安装
  • 常见论文中文翻译版
  • 录屏软件
  • ubuntu18VNC
  • anaconda修改源
  • DeepLearning-500-questions
  • git clone加速
  • 标注工具
  • 码云
  • pip3 install http://download.pytorch.org/whl/cu90/torch-0.4.1-cp36-cp36m-linux_x86_64.whl -i https://pypi.tuna.tsinghua.edu.cn/simple
  • sudo apt-get install libopencv-dev
  • 谷歌助手安装方法
  • sudo apt install mpv播放器

小小甜菜深度学习爬坑记相关推荐

  1. 小小甜菜百度AI爬坑记

    小小甜菜百度AI爬坑记 作为国内较好的深度学习平台,我是在2018百度开发者大会拉入坑的.其可分为语音识别,语音合成,文字识别,图像识别,人体分析,人脸识别,理解与互交技术,AR增强现实等多个方向.我 ...

  2. 小小甜菜Movidius爬坑记

    小小甜菜Movidius爬坑记 我是在神经计算棒+树莓派3B上看到实际效果后决定使用本方案的,实际项目中使用树莓派CM3作为核心板卡,使用Movidius 2或Movidius X(具体版本看项目需求 ...

  3. 小小甜菜keras爬坑记

    小小甜菜keras爬坑记 前言 安装(参考深度学习爬坑记安装ubuntu16.04+cuda9+cudnn+tensorflow1.9.0) 视频资料 相关模型资料 学习笔记 ssd模型 yolov3 ...

  4. 小白爬坑记:C语言学习点滴——我对单、双引号的理解

    小白爬坑记:C语言学习点滴--我对单.双引号的理解 一.单引号的作用: 二.双引号的作用: 三.字符或字符串容易犯的错误: 三.做个小题: 一.单引号的作用: 将单引号中间的所有符号直接转换为ASCI ...

  5. 我在「小米爬坑记」里,看到的 3 个创业真相

    小米把10年的创业经历,做了一次「开源」. 就在昨晚,雷军做了小米十周年的公开演讲.在演讲中,雷军对小米10年的发展做了一次大梳理,既有成绩,也有反思,还有小米历史上一些非常关键的发展节点.其实上个月 ...

  6. 小白深度学习入坑指南

    小白深度学习入坑指南 小白深度学习入坑指南 写博客的初衷适合的人群 理论篇 说明 数学 CV ML DL 优化 实践篇 linux python 深度学习框架 框架学习 硬件配置 软件环境配置 常见的 ...

  7. Spring Cloud Contract 爬坑记

    前言:spring-cloud-starter-contract-verifier:2.1.1.RELEASE. spring-cloud-contract-maven-plugin:2.2.1.RE ...

  8. 深度学习论文随记(二)---VGGNet模型解读-2014年(Very Deep Convolutional Networks for Large-Scale Image Recognition)

    深度学习论文随记(二)---VGGNet模型解读 Very Deep Convolutional Networks forLarge-Scale Image Recognition Author: K ...

  9. npm run build 打包爬坑记(1)

    npm run build 打包爬坑记 先说说打包过程,npm run build 后放入phpstudy里面,访问本地ip,查看phpstudy的端口号,就能访问页面了(访问地址:http://19 ...

最新文章

  1. [原创] Debian9上配置Samba
  2. 固态器件理论(8)绝缘栅场效应晶体管(MOSFET)
  3. 在django中按照时间范围查询数据库
  4. day 29 socketsetserver 模块
  5. python标记跳转_Geany的跳转到标记定义“功能如何使用
  6. ghost后自动修改IP和计算机名的VBS脚本
  7. hdu acmsteps 2.1.3 Cake
  8. 驱动精灵卸载后无限蓝屏重启
  9. Vue学习(一)从 mvx模式 到 mvvm模式
  10. json数组排序,深拷贝,浅拷贝,删除,增加,筛选,
  11. 阿里云飞天系统的技术架构(转)
  12. android ViewFlipper屏幕切换
  13. 宝塔Linux面板配置教程
  14. matlab查看hdf头文件,基于Matlab的HDF文件读取方法
  15. 狗的品种识别实战(tf2.0)
  16. 黑马程序员SSM-MyBatisPlus学习笔记
  17. PIE-Label样本标绘软件
  18. 如果没有杰顿·桑乔,谁应该曼彻斯特联合标志
  19. 算法图解——读书笔记06
  20. RNN与CNN最强科普

热门文章

  1. R |数据分析中缺失值处理
  2. Android6.0动态壁纸,M Launcher下载-M桌面-安卓6.0桌面 v1.4.3_手机乐园
  3. 微信共享智能充电桩小程序开发功能方案
  4. cesium中限制地图浏览范围
  5. 【mmdetection系列】mmdetection之backbone讲解
  6. 墙面有几种装修方法_装修时墙面处理都有哪几种方式?
  7. [Erlang] XML处理方案
  8. GO + React + Axios Response to preflight request doesn't pass access control check: It does not hav
  9. oracle RAC asm管理
  10. 分享图片去水印几个工具-图片去除水印最好用的工具