计算机基础

【一】深度学习中常用的Linux命令汇总

1.man:man command,可以查看某个命令的帮助文档,按q退出帮助文档
2.cd:用于切换目录,cd - 可以在最近两次目录之间来回切换
3.touch:touch file创建文件。
4.ls:ls -lh可以列出当前目录下文件的详细信息。
5.pwd:pwd命令以绝对路径的方式显示用户当前的工作目录
6.cat:cat file显示文件内容。
7.mkdir:mkdir dir可以创建一个目录;mkdir -p dir/xxx/xxx可以递归创建目录。
8.cat:cat file显示文件内容,按q退出。
9.more:more file显示文件内容,按q退出。
10.grep:筛选命令,比如我想查找当前目录下的py文件(ls -lh | grep .py)
11.whereis:可以查找含有制定关键字的文件,如whereis python3
重定向 > 和 >>:Linux 允许将命令执行结果重定向到一个文件,将本应显示在终端上的内容输出/追加到指定文件中。其中>表示输出,会覆盖原有文件;>>表示追加,会将内容追加到已有文件的末尾。
12.cp:cp dst1 dst2复制文件;cp -r dst1 dst2复制文件夹。
13.mv:mv dst1 dst2可以移动文件、目录,也可以给文件或目录重命名。
14.zip:zip file.zip file压缩文件;zip dir.zip -r dir压缩文件夹。
15.unzip:unzip file.zip解压由zip命令压缩的.zip文件。
16.tar:
tar -cvf file.tar dir打包文件夹
tar -xvf file.tar解包
tar -czvf file.tar.gz dir压缩文件夹
tar -zxvf file.tar.gz解压
17.chmod:chmod -R 777 data将整个data文件夹修改为任何人可读写。
18.ps:ps aux列出所有进程的详细信息。
19.kill:kill PID根据PID杀死进程。
20.df:df -h 查看磁盘空间。
21.du:du -h dir查看文件夹大小。
22.top:实时查看系统的运行状态,如 CPU、内存、进程的信息。
23wget:wget url从指定url下载文件。
24.ln:ln -s dst1 dst2建立文件的软链接,类似于windows的快捷方式;ln dst1 dst2建立文件的硬链接。无论哪种链接,dst1都最好使用绝对路径。
25.top:我们可以使用top命令实时的对系统处理器的状态进行监视。
26.apt-get:用于安装,升级和清理包。
27.vim:对文件内容进行编辑。
28.nvidia-smi:对GPU使用情况进行查看。
29.nohup sh test.sh &:程序后台运行且不挂断。
30.find:这个命令用于查找文件,功能强大。find . -name "*.c"表示查找当前目录及其子目录下所有扩展名是.c的文件。

【二】计算机多线程和多进程的区别?

进程和线程的基本概念

进程:是并发执行的程序在执行过程中分配和管理资源的基本单位,是一个动态的概念,竞争计算机系统资源的基本单位。

线程:是进程的一个执行单元,是进程内的调度实体。比进程更小的独立运行的基本单位。线程也被称为轻量级进程。

一个程序至少一个进程,一个进程至少一个线程

线程的意义

每个进程都有自己的地址空间,即进程空间,在网络环境下,一个服务器通常需要接收不确定数量用户的并发请求,为每一个请求都创建一个进程显然行不通(系统开销大响应用户请求效率低),因此操作系统中线程概念被引进。线程的执行过程是线性的,尽管中间会发生中断或者暂停,但是进程所拥有的资源只为该线状执行过程服务,一旦发生线程切换,这些资源需要被保护起来。进程分为单线程进程和多线程进程,单线程进程宏观来看也是线性执行过程,微观上只有单一的执行过程。多线程进程宏观是线性的,微观上多个执行操作。

进程和线程的区别

地址空间:同一进程中的线程共享本进程的地址空间,而进程之间则是独立的地址空间。

资源拥有:同一进程内的线程共享进程的资源如内存、I/O、CPU等,但是进程之间的资源是独立的。(一个进程崩溃后,在保护模式下不会对其他进程产生影响,但是一个线程崩溃可能导致整个进程都死掉。所以多进程比多线程健壮。进程切换时,消耗的资源大、效率差。所以涉及到频繁的切换时,使用线程要好于进程。同样如果要求同时进行并且又要共享某些变量的并发操作,只能用线程不能用进程。)

执行过程:每个独立的线程都有一个程序运行的入口、顺序执行序列和程序出口。但是线程不能独立执行,必须依存在应用程序中,由应用程序提供多个线程执行控制。(线程是基于进程的)

线程是处理器调度的基本单元,但进程不是

两者均可并发执行

进程和线程的优缺点

线程执行开销小,但是不利于资源的管理和保护。

进程执行开销大,但是能够很好的进行资源管理和保护。

何时使用多进程,何时使用多线程:

对资源的管理和保护要求高,不限制开销和效率时,使用多进程。(CPU密集型任务)

要求效率高,频繁切换时,资源的保护管理要求不是很高时,使用多线程。(I/O密集型任务)

【三】TCP/IP四层模型的相关概念

TCP/IP四层模型

  1. 应用层:负责各种不同应用之间的协议,如文件传输协议(FTP),远程登陆协议(Telnet),电子邮件协议(SMTP),网络文件服务协议(NFS),网络管理协议(SNMP)等。

  2. 传输层:负责可靠传输的TCP协议、高效传输的UDP协议。

  3. 网络层:负责寻址(准确找到对方设备)的IP,ICMP,ARP,RARP等协议。

  4. 数据链路层:负责将数字信号在物理通道(网线)中准确传输。

四层模型逻辑

发送端是由上至下,把上层来的数据在头部加上各层协议的数据(部首)再下发给下层。

接受端则由下而上,把从下层接收到的数据进行解密和去掉头部的部首后再发送给上层。

层层加密和解密后,应用层最终拿到了需要的数据。

【四】OSI七层模型的相关概念

在这里插入图片描述

【五】Linux中的进程状态种类

  1. 运行(正在运行或在运行队列中等待)
  2. 中断(休眠中,受阻,在等待某个条件的形成或等待接受到信号)
  3. 不可中断(收到信号不唤醒和不可运行,进程必须等待直到有中断发生)
  4. 僵死(进程已终止,但进程描述符存在,直到父进程调用wait4()系统调用后释放)
  5. 停止(进程收到SIGSTOP, SIGSTP, SIGTIN, SIGTOU信号后停止运行运行)

【六】Linux中ps aux指令与grep指令配合管理进程

ps相关指令

ps命令(Process Status)是最基本同时也是非常强大的进程查看命令。

  • ps a 显示现行终端机下的所有程序,包括其他用户的程序。
  • ps -A 显示所有程序。
  • ps c 列出程序时,显示每个程序真正的指令名称,而不包含路径,参数或常驻服务的标示。
  • ps -e 此参数的效果和指定"A"参数相同。
  • ps e 列出程序时,显示每个程序所使用的环境变量。
  • ps f 用ASCII字符显示树状结构,表达程序间的相互关系。
  • ps -H 显示树状结构,表示程序间的相互关系。
  • ps -N 显示所有的程序,除了执行ps指令终端机下的程序之外。
  • ps s 采用程序信号的格式显示程序状况。
  • ps S 列出程序时,包括已中断的子程序资料。
  • ps -t <终端机编号>  指定终端机编号,并列出属于该终端机的程序的状况。
  • ps u   以用户为主的格式来显示程序状况。
  • ps x   显示所有程序,不以终端机来区分。

ps aux | more 指令

这个指令可以显示进程详细的状态。

参数解释:

  • USER:进程的所有者。
  • PID:进程的ID。
  • PPID:父进程。
  • %CPU:进程占用的CPU百分比。
  • %MEM:进程占用的内存百分比。
  • NI:进程的NICE值,数值越大,表示占用的CPU时间越少。
  • VSZ:该进程使用的虚拟内存量(KB)。
  • RSS:该进程占用的固定内存量(KB)。
  • TTY:该进程在哪个终端上运行,若与终端无关,则显示?。若为pts/0等,则表示由网络连接主机进程。
  • WCHAN:查看当前进程是否在运行,若为-表示正在运行。
  • START:该进程被触发启动时间。
  • TIME:该进程实际使用CPU运行的时间。
  • COMMAND:命令的名称和参数。
  • STAT状态位常见的状态字符:
    D 无法中断的休眠状态(通常 IO 的进程);
    R 正在运行可中在队列中可过行的;
    S 处于休眠状态;
    T 停止或被追踪;
    W 进入内存交换 (从内核2.6开始无效);
    X 死掉的进程 (基本很少見);
    Z 僵尸进程;
    < 优先级高的进程
    N 优先级较低的进程
    L 有些页被锁进内存;
    s 进程的领导者(在它之下有子进程);
    l 多进程的(使用 CLONE_THREAD, 类似 NPTL pthreads);+ 位于后台的进程组;

ps aux | grep xxx命令

如果直接用ps命令,会显示所有进程的状态,通常结合grep命令查看某进程的状态。

grep (global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。

例如我想要查看Python 的所有进程,可以在终端输入如下命令:

ps aux | grep python

便可以把Python相关的进程全部都打印到终端供我们查看。相关参数和之前的ps aux | more一致。

进程结束命令

我们可以使用kill命令来结束进程。

如下面的指令所示:

kill   PID  //杀掉进程
kill  -9 PID //强制杀死进程

【七】Git,GitLab,SVN的相关知识

Git

Git是当前主流的一种开源分布式版本控制系统,可以有效、快速的进行项目版本管理

Git没有中央服务器,不同于SVN这种需要中央服务器的集中式版本控制系统。

Git的功能:版本控制(版本管理,远程仓库,分支协作)

Git的工作流程:

Git工作流程

Git的常用命令:

git init 创建仓库

git clone 克隆github上的项目到本地

git add  添加文件到缓存区

git commit 将缓存区内容添加到仓库中

GitLab

GitLab是一个基于Git实现的在线代码仓库软件,可以基于GitLab搭建一个类似于GitHub的仓库,但是GitLab有完善的管理界面和权限控制,有较高的安全性,可用于企业和学校等场景

SVN

SVN全名Subversion,是一个开源的版本控制系统。不同于Git,SVN是集中式版本控制系统

SVN只有一个集中管理的服务器,保存所有文件的修订版本,而协同工作的人们都通过客户端连到这台服务器,取出最新的文件或者提交更新。

SVN的特点是安全,效率,资源共享

SVN的常用操作:

Checkout 检出代码

Update 更新代码

Commit 提交代码

Add 提交新增文件

Revert to this version + commit 撤销已经提交的代码

【八】协程的相关概念

协程(Coroutine,又称微线程)运行在线程之上,更加轻量级,协程并没有增加线程总数,只是在线程的基础之上通过分时复用的方式运行多个协程,大大提高工程效率

协程的特点:

  1. 协程类似于子程序,但执行过程中,协程内部可中断,然后转而执行其他的协程,在适当的时候再返回来接着执行。协程之间的切换不需要涉及任何系统调用或任何阻塞调用。
  2. 协程只在一个线程中执行,发生在用户态上的一个逻辑。并且是协程之间的切换并不是线程切换,而是由程序自身控制,协程相比线程节省线程创建和切换的开销。
  3. 协程中不需要多线程的锁机制,因为只有一个线程,也不存在同时写变量冲突,在协程中控制共享资源不加锁,只需要判断状态就好了,所以执行效率比多线程高很多。

协程适用于有大量I/O操作业务的场景,可以到达很好的效果,一是降低了系统内存,二是减少了系统切换开销,因此系统的性能也会提升。

在协程中尽量不要调用阻塞I/O的方法,比如打印,读取文件等,除非改为异步调用的方式,并且协程只有在I/O密集型的任务中才会发挥作用。

【九】Linux系统的相关概念

Linux系统是一种操作系统(Operating System简称OS),它是软件的一部分,是硬件基础上的第一层软件,即硬件和应用软件沟通的桥梁。

Linux系统系统会控制其他程序运行,管理系统资源,提供最基本的计算功能,如管理及配置内存、决定系统资源供需的优先次序等,同时还提供一些基本的服务程序。Linux系统内核指的是提供硬件抽象层、硬盘及文件系统控制及多任务功能的系统核心程序。Linux发行套件系统是由 Linux系统内核与各种常用应用软件的集合产品。

在Linux系统中一切都是文件。在linux系统中,目录、字符设备、块设备、套接字、打印机等都被抽象成了文件,Linux系统中的一切文件都是从“根(/)”目录开始的,并按照树形结构来存放文件,且定义了常见目录的用途,文件和目录名称严格区分大小写。

Linux系统的文件目录结构

  • /usr:这是一个非常重要的目录,包含绝大多数的(多)用户工具和应用程序,用户的很多应用程序和文件都放在这个目录下,类似于windows下的program files目录。
  • /lib:存放着系统开机时会用到的函数库,以及在/bin和/sbin下命令会调用的函数库,几乎所有的应用程序都需要用到这些共享库。
  • /var:存放不断扩充的内容,如经常被修改的目录、文件(包括各种日志文件)等。
  • /boot:存放启动Linux时所需的一些核心文件(linux内核文件),包括一些引导程序文件、链接文件、镜像文件等。
  • /home:用户的主目录,在Linux中,每个用户都有一个自己的目录,该目录名一般以用户账号命名,包含保存的文件、个人设置等。
  • /sbin:s就是Super User的意思,这里存放的是系统管理员使用的系统管理命令。
  • /bin:这个存放的是当前用户的系统管理命令(cat、cp、ps等)。
  • /etc:存放所有的系统管理所需的配置文件和子目录(例如人员的帐号密码文件,各种服务的起始文件等)。
  • /tmp:存放一些临时文件,在系统重启时临时文件将被删除。
  • /snap:Ubuntu 16.04及之后版本引入了snap包管理器,与之相关的目录、文件(包括安装文件)位于/snap中。
  • /lost+found:该目录一般情况下是空的,当系统非法关机后会在该目录生成一些遗失的片段。
  • /media:linux系统会自动识别一些设备,例如U盘、光驱等等,当识别后,linux会把识别的设备挂载到该目录下。
  • /srv:该目录存放一些服务启动之后需要提取的数据。
  • /root:该目录为系统管理员用户主目录。
  • /opt:该目录存放安装的第三方软件,如Oracle数据库就可以安装到该目录下。
  • /mnt:挂载其他的文件系统(含硬盘分区)的目录。
  • /lib64:类似lib目录,存放64位库文件。
  • /srv:可以视作service的缩写,是一些网络服务启动后,这些服务需要取用的数据目录,常见的服务例如www,ftp等。
  • /proc:这个目录本身是一个虚拟文件系统,它放置的数据都是在内存当中,不占用硬盘的容量。
  • /sys:这个目录其实跟/proc非常的相似,也是一个虚拟的文件系统主要也是记录与内核相关的信息,不占用硬盘容量。
  • /dev:在linux中任何的设备和接口设备都是以文件的形式存在于这个目录当中。你只要到通过访问这个目录下的某个文件就相当于访问某个设备。

Linux系统种类

  • 红帽企业版Linux:RedHat是全世界内使用最广泛的Linux系统。它具有极强的性能与稳定性,是众多生成环境中使用的(收费的)系统。
  • Fedora:由红帽公司发布的桌面版系统套件,用户可以免费体验到最新的技术或工具,这些技术或工具在成熟后会被加入到RedHat系统中,因此Fedora也成为RedHat系统的试验版本。
  • CentOS:通过把RedHat系统重新编译并发布给用户免费使用的Linux系统,具有广泛的使用人群。
  • Deepin:在中国发行,对优秀的开源成品进行集成和配置。
  • Debian:稳定性、安全性强,提供了免费的基础支持,在国外拥有很高的认可度和使用率。
  • Ubuntu:是一款派生自Debian的操作系统,对新款硬件具有极强的兼容能力。Ubuntu与Fedora都是极其出色的Linux桌面系统,而且Ubuntu也可用于服务器领域

【十】Linux系统和Windows系统的区别?

  • Linux系统更稳定且有效率。
  • Linux系统是免费(或少许费用),而Windows系统是商业化主导。
  • Linux系统漏洞少且快速修补。
  • Linux系统支持多用户同时使用计算机。
  • Linux系统有更加安全的用户与文件权限策略。
  • Linux系统可以访问源代码并根据用户的需要修改代码,而Windows系统不能访问源代码。
  • Linux系统更能支持多种深度学习配套软件,但是windows系统能支持大量的视频游戏软件。

【十一】POC验证测试的概念

POC(Proof of Concept),即概念验证。通常是企业进行产品选型时或开展外部实施项目前,进行的一种产品或供应商能力验证工作。主要验证内容:

  1. 产品的功能。产品功能由企业提供,企业可以根据自己的需求提供功能清单,也可以通过与多家供应商交流后,列出自己所需要的功能。
  2. 产品的性能。性能指标也是由企业提供,并建议提供具体性能指标所应用的环境及硬件设备等测试环境要求。
  3. 产品的API适用性。
  4. 产品相关技术文档的规范性、完整性。
  5. 涉及到自定义功能研发的,还需要验证API开放性,供应商实施能力。
  6. 企业资质规模及企业实施案例等。

验证内容归根结底,就是证明企业选择的产品或供应商能够满足企业提出的需求,并且提供的信息准确可靠

POC测试工作的前提:

  1. 前期调研充分,并已经对产品或供应商有了比较深入的沟通了解。
  2. 企业对自己的产品需求比较清晰。

POC测试工作参与者:

使用用户代表、业务负责人、项目负责人、技术架构师、测试工程师、商务经理等。

POC测试工作准备文档:

  1. POC测试工作说明文档。内容包括测试内容、测试要求(如私有化部署)、测试标准、时间安排等。
  2. 功能测试用例。主要确认功能可靠性,准确性。内容包括功能名称、功能描述等。
  3. 场景测试用例。主要测试企业团队实施响应速度、实施能力、集成能力。这部分通常按照企业需求而定,不建议太复杂,毕竟需要供应商实施,拖的太久企业耐性受到影响,时间也会被拉长。
  4. 技术测评方案。主要验证产品的性能、功能覆盖情况、集成效率、技术文档的质量。
  5. 商务测评方案。主要包括企业实力、企业技术人才能力、版权验证、市场背景、产品报价等。

POC测试工作的主要流程:

第一阶段:工作启动

由商务或者对外代表对供应商发布正式邀请并附POC测试工作说明。

建立POC协同群。以满足快速沟通,应答。

涉及到私有化部署的,需要收集供应商部署环境要求,并与供应商一起进行部署工作,同时企业参与人员对部署工作情况做好记录。

第二阶段:产品宣讲及现场集中测试

供应商根据企业提供的POC测试工作说明及相应测试模块的用例或方案进行产品现场测试论证。

企业参与人员参与功能测试,并填写记录和意见。此阶段供应商往往需进行现场操作指导。

第三阶段:技术测评

供应商根据企业提供的技术要求给出相关支持技术文档,企业进行现场对比,根据实际情况进行统计记录。并保留供应商提供的资料和对比记录。

涉及到场景demo设计的,建议企业对实施人员能力、实施时长、实施准确性进行对比。

第四阶段:间歇性测试工作

该阶段是在第一阶段启动时,就可以开始了。测试功能外,还包括关键用户使用的体验心得、易用性评价。该部分允许企业用户主观评价,建议可以扩大范围组织间歇性测试,并做好测试用户记录。间歇时间1天或者多天根据实际情况安排。

第五阶段:商务验证

供应商根据企业提供的商务测评方案,积极配合工作。涉及到客户核实的,还需要企业进行考证。该部分工作也是从第一阶段启动时,就可以开始了。

第六阶段:背书归档、分析总结

每个阶段的工作都需要记录好参与人、时间、工作时间,并将测试过程中企业的、供应商的文档分类归档。对每个阶段进行分析对比,总结评价。最后进行整体工作分析总结。

POC工作按照不同企业和程度,测试的方式和投入力度不一样。但是目的都是相同的——验证产品或供应商能力是否满足企业需求

【十二】Docker的相关概念及常用命令

Docker简介

Docker是一个开源的应用容器引擎,基于Go语言并遵从Apache2.0协议开源。

Docker可以打包代码以及相关的依赖到一个轻量级、可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化。

容器完全使用沙箱机制,相互之间不会有任何接口(类似iPhone的app),更重要的是容器性能开销极低。

Docker漫画

Docker的应用场景:

  1. Web应用的自动化打包和发布。
  2. 自动化测试和持续集成、发布。
  3. 在服务器环境中部署/调整数据库或其它的后台应用。

Docker架构

Docker包括三个基本单元:

  1. 镜像(Image):Docker镜像(Image),就相当于是一个root文件系统。比如官方镜像ubuntu:16.04就包含了完整的一套Ubuntu16.04最简系统的root文件系统。
  2. 容器(Container):镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的类和实例一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。
  3. 仓库(Repository):仓库可看成一个代码控制中心,用来保存镜像。

Docker容器使用

Docker客户端

Docker客户端非常简单,我们可以直接输入docker命令来查看到Docker客户端的所有命令选项。也可以通过命令docker command --help更深入的了解指定的Docker命令使用方法。

docker

容器使用

获取本地没有的镜像。如果我们本地没有我们想要的镜像,我们可以使用 docker pull 命令来载入镜像:

docker pull 镜像

启动容器。以下命令使用ubuntu镜像启动一个容器,参数为以命令行模式进入该容器:

docker run -it 镜像 /bin/bash

参数解释:

  • -i:允许你对容器内的标准输入 (STDIN) 进行交互。
  • -t:在新容器内指定一个伪终端或终端。
  • /bin/bash:放在镜像名后的是命令,这里我们希望有个交互式Shell。

我们可以通过 <仓库名>:<标签> 的格式来指定具体是这个软件哪个版本的镜像。如果不给出标签,将以latest作为默认标签。

要退出终端,直接输入exit或者CTRL+D。

启动已经停止运行的容器。查看所有的容器的命令如下:

docker ps -a

我们也可以用docker ps命令查看正在运行的容器。

docker ps

我们可以使用 docker start 启动一个已停止的容器:

docker start 容器

想要后台运行容器,我们可以过 -d 指定容器的运行模式:

docker run -itd --name 指定创建的容器名 容器 /bin/bash

加了 -d 参数默认不会进入容器,想要进入容器需要使用下面的指令进入容器:

  • docker attach
  • docker exec:推荐大家使用 docker exec 命令,因为使用此命令退出容器终端,不会导致容器的停止。
docker attach 容器  //如果从这个容器退出,会导致容器的停止。

docker exec -it 容器 /bin/bash   //如果从这个容器退出,不会导致容器的停止。

想要停止容器,其命令如下:

docker stop 容器ID

停止的容器重启命令:

docker restart 容器ID

删除容器:

docker rm -f 容器ID

Docker镜像使用

列出镜像列表。我们可以使用 docker images 来列出本地主机上的镜像。

docker images

各个参数解释:

  • REPOSITORY:表示镜像的仓库源
  • TAG:镜像的标签
  • IMAGE ID:镜像ID
  • CREATED:镜像创建时间
  • SIZE:镜像大小

查找镜像:

docker search 镜像

各个参数解释:

  • NAME: 镜像仓库源的名称
  • DESCRIPTION: 镜像的描述
  • OFFICIAL: 是否 docker 官方发布
  • stars: 类似 Github 里面的 star,表示点赞、喜欢的意思。
  • AUTOMATED: 自动构建。

删除镜像:

docker rmi 镜像

Docker镜像的修改和自定义

docker镜像的更新

在启动docker镜像后,写入一些文件、代码、更新软件等等操作后,退出docker镜像,之后在终端输入如下命令:

docker commit -m="..." -a= "..." 容器ID 指定要创建的目标镜像名称

参数解释:

  • commit:固定格式
  • -m:提交的描述信息
  • -a:指定镜像作者

接着可以用docker images查看镜像是否更新成功。(注意:不要创建名称已存在的镜像,这样会使存在的镜像名称为none,从而无法使用)

镜像名称修改和添加新标签

更改镜像名称(REPOSITORY):

docker tag 容器ID 新名称

更改镜像tag,不修改名称:

docker tag IMAGEID(镜像id) REPOSITORY:TAG(仓库:标签)

Docker容器和本机之间的文件传输

主机和容器之间传输文件的话需要用到容器的ID全称。

从本地传输到容器中:

docker cp 本地文件路径 容器name:/root/(容器路径)

从容器传输到本地上:

docker cp 容器name:/root/(容器路径) 本地文件路径

Docker挂载宿主机文件目录

docker可以支持把一个宿主机上的目录挂载到镜像的目录中。

在启动docker镜像时,输入如下命令:

docker run -it -v /宿主机绝对路径:/镜像内挂载绝对路径 容器REPOSITORY /bin/bash

通过-v参数,冒号前为宿主机目录,冒号后为镜像内挂载的路径,必须为绝对路径。

如果宿主机目录不存在,则会自动生成,镜像里也是同理。

默认挂载的路径权限为读写。如果指定为只读可以用:ro

docker run -it -v /宿主机绝对路径:/镜像内挂载绝对路径:ro 容器REPOSITORY /bin/bash

【十三】深度学习中常用的文件格式汇总

  1. csv:可用于方便的存储数据与标签。
  2. txt:最常见的文件格式,可用于存储数据路径与数据label。
  3. Json:是一种轻量级的数据交换格式,常用于保存数据label。
  4. Yaml:是一种数据序列化语言,通常用于编写配置文件,比如将网络模型配置参数与训练参数解耦至Yaml文件中,方便训练与优化。
  5. Cfg:Darknet中经典的保存网络模型结构的文件格式。
  6. Protobuf:是一个高效的结构化数据存储格式,可以存储神经网络的权重信息,在caffe中经常出现它的身影。

【十四】TCP和UDP的区别?

  1. TCP面向连接,UDP是无连接的;
  2. TCP提供可靠的服务,也就是说,通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达;UDP尽最大努力交付,即不保证可靠交付;
  3. TCP的逻辑通信信道是全双工的可靠信道;UDP则是不可靠信道;
  4. 每一条TCP连接只能是点到点的;UDP支持一对一,一对多,多对一和多对多的交互通信;
  5. TCP面向字节流(可能出现黏包问题),本质上是TCP把数据看成一连串无结构的字节流;UDP是面向报文的(不会出现黏包问题);
  6. UDP没有拥塞控制,因此网络出现拥塞不会使源主机的发送速率降低(对实时应用很有用,如IP电话,实时视频会议等);
  7. TCP首部开销20字节;UDP的首部开销小,只需8个字节。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Windows、Linux 和 macOS 操作系统:操作系统大比较

目录 引言 Windows Linux macOS 1. 用户界面 1.1 Windows 1.2 Linux 1.3 macOS 2. 开发者支持 2.1 Windows 2.2 Linux 2.3 macOS 3. 安全性和稳定性 3.1 Windows 3.2 Linux 3.3 macOS 结论 引言 在计算机科学领域&#xff0c;操作系统是计算机系统中的核心软件…

【计算机视觉】SIFT

在边缘提取的时候&#xff0c;用高斯一阶导对信号进行卷积&#xff0c;响应值最大的就是边界如果用高斯二阶导对信号进行卷积&#xff0c;0点就是边界点&#xff08;二阶导等于0的点&#xff0c;对应一阶导的极值点&#xff09; 如果用高斯二阶导在不同的信号上进行卷积&#x…

华为数通---配置基本QinQ示例

QinQ简介 定义 QinQ&#xff08;802.1Q-in-802.1Q&#xff09;技术是一项扩展VLAN空间的技术&#xff0c;通过在802.1Q标签报文的基础上再增加一层802.1Q的Tag来达到扩展VLAN空间的功能&#xff0c;可以使私网VLAN透传公网。由于在骨干网中传递的报文有两层802.1Q Tag&#x…

【JavaWeb学习笔记】7 - Servlet入门开发

零、在线文档 Servlet 3.1 API Documentation - Apache Tomcat 8.0.53 一、Servlet基本介绍 1.为什么出现Servlet 提出需求:请用你现有的html css javascript&#xff0c;开发网站&#xff0c;比如可以让用户留言/购物/支付,你能搞定吗? 不能 这几个不能直接操作数据库 …

Android gradle配置jar包加载顺序及延伸知识

Android gradle配置jar包加载顺序及延伸知识 前言一、直接配置1.APP目录下的build.gradle2.项目级的build.gradle3.其他问题 二、gradle的生命周期及关键方法1.关键方法2.gradle的生命周期 总结 前言 项目涉及到了要加载framework.jar&#xff0c;需要将libs文件夹下的framewo…

SpringBoot对PDF进行模板内容填充、电子签名合并

1. 依赖引入–这里只包含额外引入的包 原有项目包不含括在内 <!-- pdf编辑相关--> <dependency><groupId>com.itextpdf</groupId><artifactId>itextpdf</artifactId><version>5.5.13.3</version> </dependency><de…

数据结构与算法:选择排序

原理 从当前位置到最后&#xff0c;找出最小(或者最大)值&#xff0c;放在当前位置&#xff0c;位置后移。然后重复此过程。 每次都要在剩余未排序的集合中&#xff0c;找到那个最小(或者最大)的值&#xff0c;放到当前位置。所以叫选择排序。 最小或者最大&#xff0c;影响…

iOS加密CoreML模型

生成模型加密密钥 必须在Xcode的Preferences的Accounts页面登录Apple ID&#xff0c;才能在Xcode中生成模型加密密钥。 在Xcode中打开模型&#xff0c;单击Utilities选项卡&#xff0c;然后单击“Create Encryption Key”按钮。 从下拉菜单中选择当前App的Personal Team&…

Hive命令操作

1.命令行模式 1. 获取帮助 --> hive -H 或-help 2. 运行hive语句 --> hive -e "执行语句" 3. 运行hive文件 --> hive –f "执行文件" 4. 定义变量 --> hive –hivevar keyvalue 5. 引用变量 --> ${varname} 2. 交互模式 1. 进入客户端 -…

Apache Web 服务器监控工具

将Apache Web 服务器监控纳入 IT 基础架构管理策略有助于先发制人地识别性能瓶颈&#xff0c;这种主动监控方法提供必要的数据&#xff0c;以确保 Web 服务器能够胜任任务&#xff0c;并在需要时进行优化。保证客户获得流畅、无忧的用户体验可以大大有助于巩固他们对组织的信任…

STM32的DMA的五大问题

1&#xff0c;DMA控制器的内部结构 STM32中的DMA控制器是一种用于在外设和存储器之间传输数据的专用硬件。DMA控制器的内部结构主要包括以下几个关键部分&#xff1a; 通道&#xff1a; DMA控制器可以有多个通道&#xff0c;每个通道独立管理一个数据传输任务。通道的数量取决于…

【教学类-06-15】20231213 (按比例抽题+乱序or先加后减)X-Y之间“加法减法+-题”

作品展示&#xff1a; 背景需求 1、加减混合题——加法题多&#xff0c;减法题少 大三班一位女孩让我给他批改0-10加减法混合题&#xff0c;我随机从每列题目里面选了2个加法和2个减法题抽查答案正确性。 “347&#xff0c;对&#xff0c;这里819 对” 然后我停顿几秒&…

22.Java程序设计-基于SpringBoot的批发零售业商品管理小程序系统的设计与实现

摘要&#xff1a; 批发零售业商品管理小程序系统的设计旨在提高批发商、零售商和管理员的业务效率&#xff0c;实现商品的高效管理、订单的快速处理以及库存的精准监控。本系统基于Spring Boot框架&#xff0c;利用其强大的特性和生态系统&#xff0c;结合小程序前端&#xff…

R语言对医学中的自然语言(NLP)进行机器学习处理(1)

什么是自然语言(NLP)&#xff0c;就是网络中的一些书面文本。对于医疗方面&#xff0c;例如医疗记录、病人反馈、医生业绩评估和社交媒体评论,可以成为帮助临床决策和提高质量的丰富数据来源。如互联网上有基于文本的数据(例如,对医疗保健提供者的社交媒体评论),这些数据我们可…

AndroidStudio flutter 开发环境 绿色版,绿化方法

这里写自定义目录标题 绿色版下载:绿色版制作过程参考资料1.按照正常方式配置flutter开发环境(不包括桌面开发环境),确认能够正常编译apk2.移动AndroidStudio3.修改 {Android Studio安装路径}\bin\idea.properties4.移动.android5.移动AndroidSdk6.移动gradle 绿色版下载: and…

flink yarn-session 启动失败retrying connect to server 0.0.0.0/0.0.0.0:8032

原因分析&#xff0c;启动yarn-session.sh&#xff0c;会向resourcemanager的端口8032发起请求&#xff1a; 但是一直无法请求到8032端口&#xff0c;触发重试机制会不断尝试 备注&#xff1a;此问题出现时&#xff0c;我的环境ambari部署的HA 高可用hadoop&#xff0c;三个节点…

计算机网络传输层(期末、考研)

计算机网络总复习链接&#x1f517; 目录 传输层的功能端口UDP协议UDP数据报UDP的首部格式UDP校验 TCP协议&#xff08;必考&#xff09;TCP报文段TCP连接的建立TCP连接的释放TCP的可靠传输TCP的流量控制零窗口探测报文段 TCP的拥塞控制慢开始和拥塞控制快重传和快恢复 TCP和U…

低代码 —— 饮食均衡,合理膳食

目录 一、低代码的概念 二、低代码的优缺点 &#xff08;一&#xff09;优点 &#xff08;二&#xff09;缺点 三、低代码的能力 1、场景构建能力 2、数据编排能力 3、连接生态能力 4、业务中台能力 四、你认为低代码会替代传统编程吗&#xff1f; 1、从技术特征来看…

各厂家扇区电下倾识别调整方法

一、华为设备 针对华为4488天线或44天线TDD/FDD1800/FDD900电子下倾调整步骤 步骤1&#xff1a;先通过“DSP RETPORT”命令梳理全网供电开关开启状态 操作命令如下&#xff1a; &#xff08;可通过脚本执行DSP RETPORT:;命令批量提取全网信息&#xff0c;该命令是以RRU为单位…

【深度学习】强化学习(七)基于策略函数的学习方法

文章目录 一、强化学习问题1、交互的对象2、强化学习的基本要素3、策略&#xff08;Policy&#xff09;4、马尔可夫决策过程5、强化学习的目标函数6、值函数7、深度强化学习 二、基于值函数的学习方法三、基于策略函数的学习方法 一、强化学习问题 强化学习的基本任务是通过智能…