Jermineの博客

Jermineの博客

书不记,熟读可记;义不精,细思可精;惟有志不立,直是无着力处。

  • 首页
  • Github
  • Go语言标准库
  • Nyx
  • 关于我

Docker中使用深度学习框架并支持GPU加速

Docker中使用深度学习框架并支持GPU加速

启动一个支持gpu的容器

docker run --runtime=nvidia --restart=always --name tensorflow  -dit -v `pwd`:/app -w /app  nvidia/cuda:9.0-cudnn7-runtime-ubuntu16.04

进入容器

docker exec -it tensorflow bash

设置源


Jermine@ubuntu:~$ cat > /etc/apt/sources.list

deb http://mirrors.aliyun.com/ubuntu/ xenial main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse
##测试版源
deb http://mirrors.aliyun.com/ubuntu/ xenial-proposed main restricted universe multiverse

更新源

sudo apt-get update 

安装相关依赖

# 导入环境变量
 TENSORFLOW_VERSION=1.7.0 
 
 apt-get update -y  && apt-get install -y --no-install-recommends python3 python3-pip  protobuf-compiler;\
    pip3 install --upgrade pip ;\
    python3 -V && pip3 -V ;\
    pip3  --no-cache-dir install setuptools  ;\
    pip3 --no-cache-dir install  \
    https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow_gpu-${TENSORFLOW_VERSION}-cp35-cp35m-linux_x86_64.whl ;\
    apt-get autoremove && apt-get autoclean ;\
    rm -rf /var/lib/apt/lists/*

测试程序

import numpy as np
np.random.seed(0)
import tensorflow as tf
import time

N,D = 6000,8000

with tf.device('/cpu:0'):
    x = tf.placeholder(tf.float32)
    y = tf.placeholder(tf.float32)
    z = tf.placeholder(tf.float32)

    a = x * y
    b = a + z
    c = tf.reduce_sum(b)

grad_x, grad_y, grad_z = tf.gradients(c, [x,y,z])

start_time = time.time()
with tf.Session() as sess:
    values = {
        x: np.random.randn(N, D),
        y: np.random.randn(N, D),
        z: np.random.randn(N, D),
    }
    out = sess.run([c, grad_x, grad_y, grad_z],
                   feed_dict=values)
    c_val, grad_x_val, grad_y_val, grad_z_val = out
elapsed = time.time() - start_time
print(time.strftime("%H:%M:%S", time.gmtime(elapsed)))
print("exit 0")

将其存为 test_gpu_for_tensorflow.py , 使用 python3 test_gpu_for_tensorflow.py 执行结果如下:

2017年08月23日

Set Mirrors for Pi - 树莓派配置加速镜像

执行如下命令完成配置

root@raspi:/home/pi# cat > /etc/apt/sources.list
deb http://mirrors.ustc.edu.cn/raspbian/raspbian/ stretch main contrib non-free rpi
#deb-src http://mirrors.ustc.edu.cn/raspbian/raspbian/ stretch main contrib non-free rpi

然后执行

sudo apt update

2017年08月21日

Remmina一个Linux下功能丰富的远程桌面共享工具

Remmina 是一款在 Linux 和其他类 Unix 系统下的自由开源、功能丰富、强大的远程桌面客户端,它用 GTK+ 3 编写而成。它适用于那些需要远程访问及使用许多计算机的系统管理员和在外出行人员。

2017年07月31日

Setup Docker for Pi - 树莓派安装docker

安装步骤

先下载对应的deb包:

wget https://download.docker.com/linux/ubuntu/dists/bionic/pool/stable/arm64/docker-ce_18.06.0~ce~3-0~ubuntu_arm64.deb 

通过dpkg进行安装

直接 dpkg -i *.deb 进行安装

然后设置开机启动

systemctl enable docker

配置镜像加速:

cat > /etc/docker/daemon.json
{
    "registry-mirrors": [
        "https://2nmcv9vp.mirror.aliyuncs.com"
    ],
    "insecure-registries": []
}

重启服务

systemctl restart docker

2017年07月11日

Call Opencv Used Python3 - 通过docker在python3.6下调用opencv3.4.1

根据之前build好的镜像,启动容器

启动一个带有python3.6 和 opencv3.4.1的环境

docker run -itd --name cv -v `pwd`/app:/app --net host -w /app jermine/opencv:alpine-arm64

进入容器

docker exec -it cv sh

2017年06月21日

Certificate Signed by Unknown Authority Error

Certificate signed by unknown authority error

x509: certificate signed by unknown authority This error message means that you do not have a trusted certificate. You need to trust the default certificates generated during your Docker Trusted Registry (DTR) installation.

You can do so by running these commands on the nodes from where you want to access your DTR (be sure to replace with your DTR Domain name.):

CentOS/RHEL

export DOMAIN_NAME=hub.fi.vdo.pub
export TCP_PORT=443
openssl s_client -connect $DOMAIN_NAME:$TCP_PORT -showcerts </dev/null 2>/dev/null | openssl x509 -outform PEM | sudo tee /etc/pki/ca-trust/source/anchors/$DOMAIN_NAME.crt
update-ca-trust
systemctl restart docker.service

Ubuntu

2017年05月13日

Git设置和取消代理

git 设置和取消代理

本地开启VPN后,GIt也需要设置代理,才能正常略过GFW,访问goole code等网站

代理设置如下(可复制):

注:git 设置 socks5 代理 加速。只对http,https生效,对ssh仍然无效

2017年03月30日

Golang生成C/C++可调用的动态库.so和静态库

Golang类似于C的静态语言,效率也接近于C,如果Golang也可以导出可供C调用的库,那可以和很多高级语言say goodbye了,goodbye似乎又有点武断,但至少说,Golang可以做很多事,而且效率优于很多高级语言,这样说应该没有问题。 接下来,就从三个方面分别来介绍Golang中关于库的使用。

2017年03月29日

Linux保存依赖安装包到指定目录(用于离线安装)

经常与一些保密级别较高的企业打交道,他们使用的网络都是内部网络,根本无法访问到公网,但是部署一些项目时难免会有依赖包需要离线安装。遇到这种问题通常都是手动去下载依赖的库,然后离线安装,但是你无法判断下载的这个依赖库是否还依赖其他库,如果是手动去下载安装将耗费很长时间(他们导入任何文件都要走流程,一次就需要4h左右),为了改善这种情况,就需要将所有依赖都离线下载到本,本文将介绍如何将Centos和Ubuntu的依赖包保存到本地。

2017年03月21日

GDB in Docker for Debug - 如何在Docker容器内部使用gdb进行debug

安全计算模式(secure computing mode,seccomp)是 Linux 内核功能,可以使用它来限制容器内可用的操作。

Docker 的默认 seccomp 配置文件是一个白名单,它指定了允许的调用。

2017年03月08日
  • ««
  • «
  • 5
  • 6
  • 7
  • 8
  • 9
  • »
  • »»

标签

  • agent3
  • ai4
  • ai agent1
  • aider1
  • ai编程1
  • all1
  • alpine linux1
  • arm6
  • arm646
  • autossh2
  • c/c++2
  • ceph1
  • chart1
  • claude code7
  • cli1
  • cloudflare1
  • code-review1
  • codex2
  • conda1
  • cross-compiling1
  • cuda4
  • cursor2
  • database1
  • debug1
  • deeplearn3
  • devops3
  • dns1
  • doas1
  • docker19
  • dotnet core1
  • editor1
  • efficiency4
  • fuse1
  • gdb1
  • gemini cli1
  • git6
  • go1
  • golang6
  • gpu1
  • harbor3
  • helm1
  • hud1
  • influxdb1
  • jenkins1
  • jermine1
  • jira2
  • k8s3
  • kimi1
  • kubernates2
  • kubernetes3
  • kvm5
  • ldap2
  • linux33
  • linux管理1
  • markdown1
  • mcp1
  • microservice1
  • mirrors1
  • mq1
  • music1
  • nexcloud1
  • nvida-docker1
  • nvidia3
  • openclaw1
  • opencv2
  • openshift2
  • openstack1
  • ppt1
  • prompt engineering1
  • proot-distro1
  • python3
  • raspberry-pi7
  • rdp1
  • registry1
  • reviewboard1
  • samba1
  • server4
  • shortcut keys1
  • skill1
  • sse1
  • ssh2
  • ssh-tunnel2
  • swap1
  • tensorflow3
  • termux1
  • tools5
  • ubuntu1
  • vs-code2
  • web1
  • websocket1
  • windows4
  • wsl1
  • zsh2
  • 交叉编译1
  • 产品经理1
  • 代理1
  • 关于我1
  • 写作1
  • 协议2
  • 反向代理1
  • 反向隧道1
  • 嵌入式1
  • 开发工具2
  • 开源1
  • 成本优化1
  • 故障排查1
  • 效率工具1
  • 敏捷开发1
  • 文件系统1
  • 武汉大学授课1
  • 端口转发1
  • 终端2
  • 编程工具1
  • 自动化1
  • 课程1
  • 跳板机1
  • 远程桌面1
  • 项目管理1

归档

标签云

agent ai ai agent aider ai编程 all alpine linux arm arm64 autossh c/c++ ceph chart claude code cli cloudflare code-review codex conda cross-compiling cuda cursor database debug deeplearn devops dns doas docker dotnet core editor efficiency fuse gdb gemini cli git go golang gpu harbor helm hud influxdb jenkins jermine jira k8s kimi kubernates kubernetes kvm ldap linux linux管理 markdown mcp microservice mirrors mq music nexcloud nvida-docker nvidia openclaw opencv openshift openstack ppt prompt engineering proot-distro python raspberry-pi rdp registry reviewboard samba server shortcut keys skill sse ssh ssh-tunnel swap tensorflow termux tools ubuntu vs-code web websocket windows wsl zsh 交叉编译 产品经理 代理 关于我 写作 协议 反向代理 反向隧道 嵌入式 开发工具 开源 成本优化 故障排查 效率工具 敏捷开发 文件系统 武汉大学授课 端口转发 终端 编程工具 自动化 课程 跳板机 远程桌面 项目管理
RSS 订阅

Powered by Jermine © 2026 Jermineの博客