安装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的十几倍甚至几十倍。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1483617.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

AI智能名片S2B2C商城小程序在社群去中心化管理中的应用与价值深度探索

摘要&#xff1a;随着互联网技术的飞速发展&#xff0c;社群经济作为一种新兴的商业模式&#xff0c;正逐渐成为企业与用户之间建立深度连接、促进商业增长的重要途径。本文深入探讨了AI智能名片S2B2C商城小程序在社群去中心化管理中的应用&#xff0c;通过详细分析社群去中心化…

最新开源的解析效果非常好的PDF解析工具MinerU (pdf2md pdf2json)

毫不夸张的说 PDF解析工具MinerU是照进RAG黑暗中的一道光——这是我对它的评价。我测过太多了文档解析工具&#xff01; 最近在做文档解析的工作。看了很多的开源的文档解析的工具&#xff0c;版面分析的工具&#xff0c;其中包括paddelpaddel这样30kstar的明星工具。但是效果都…

STM32全栈嵌入式人脸识别考勤系统:融合OpenCV、Qt和SQLite的解决方案

1. 项目概述 本项目旨在设计并实现一个基于STM32的全栈人脸识别考勤系统。该系统结合了嵌入式开发、计算机视觉和数据库技术&#xff0c;实现了自动人脸检测、识别和考勤记录功能。 主要特点: 使用STM32F4系列微控制器作为主控制器采用OpenCV进行人脸检测和识别Qt开发跨平台…

将达梦数据库的JDBC驱动包 DmJdbcDriver18.jar 安装到本地 Maven 仓库

项目打包报错&#xff1a;Failure to find com.dameng:DmJdbcDriver18:jar:8.1.3.12 in http://maven.aliyun.com/nexus/content/groups/public 解决方式如下&#xff1a; 从 https://eco.dameng.com/download/ 中下载 达梦JDBC 驱动包&#xff0c;如下 JDK 1.8 对应的 JDBC…

GPT LangChain experimental agent - allow dangerous code

题意&#xff1a;GPT LangChain 实验性代理 - 允许危险代码 问题背景&#xff1a; Im creating a chatbot in VS Code where it will receive csv file through a prompt on Streamlit interface. However from the moment that file is loaded, it is showing a message with…

大语言模型在病理AI领域中的应用2|文献速递·24-07-18

小罗碎碎念 本期文献主题&#xff1a;大语言模型在病理AI领域中的应用 本期推文是大模型4病理AI系列的第2期&#xff0c;每一篇文献都使用了ChatGpt&#xff0c;应用场景如下&#xff1a; 直接用ChatGpt生成回答比较多种主流大模型在指定任务中的性能表现比较大模型与专用模型…

【Linux】Linux环境设置环境变量操作步骤

Linux环境设置环境变量操作步骤 在一些开发过程中本地调试经常需要依赖环境变量的参数&#xff0c;但是怎么设置对小白来说有点困难&#xff0c;今天就介绍下具体的操作步骤&#xff0c;跟着实战去学习&#xff0c;更好的检验自己的技术水平&#xff0c;做技术还是那句话&…

【python】OpenCV—Scanner

文章目录 1、需求描述2、代码实现3、涉及到的库函数cv2.arcLengthcv2.approxPolyDPskimage.filters.threshold_localimutils.grab_contours 4、完整代码5、参考 1、需求描述 输入图片 扫描得到如下的结果 用OpenCV构建文档扫描仪只需三个简单步骤: 1.边缘检测 2.使用图像中…

HarmonyOS NEXT零基础入门到实战-第一部分

构建节页面思路&#xff1a; 1、排版 (分析布局) 2、内容&#xff08;基础组件&#xff09; 3、美化&#xff08;属性方法&#xff09; 设计资源-svg图标 界面中展示图标 ->可以使用svg图标&#xff08;任意放大缩小不失真&#xff0c;可以改颜色&#xff09; 使用方式&a…

Floyd 算法 求最短路

推荐阅读&#xff1a;最短路 - OI Wiki 练习题目&#xff1a;力扣 - 1334 简介&#xff1a; 初始化&#xff1a;我们先把题目给的&#xff0c;两点直接相连的边的加入初始存在连接中。更新&#xff1a;然后每次只加入一个点对已有合法连接进行“拓展”更多的连接。结果&#…

【python】OpenCV—Coordinates Sorted Clockwise

文章目录 1、需求介绍2、算法实现3、完整代码 1、需求介绍 调用 opencv 库&#xff0c;绘制轮廓的矩形边框&#xff0c;坐标顺序为右下→左下→左上→右上&#xff0c;我们实现一下转化为熟悉的 左上→右上→右下→左下 形式 按照这样的顺序组织边界框坐标是执行透视转换或匹…

数学基础【俗说矩阵】:矩阵相乘

矩阵乘法 矩阵乘法推导过程 一、两个线性方程复合代入 二、X1和X2合并同类项 三、复合后方程组结果 四、线性方程组矩阵表示 五、线性方程组矩阵映射表示 复合映射表示 六、矩阵乘法导出 矩阵乘法法则 1、规则一推导过程 左取行&#xff0c;右取列&#xff0c;对应相乘后…

第122天:内网安全-域信息收集应用网络凭据CS 插件AdfindBloodHound

目录 前置知识 背景和思路 判断是否在域内 案例一&#xff1a;架构信息类收集-网络&用户&域控等 案例二&#xff1a;自动化工具探针-插件&Adfind&BloodHound Adfind(域信息收集工具) ​BloodHound&#xff08;自动化域渗透工具&#xff09; 前置知识 本…

初阶数据结构的实现1 顺序表和链表

顺序表和链表 1.线性表1.1顺序表1.1.1静态顺序表&#xff08;不去实现&#xff09;1.1.2动态顺序表1.1.2.1 定义程序目标1.1.2.2 设计程序1.1.2.3编写代码1.1.2.3测试和调试代码 1.1.2 顺序表的问题与思考 1.2链表1.2.1链表的概念及结构1.2.1.1 定义程序目标1.2.1.2 设计程序1.…

专题四:设计模式总览

前面三篇我们通过从一些零散的例子&#xff0c;和简单应用来模糊的感受了下设计模式在编程中的智慧&#xff0c;从现在开始正式进入设计模式介绍&#xff0c;本篇将从设计模式的7大原则、设计模式的三大类型、与23种设计模式的进行总结&#xff0c;和描述具体意义。 设计模式体…

<数据集>木材缺陷检测数据集<目标检测>

数据集格式&#xff1a;VOCYOLO格式 图片数量&#xff1a;4000张 标注数量(xml文件个数)&#xff1a;4000 标注数量(txt文件个数)&#xff1a;4000 标注类别数&#xff1a;8 标注类别名称&#xff1a;[Quartzity,Live_Knot,Marrow,resin,Dead_Knot,knot_with_crack,Knot_m…

彻底解决idea的编解码问题

一、打开idea&#xff0c;找到Setting,点击File Encoding编解码设置&#xff0c;将以下标红的三个部分全部设置为UTF-8.同理如果你的项目使用的是GBK或者其他编码格式&#xff0c;那么也设置为统一。 二、点击Java Compiler设置补齐-encoding utf-8参数 三、如果你的项目使用到…

HiFi-GAN——基于 GAN 的声码器,能在单 GPU 上生成 22 KHz 音频

拟议的 HiFiGAN 可从中间表征生成原始波形 源码地址&#xff1a;https://github.com/NVIDIA/DeepLearningExamples 论文地址&#xff1a;https://arxiv.org/pdf/2010.05646.pdf 研究要点包括 **挑战&#xff1a;**基于 GAN 的语音波形生成方法在质量上不及自回归模型和基于流…

linux中list的基本用法

内核链表 1 list_head 结构 为了使用链表机制&#xff0c;驱动程序需要包含<linux/types.h>头文件&#xff0c;该文件定义了如下结构体实现双向链&#xff1a; struct list_head {struct list_head *next, *prev; };2 链表的初始化 2.1 链表宏定义和初始化 可使用以…

MongoDB教程(十二):MongoDB数据库索引

&#x1f49d;&#x1f49d;&#x1f49d;首先&#xff0c;欢迎各位来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里不仅可以有所收获&#xff0c;同时也能感受到一份轻松欢乐的氛围&#xff0c;祝你生活愉快&#xff01; 文章目录 引言一、MongoD…