当前位置: 首页 > news >正文

安装caffe-CPU版本并进行训练

目录

前言

0、安装Ubuntu 18.04 版本

输入ls没有反应

ubuntu换源

 换源出现的问题

1、安装caffe出现E:Unable to locate package caffe-cpu问题

 2、把 code 文件夹下载到 ubuntu

3、在本地使用caffe-CPU,并部署数据标注工具 ATool

问题1

问题2

问题3

命令行修改

大功告成!

4、ATool图像标记设备的使用

教程

 我的标点逻辑

5、在华为云上使用caffe-GPU,并部署ATool

省流:vscode没有x11,直接换用mobaXterm。

MobaXterm使用

6、在华为云服务器使用cafffe-GPU训练模型

安装anaconda

到创建虚拟环境的时候报错

解决方案(后面类似问题也加上--insecure)

安装caffe-GPU

模型训练

d.train.sh 文件的修改

caffemodel文件的下载

具体修改细节

validation_regression.py代码的修改

有两处错误。

最优模型验证结果 


前言

仅做记录,本文参考学校人工智能社团的昇腾atlas 200dk自动循迹小车教程。这是数据训练过程的全记录。中间有很多省略,是实操过程中的一点笔记。请谨慎入坑。

0、安装Ubuntu 18.04 版本

因为搜索时发现有人评论22.04没有caffe-CPU,就安装了老版本。

sudo apt install caffe-cpu

输入ls没有反应

参考博客Ubuntu用户目录下缺失Desktop Downloads等文件夹的解决办法_ubuntuhome找不到desktop-CSDN博客

ubuntu换源

Ubuntu修改源镜像方法(22.04也能用)附带常用源镜像地址_ubuntu22.04lts镜像源下载-CSDN博客

 换源出现的问题

ubuntu18换源并且解决/etc/apt/sources.list“ E212: Can‘t open file for writing-CSDN博客

1、安装caffe出现E:Unable to locate package caffe-cpu问题

原因,新装的ubuntu太空,没有apt-get依赖。下面博客虽然是VIP,但第一部分可以用。

安装caffe(CPU版)_e: 无法定位软件包 caffe-cuda-CSDN博客z

下面这个博客我没试过,感觉有用。

[已解决] Ubuntu 上的“E:无法找到包”错误 (linux-console.net)

 2、把 code 文件夹下载到 ubuntu

由于在windous上下载了code文件,出于省时间,便直接从windous复制到linux ubuntu 18.04之中,没想到花了我十几分钟。总结:傻瓜式操作,时间耗费长。

3、在本地使用caffe-CPU,并部署数据标注工具 ATool

总参考智能小车算法开发 - Wiki - Gitee.com

这个教程有些问题。下面是我的实践经过。

要一行一行地复制命令行。否则会出现一些命令行运行不完全。 

问题1

下行代码的意思是解压缩包,但这里有几点问题。

tar vxf Atool.tar.gz

 文中显示打不开,经核查,刚刚下载的code文件夹的ATool压缩包名字为ATool.tar.gz,而不是Atool.tar.gz。其次要定位到文件夹位置才能解压缩,否则还是打不开。

问题2

问题代码

mkdir build

解释:在ATool文件夹里新建build文件夹。 

报错提示

mkdir: cannot create directory ‘build’: File exists

当你在使用 mkdir 命令尝试创建一个名为 build 的目录时,如果系统显示错误 “mkdir: cannot create directory ‘build’: File exists”,这意味着 build 这个目录已经存在于你当前的工作目录中。

上面截图可以看出,build文件夹已经存在。 

问题3

 问题太多了,那看来是我哪一步没走好,重来。

重来后还是回到这一步 

cmake ..

解释:

在命令行中执行 cmake .. 命令时,这个命令是在告诉 CMake 工具使用当前目录的上一级目录(即 .. 表示的目录)中的 CMakeLists.txt 文件来配置和生成项目的构建系统。

具体来说,这个命令做了以下几件事情:

  1. 查找 CMakeLists.txt:CMake 会首先在当前目录的上一级目录(即 ..)中查找名为 CMakeLists.txt 的文件。这个文件是 CMake 项目的配置文件,包含了项目的构建信息和规则。

  2. 解析 CMakeLists.txt:一旦找到 CMakeLists.txt 文件,CMake 就会解析这个文件中的指令。这些指令告诉 CMake 需要哪些源文件、如何编译它们、需要链接哪些库、以及生成哪些目标(如可执行文件或库)等。

  3. 生成构建系统:根据 CMakeLists.txt 文件中的指令,CMake 会生成一个或多个构建系统文件。这些文件通常包括 Makefile(对于 Unix-like 系统)、Visual Studio 项目文件(对于 Windows)或其他类型的构建系统文件,具体取决于你运行 CMake 时使用的生成器(通过 -G 选项指定)。

  4. 准备构建:一旦构建系统文件被生成,你就可以使用它们来构建你的项目了。例如,在 Unix-like 系统上,你可以通过运行 make 命令来构建项目(前提是你已经生成了 Makefile)。

 (文心一言生成)

报错提示

Command 'cmake' not found, but can be installed with:sudo snap install cmake  # version 3.30.0, or
sudo apt  install cmakeSee 'snap info cmake' for additional versions.

我回到home文件夹下载了cmake(用GPU做的时候忘了这一步),又回到ATool文件夹,结果报错。而且又回到ATool文件夹下载,依然报此错误。

CMake Error: The source directory "/home/zjs/Downloads/code/code/tools" does not appear to contain CMakeLists.txt.
Specify --help for usage, or press the help button on the CMake GUI.

 OK,报错说找不到CMakeLists.txt文件,可以看到CMakeLists.txt文件就在ATool文件夹中,但cmake寻找的是ATool的上一级文件夹。这里也能看出,cmake找文件不会去找本文件夹的子文件夹里的文件。

已解决,cd进入build文件夹,再cmake寻找上一级文件夹。

最后在build文件夹中输入make指令。

命令行修改

原来的

tar vxf Atool.tar.gz
cd ATool
mkdir build
cmake ..
make

现在的

tar vxf ATool.tar.gz
cd ATool
cd build
cmake ..
make

注意,一行一行的复制粘贴最为保险。 

大功告成!

最后输入

./ATools

全过程展示(输入路径时左右正斜杠要有,从home开始,而不是从Downloads开始)

全部标记完会回到命令行界面,忘记截图标点情形了,后面会补上。

如果没有未标记的截图,结果如下

补上的截图(红点应该放在蓝线与中间白色的虚线的交点处,用来指示小车前进的方向)

 小车出界我不太知道怎么处理,是要停下吗?不知道。

——————————————————————————————————————————

4、ATool图像标记设备的使用

教程

ATool比较原始,标记白点切换下一张图像后,不能直接修改。只能在与img文件夹同级的table文件夹中寻找与.img同级的.json文件,删除即可。这样就可以重新标注了。

点击.json文件,可以发现一个坐标,这就是标记点的坐标。

逐字逐行的看下面的教程!!!

 我的标点逻辑

正常情况同上教程,往辅助线与白虚线的交点拐弯。

若小车压黄线,则小车在哪个车道部分更多,往哪最大程度地拐弯或往辅助线与白虚线交点方向拐弯。

若小车垂直穿过黄线,此时看不到白线,则向能让小车正向回到道路并能看到辅助线与白虚线的交点方向拐弯。

5、在华为云上使用caffe-GPU,并部署ATool

省流:vscode没有x11,直接换用mobaXterm。

到最后一步./ATools出现了这个问题

root@caffe-gpu:~/Downloads/code/tools/ATool/build# ./ATools
Unable to init server: Could not connect: Connection refused(src:28284): Gtk-WARNING **: 11:10:00.718: cannot open display: 

解决方案:回到home文件夹

cd $home

参考此博客(gedit是图像的文本处理器)

彻底解决关于gedit的Unable to init server: 无法连接: 拒绝连接_non-network local connections being added to acces-CSDN博客

使用如下命令

xhost local:gedit

系统提示

Command 'xhost' not found, but can be installed with:apt install x11-xserver-utils

让我下载x11。这就与文心一言给我的提示相似了,文心一言说我x11转发未启用,其实是未下载。安装后即可。

又出现下问题,可参考引用博客

xhost:  unable to open display ""

解决方案(逐行粘贴) 

export DISPLAY=:0
xhost local:gedit

参考之后又出现新问题

xhost:  unable to open display ":0"

 正解居然在CSDN文库上

Unable to init server: Could not connect: Connection refused - CSDN文库

ssh -X 远程服务器用户名@远程用户名ip

我是连接华为云GPU出的问题。不知道适不适用。 最后提示在浏览器打开,端口为10。

emmmm,又出新问题。

connect /tmp/.X11-unix/X0: No such file or directory
Unable to init server: Could not connect: Connection refused(src:10785): Gtk-WARNING **: 15:08:37.956: cannot open display: localhost:10.0

 经助教提示,我换用MobaXterm,并最终打开了ATool应用。(时间比较紧张,记一点重点)

MobaXterm使用

【业务工具】MobaXterm入门介绍和简单教程_mobaxterm详细教程-CSDN博客

安装完成后,进入界面,点击左上角session,出现新窗口,点击ssh,在Remote host输入远程服务器ip,点击Specity username左侧的方框,在Specity username输入远程服务器用户名。

对于本次任务,我更喜欢MobaXterm一些,因为左侧远端服务器的文件夹是可视化的。而且可以可视化实现windous与Linux文件互传。

6、在华为云服务器使用cafffe-GPU训练模型

安装anaconda

GPU没有代金券要花很多钱,我选的GPU,只要是使用,7.3802元每小时。还要另算流量,0.8元每G。

要修改code文件中的部分python文件夹,而且使用了一些用于数据处理的库。所以我们需要anaconda。

如何在Linux服务器上安装Anaconda(超详细)_linux安装anconda-CSDN博客

不过用GPU够快。

到这一步可以写no,其他有yes写yes,没有就按enter键。

后面按教程一步步来就好,下面是不按教程的后果。

到创建虚拟环境的时候报错

root@caffe-gpu:~# conda create -n pytorch python=3.7
Solving environment: failedCondaHTTPError: HTTP 000 CONNECTION FAILED for url <https://repo.anaconda.com/pkgs/main/noarch/repodata.json.bz2>
Elapsed: -An HTTP error occurred when trying to retrieve this URL.
HTTP errors are often intermittent, and a simple retry will get you on your way.If your current network has https://www.anaconda.com blocked, please file
a support request with your network engineering team.SSLError(MaxRetryError('HTTPSConnectionPool(host=\'repo.anaconda.com\', port=443): Max retries exceeded with url: /pkgs/main/noarch/repodata.json.bz2 (Caused by SSLError(SSLError("bad handshake: Error([(\'SSL routines\', \'ssl3_get_server_certificate\', \'certificate verify failed\')])")))'))

解决方案(后面类似问题也加上--insecure)

临时忽略SSL验证(不推荐,但可作为测试)

如果只是想快速测试是否是SSL验证问题导致的,可以尝试在命令中添加--insecure选项来临时忽略SSL验证(注意,这可能会使您的连接容易受到中间人攻击):

conda create -n pytorch python=3.7 --insecure

安装caffe-GPU

Anaconda安装caffe(超简单)_centos anaconda3 安装caffe-CSDN博客

不要考虑版本老旧的问题,能用就行。

linux上没有python编辑工具,有点后悔前面为什么没下载vscode,我以为pytorch是编辑器,所以没下vscode,结果发现错的离谱。不过又想起来anaconda又有自己的编辑器。——不过最后用的是mobaXterm自带的编辑器。

超详细的 Linux 环境下 Anaconda 安装与使用教程-CSDN博客

超级简单!退出Jupyter Notebook的几种小方法及注意事项!_退出jupyter notebook命令-CSDN博客

我后面的运行代码,有python3的代码都改为了python开头,因为有caffe-GPU的环境,python版本是2.7。

python3 ./1_generate_list.pypython ./1_generate_list.py

 编辑器就用MobaXterm自带的就行。

模型训练

d.train.sh 文件的修改

caffemodel文件的下载

注:.caffemodel 请从压缩包中复制,下面有链接。

智能小车算法开发 - Wiki - Gitee.com

这四个链接怎么用?什么时候用?注意后缀。 

.caffemodel在现在用。进入ATool文件,新建model文件夹,进入model文件夹,把下载的.caffemodel文件移到model文件夹内,拖动即可。

.prototxt文件与.cfg文件在这里用。到这里就不是我的任务了。我将开新博客介绍。

具体修改细节

若用gpu,下面方框处应该是gpu := 0。

validation_regression.py代码的修改

有两处错误。

1、如方框所示,-1改为-2 。2、125行逗号后的空格去掉。

注意开头几行有五六个要修改的路径!不是只有教程标着的几个。

最优模型验证结果 

第一个caffemodel文件,损失函数误差0.005416。

 第二个文件,损失函数误差0.005451

第三个文件,损失函数误差0.005437

应该选第一个为我们自己训练好上传的.caffemodel文件。

亲测使用GPU极有优势,训练三千张照片只要5分钟,三个caffemodel文件分别验证也不会超过十五分钟,是CPU的十几倍甚至几十倍。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 谷粒商城实战笔记-52~53-商品服务-API-三级分类-新增-修改
  • Vuex看这一篇就够了
  • 奇瑞灯控,智照未来 | 经纬恒润AUTOSAR赋能智能车灯新纪元
  • 【Day1415】Bean管理、SpringBoot 原理、总结、Maven 高级
  • concrt140.dll修复丢失的解决办法?一键修复丢失concrt140.dll文件
  • 6、基于Fabirc 2.X 通用电子存证系统部署
  • 学习java第一百三十八天
  • 红人点集登录逆向+接口逆向:SHA256算法和Webpack反爬
  • 使用LSTM完成时间序列预测
  • 购物车案例(源码分享)
  • C语言 指针方法 编一程序,输入月份号,输出该月的英文月名
  • js动态规划
  • 【HarmonyOS】HarmonyOS NEXT学习日记:三、初识ArkUI
  • 智慧新零售移动端收银视频介绍
  • 204、【动态规划】牛客网 ——DP3 跳台阶扩展问题(Python版本)
  • [rust! #004] [译] Rust 的内置 Traits, 使用场景, 方式, 和原因
  • [译]CSS 居中(Center)方法大合集
  • emacs初体验
  • JavaScript设计模式之工厂模式
  • jquery cookie
  • Python学习之路16-使用API
  • SQLServer之创建显式事务
  • tab.js分享及浏览器兼容性问题汇总
  • Vue.js 移动端适配之 vw 解决方案
  • Xmanager 远程桌面 CentOS 7
  • 工作中总结前端开发流程--vue项目
  • 目录与文件属性:编写ls
  • 试着探索高并发下的系统架构面貌
  • 转载:[译] 内容加速黑科技趣谈
  • 支付宝花15年解决的这个问题,顶得上做出十个支付宝 ...
  • ​2021半年盘点,不想你错过的重磅新书
  • ![CDATA[ ]] 是什么东东
  • (2015)JS ES6 必知的十个 特性
  • (HAL)STM32F103C6T8——软件模拟I2C驱动0.96寸OLED屏幕
  • (pycharm)安装python库函数Matplotlib步骤
  • (备忘)Java Map 遍历
  • (附源码)ssm考试题库管理系统 毕业设计 069043
  • (三)Honghu Cloud云架构一定时调度平台
  • (十六)串口UART
  • (四)activit5.23.0修复跟踪高亮显示BUG
  • (四)进入MySQL 【事务】
  • (完整代码)R语言中利用SVM-RFE机器学习算法筛选关键因子
  • (微服务实战)预付卡平台支付交易系统卡充值业务流程设计
  • (译)2019年前端性能优化清单 — 下篇
  • .jks文件(JAVA KeyStore)
  • .NET 8 编写 LiteDB vs SQLite 数据库 CRUD 接口性能测试(准备篇)
  • .NET 材料检测系统崩溃分析
  • .NET 给NuGet包添加Readme
  • .NET 设计一套高性能的弱事件机制
  • .net图片验证码生成、点击刷新及验证输入是否正确
  • //解决validator验证插件多个name相同只验证第一的问题
  • ::before和::after 常见的用法
  • @column注解_MyBatis注解开发 -MyBatis(15)
  • @media screen 针对不同移动设备
  • [ 数据结构 - C++] AVL树原理及实现