运行命令

环境配置(近期实测)——Ubuntu16.04+CUDA9.0+tensorflow-gpu填坑记

时光毁灭记忆、已成空白 提交于 2019-11-26 03:54:46
近几年深度学习在物体检测方面出现了许多基于不同框架的网络模型,不同模型需要不同的版本的Python、TensorFlow、Keras、CUDA、cuDNN以及操作系统。不得不说,要把经典物体检测网络的源码都跑通,单配置环境就要浪费很多时间,因为目前兼容这些经典网络的框架和环境还很少。新版的TensorFlow在models的 objection-detection 模块中包含了fast-rcnn、rfcn、SSD几种网络,不过开发环境是基于Ubuntu的,因此我对该环境进行了配置。 我的运行环境为: Ubuntu16.04LTS CUDA9.0 cuDNN7.0.5 AMD Ryzen 1600 NVIDIA GTX1070 1.Ubuntu安装环境选择 Ubuntu版本很多,首选LTS版本。现在已经有了18.04LTS,装上后界面丰富好看了,不过在运行Python和TensorFlow环境下的代码时出现了一些未知问题,有关排故的信息也比较少,所以我重新安装了16.04LTS。安装时可先使用 深度U盘启动工具 (我使用的是UEFI版)制作Ubuntu启动盘,然后在电脑安装,具体过程百度即可。我以前使用的是双系统安装,但时间长了以后Ubuntu系统会出问题,有时需要进入grub模式进行修复,操作不当会导致无法进入Windows系统。所以后来我就把两个系统安装在两个硬盘上

GDB调试及coredump详解

情到浓时终转凉″ 提交于 2019-11-26 03:09:48
一、coredump:是针对程序异常而产生的core文件,包含程序运行时的内存、寄存器状态、堆栈指针、函数调用等信息,用于存储程序出错时的状态。 二、coredump的存储位置:与被执行文件在同一目录下。当然,位置可以在程序中通过 chdir 命令修改 三、如何判断是coredump文件:该文件主要的格式为 ELF 格式。可以通过 readelf -h core 进行判断,如图: 四、产生coredump的条件: 首先确认 当前会话 中的ulimit -c,若为0,则不会产生core,需要修改和设置。 附: ulimit -c unlimited #可以产生core且不受大小限制 ulimit -a #显示当前各种用户进程设置 #ulimit的某些参数设置与运行机器的配置有关,慎重使用。 ulimit -d unlimited #数据段长度 ulimit -m unlimited #最大内存大小 ulimit -s unlimited #堆栈大小 #以上是设置为无限制 #若是想设置对应字符大小,可以指定如下图: ulimit -c [size] 可能 -c 设置成 4 也不会生成core,因人而异。 当前用户对写入core目录的写权限有足够的空间。 其他不会产生core文件的原因。 五、coredump产生的几种情况 内存访问越界 多线程程序使用不安全的线程函数

Docker 容器中运行 Docker 命令

浪尽此生 提交于 2019-11-26 02:58:49
Docker 容器中运行 Docker 命令 在使用 GitLab/Jenkins 等 CI 软件的时候需要使用 Docker 命令来构建镜像,需要在容器中使用 Docker 命令;通过将宿主机的 Docker 共享给容器即可 在启动容器时添加以下命令: --privileged \ -v /var/run/docker.sock:/var/run/docker.sock \ -v $(which docker)r:/bin/docker \ --privileged 表示该容器真正启用 root 权限 -v /var/run/docker.sock:/var/run/docker.sock 和 -v $(which docker)r:/bin/docker 命令将相关的 Docker 文件挂载到容器 来源: CSDN 作者: 呜呜呜啦啦啦 链接: https://blog.csdn.net/u013360850/article/details/81509999

Docker数据管理与网络通信

*爱你&永不变心* 提交于 2019-11-26 01:51:42
Docker镜像的创建方法 Docker镜像除了是Docker的核心技术之外也是应用发布的标准格式。一个完整的Docker镜像可以支撑一个Docker容器的运行,在Docker的整个使用过程中,进入一个已经定型的容器之后,就可以在容器中进行操作,最常见的就是在容器中安装应用服务,如果要把已经 安装的服务进行迁移,就需要把环境以及搭建的服务生成新的镜像。 创建镜像的方法有三种: 基于已有镜像创建 基于本地模板创建 基于Docherfile创建 基于已有镜像创建 使用docker commit命令,把一个容器里面运行的程序以及该程序的运行环境打包起来生成新对的镜像。 命令格式:docker commit [选项] 容器 ID/ 名称 仓库名称 :[标签] 常用选项: -a :作者信息 -m :说明信息 -p :生成过程中停止容器的运行 [root@localhost ~]# docker ps -a #查看容器的ID CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 06bbfa9e79b8 11426a19f1a2 "/bin/bash" 7 seconds ago Created nostalgic_boyd [root@localhost ~]# docker commit -m "new" -a "daoke"

CLI应用程序的库Cobra

China☆狼群 提交于 2019-11-26 01:05:39
Cobra既是用于创建强大的现代CLI应用程序的库,也是用于生成应用程序和命令文件的程序。 许多使用最广泛的Go项目都是使用Cobra构建的,其中包括: Kubernetes Hugo rkt etcd Moby (former Docker) Docker (distribution) OpenShift Delve GopherJS CockroachDB Bleve ProjectAtomic (enterprise) GiantSwarm's swarm Nanobox/Nanopack rclone nehm Pouch 概述 Cobra是一个库,提供了一个简单的接口来创建功能强大的类似于git和go的现代CLI程序。 Cobra也是一个应用程序,帮助你生成应用程序脚手架,以快速开发基于Cobra的应用程序。 Cobra提供了: 简单的基于子命令的CLI:app server, app fetch 等。 完全兼容POSIX命令行参数flag(包括长版本和短版本) 嵌套子命令 全局,局部和及联的flags 使用cobra init appname&cobra add cmdname命令很容易生成应用程序 智能提示(app srver... did you mean app server?) 为命令和flag自动生成帮助 自动识别-h,--help标志来显示帮助信息等

Docker基础

不打扰是莪最后的温柔 提交于 2019-11-25 22:19:10
Docker Docker 属于 Linux 容器的一种封装,提供简单易用的容器使用接口。**它是目前最流行的 Linux 容器解决方案。 而 Linux 容器是 Linux 发展出了另一种虚拟化技术,简单来讲, Linux 容器不是模拟一个完整的操作系统,而是对进程进行隔离,相当于是在正常进程的外面套了一个保护层。对于容器里面的进程来说,它接触到的各种资源都是虚拟的,从而实现与底层系统的隔离。 Docker 将应用程序与该程序的依赖,打包在一个文件里面。运行这个文件,就会生成一个虚拟容器。程序在这个虚拟容器里运行,就好像在真实的物理机上运行一样。有了 Docker ,就不用担心环境问题。 总体来说, Docker 的接口相当简单,用户可以方便地创建和使用容器,把自己的应用放入容器。容器还可以进行版本管理、复制、分享、修改,就像管理普通的代码一样。 Docker的三个基本概念 - Image(镜像) - Container(容器) - Repository(仓库) 镜像是 Docker 运行容器的前提,仓库是存放镜像的场所,可见镜像更是 Docker 的核心。 Image (镜像) 那么镜像到底是什么呢? Docker 镜像可以看作是一个特殊的文件系统,除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些配置参数(如匿名卷、环境变量、用户等)

Docker Swarm群集配置实战(1)

橙三吉。 提交于 2019-11-25 21:51:51
前言: Docker Swarm 和 Docker Compose 一样,都是 Docker 官方容器编排项目,但不同的是,Docker Compose 是一个在单个服务器或主机上创建多个容器的工具,而 Docker Swarm 则可以在多个服务器或主机上创建容器集群服务,对于微服务的部署,显然 Docker Swarm 会更加适合。 从 Docker 1.12.0 版本开始,Docker Swarm 已经包含在 Docker 引擎中(docker swarm),并且已经内置了服务发现工具,我们就不需要像之前一样,再配置 Etcd 或者 Consul 来进行服务发现配置了。 Docker Swarm集群中有三个角色:manager(管理者);worker(实际工作者)以及service(服务)。 在上面的三个角色中,其本质上与我们公司的组织架构类似,有领导(manager),有搬砖的(worker),而领导下发给搬砖者的任务,就是Docker Swarm中的service(服务)。 需要注意的是,在一个Docker Swarm群集中,每台docker服务器的角色可以都是manager,但是,不可以都是worker,也就是说,不可以群龙无首,并且,参与群集的所有主机名,千万不可以冲突。 这里通过一个案例来展示Docker Swarm集群的配置。 博文大纲: 一、环境准备 二