1. 程式人生 > >TensorFlow 從入門到精通(一):安裝和使用

TensorFlow 從入門到精通(一):安裝和使用

安裝過程

目前較為穩定的版本為 0.12,本文以此為例。其他版本請讀者自行甄別安裝步驟是否需要根據實際情況修改。
TensorFlow 支援以下幾種安裝方式:

  • PIP 安裝
  • 原始碼編譯安裝
  • Docker 映象安裝

PIP 安裝

PIP 是一種包管理系統,用於安裝和管理用 Python 寫的軟體包。 —— [ Python PIP ]

安裝 PIP

# Ubuntu/Linux 64-bit
$ sudo apt-get install python-pip python-dev

# CentOS, Fedora, RHEL
$ sudo yum install python-pip python-devel

# Mac OS X
$ sudo easy_install pip

安裝 TensorFlow

# Python 2
$ sudo pip install --upgrade $TF_BINARY_URL

# Python 3
$ sudo pip3 install --upgrade $TF_BINARY_URL

其中環境變數 TF_BINARY_URL 根據你的環境進行設定,典型選項如下:

# Ubuntu/Linux 64-bit, CPU only, Python 2.7
$ export TF_BINARY_URL=https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-0.12
.1-cp27-none-linux_x86_64.whl # Ubuntu/Linux 64-bit, GPU enabled, Python 2.7 # 需要 CUDA toolkit 8.0 和 CuDNN v5. 其他版本只能用原始碼方式安裝 $ export TF_BINARY_URL=https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow_gpu-0.12.1-cp27-none-linux_x86_64.whl # Mac OS X, CPU only, Python 2.7: $ export TF_BINARY_URL=https://storage.googleapis
.com/tensorflow/mac/cpu/tensorflow-0.12.1-py2-none-any.whl # Mac OS X, GPU enabled, Python 2.7: $ export TF_BINARY_URL=https://storage.googleapis.com/tensorflow/mac/gpu/tensorflow_gpu-0.12.1-py2-none-any.whl # Ubuntu/Linux 64-bit, CPU only, Python 3.4 $ export TF_BINARY_URL=https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-0.12.1-cp34-cp34m-linux_x86_64.whl # Ubuntu/Linux 64-bit, GPU enabled, Python 3.4 # 需要 CUDA toolkit 8.0 和 CuDNN v5. 其他版本只能用原始碼方式安裝 $ export TF_BINARY_URL=https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow_gpu-0.12.1-cp34-cp34m-linux_x86_64.whl # Ubuntu/Linux 64-bit, CPU only, Python 3.5 $ export TF_BINARY_URL=https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-0.12.1-cp35-cp35m-linux_x86_64.whl # Ubuntu/Linux 64-bit, GPU enabled, Python 3.5 # Requires CUDA toolkit 8.0 and CuDNN v5. For other versions, see "Installing from sources" below. $ export TF_BINARY_URL=https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow_gpu-0.12.1-cp35-cp35m-linux_x86_64.whl # Mac OS X, CPU only, Python 3.4 or 3.5: $ export TF_BINARY_URL=https://storage.googleapis.com/tensorflow/mac/cpu/tensorflow-0.12.1-py3-none-any.whl # Mac OS X, GPU enabled, Python 3.4 or 3.5: $ export TF_BINARY_URL=https://storage.googleapis.com/tensorflow/mac/gpu/tensorflow_gpu-0.12.1-py3-none-any.whl

我的做法是先把 whl 檔案下載到本地,然後拷貝到其他機器上安裝。
執行記錄如下:

# pip install tensorflow_gpu-0.12.1-cp27-none-linux_x86_64.whl
You are using pip version 7.1.0, however version 9.0.1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
Processing ./tensorflow_gpu-0.12.1-cp27-none-linux_x86_64.whl
Collecting mock>=2.0.0 (from tensorflow-gpu==0.12.1)
  Using cached mock-2.0.0-py2.py3-none-any.whl
Collecting protobuf>=3.1.0 (from tensorflow-gpu==0.12.1)
  Downloading protobuf-3.1.0.post1-py2.py3-none-any.whl (347kB)
    100% |████████████████████████████████| 348kB 164kB/s
Collecting numpy>=1.11.0 (from tensorflow-gpu==0.12.1)
  Downloading numpy-1.11.3.zip (4.7MB)
    100% |████████████████████████████████| 4.7MB 34kB/s
Collecting wheel (from tensorflow-gpu==0.12.1)
  Downloading wheel-0.29.0-py2.py3-none-any.whl (66kB)
    100% |████████████████████████████████| 69kB 58kB/s
Collecting six>=1.10.0 (from tensorflow-gpu==0.12.1)
  Downloading six-1.10.0-py2.py3-none-any.whl
Collecting funcsigs>=1 (from mock>=2.0.0->tensorflow-gpu==0.12.1)
  Downloading funcsigs-1.0.2-py2.py3-none-any.whl
Collecting pbr>=0.11 (from mock>=2.0.0->tensorflow-gpu==0.12.1)
  Downloading pbr-1.10.0-py2.py3-none-any.whl (96kB)
    100% |████████████████████████████████| 98kB 93kB/s
Requirement already satisfied (use --upgrade to upgrade): setuptools in /usr/lib/python2.7/site-packages (from protobuf>=3.1.0->tensorflow-gpu==0.12.1)
Installing collected packages: funcsigs, six, pbr, mock, protobuf, numpy, wheel, tensorflow-gpu
  Found existing installation: six 1.9.0
    Uninstalling six-1.9.0:
      Successfully uninstalled six-1.9.0
  Running setup.py install for numpy
Successfully installed funcsigs-1.0.2 mock-2.0.0 numpy-1.11.3 pbr-1.10.0 protobuf-3.1.0.post1 six-1.10.0 tensorflow-gpu-0.12.1 wheel-0.29.0

從執行記錄可以看到 pip 安裝 TensorFlow 時會自動將依賴安裝。如果你需要在另一臺沒有網路的機器上安裝 TensorFlow,需要將依賴打包拷過去才能正常執行。

PIP 安裝的優缺點

優點:應該是幾種安裝方法中最快的一種
缺點:不能靈活定製,作業系統、GPU 硬體、CUDA 版本、cuDNN 版本必須與官方標稱一致

原始碼編譯安裝

本小節的安裝方法適合對 TensorFlow 做定製的場景。

下載原始碼

$ git clone --recurse-submodules https://github.com/tensorflow/tensorflow

安裝 Bazel

配置

$ ./configure
根據你的實際情況如實回答一系列問題。回答之後 bazel 會對環境進行配置,此時需要機器可以訪問外網,便於獲取一些編譯依賴包。一些包可能需要翻牆。

編譯

僅 CPU 支援,無 GPU 支援:
$ bazel build -c opt //tensorflow/tools/pip_package:build_pip_package
有 GPU 支援:
$ bazel build -c opt --config=cuda //tensorflow/tools/pip_package:build_pip_package
- 生成 pip 安裝包
$ bazel-bin/tensorflow/tools/pip_package/build_pip_package /tmp/tensorflow_pkg
- 使用 PIP 工具安裝
$ pip install /tmp/tensorflow_pkg/tensorflow-x.x.x-py2-none-linux_x86_64.whl

原始碼安裝的優缺點

優點:靈活定製,可按需增加新特性
缺點:門檻高,配置編譯環境耗時較長

Docker 映象安裝

Docker 是一個開源的應用容器引擎,讓開發者可以打包他們的應用以及依賴包到一個可移植的容器中,然後釋出到任何流行的 Linux 機器上,也可以實現虛擬化。 —— [ Docker ]

當你通過 Docker 安裝和執行 TensorFlow 時,它與你機器上之前已安裝的軟體包完全隔離。

官方映象

官方提供了 4 個 Docker 映象可供使用:

  • 僅 CPU 版,無開發環境:gcr.io/tensorflow/tensorflow
  • 僅 CPU 版,有開發環境:gcr.io/tensorflow/tensorflow:latest-devel
  • 支援 GPU,無開發環境:gcr.io/tensorflow/tensorflow:latest-gpu
  • 支援 GPU,有開發環境:gcr.io/tensorflow/tensorflow:latest-devel-gpu

另外提供了對應某個釋出版本的映象,只需將上面 tag 中 latest 替換為釋出版本號。安裝詳細步驟如下:

建立 Docker 使用者組

允許普通使用者無需 sudo 即可啟動容器。

$ usermod -a -G docker YOURNAME

啟動 Docker 容器

選擇上述 4 個映象中的一個,建立容器。第一次執行該命令時會自動下載映象,以後不需要再次下載。

$ docker run -it gcr.io/tensorflow/tensorflow

如果你使用了支援 GPU 的容器,在執行該命令時需要增加額外引數,目的是將宿主機上的 GPU 裝置暴露給容器。使用 TensorFlow 原始碼中提供的指令碼可以實現該功能

$ cd $TENSORFLOW_ROOT/tensorflow/tools/docker/
$ ./docker_run_gpu.sh gcr.io/tensorflow/tensorflow:gpu

好奇心驅使我們檢視該指令碼的具體細節:

#!/usr/bin/env bash
set -e

export CUDA_HOME=${CUDA_HOME:-/usr/local/cuda}

if [ ! -d ${CUDA_HOME}/lib64 ]; then
  echo "Failed to locate CUDA libs at ${CUDA_HOME}/lib64."
  exit 1
fi

export CUDA_SO=$(\ls /usr/lib/x86_64-linux-gnu/libcuda.* | \
                    xargs -I{} echo '-v {}:{}')
export DEVICES=$(\ls /dev/nvidia* | \
                    xargs -I{} echo '--device {}:{}')

if [[ "${DEVICES}" = "" ]]; then
  echo "Failed to locate NVidia device(s). Did you want the non-GPU container?"
  exit 1
fi

docker run -it $CUDA_SO $DEVICES "[email protected]"

主要做了幾件事:

  • 暴露宿主機的 CUDA_HOME 環境變數給容器使用;
  • 暴露宿主機的 libcuda.* 動態連結庫給容器訪問;
  • 暴露宿主機的 /dev/nvidia* 裝置給容器訪問;

Docker 映象安裝的優缺點

優點:適合在大量相同環境機器構成的叢集上批量部署
缺點:有牆的孩子像根草,增加了 Docker 學習成本

使用過程

假設讀者已經按照上述步驟安裝了 GPU 版本 TensorFlow 0.12,接下來可以執行經典例程(MNIST):

# python -m tensorflow.models.image.mnist.convolutional

K40 上執行輸出

I tensorflow/stream_executor/dso_loader.cc:111] successfully opened CUDA library libcublas.so locally
I tensorflow/stream_executor/dso_loader.cc:111] successfully opened CUDA library libcudnn.so locally
I tensorflow/stream_executor/dso_loader.cc:111] successfully opened CUDA library libcufft.so locally
I tensorflow/stream_executor/dso_loader.cc:111] successfully opened CUDA library libcuda.so.1 locally
I tensorflow/stream_executor/dso_loader.cc:111] successfully opened CUDA library libcurand.so locally
Successfully downloaded train-images-idx3-ubyte.gz 9912422 bytes.
Successfully downloaded train-labels-idx1-ubyte.gz 28881 bytes.
Successfully downloaded t10k-images-idx3-ubyte.gz 1648877 bytes.
Successfully downloaded t10k-labels-idx1-ubyte.gz 4542 bytes.
Extracting data/train-images-idx3-ubyte.gz
Extracting data/train-labels-idx1-ubyte.gz
Extracting data/t10k-images-idx3-ubyte.gz
Extracting data/t10k-labels-idx1-ubyte.gz
I tensorflow/core/common_runtime/gpu/gpu_device.cc:951] Found device 0 with properties:
name: Tesla K40m
major: 3 minor: 5 memoryClockRate (GHz) 0.745
pciBusID 0000:02:00.0
Total memory: 11.25GiB
Free memory: 11.12GiB
W tensorflow/stream_executor/cuda/cuda_driver.cc:572] creating context when one is currently active; existing: 0x4c81230
I tensorflow/core/common_runtime/gpu/gpu_device.cc:951] Found device 1 with properties:
name: Tesla K40m
major: 3 minor: 5 memoryClockRate (GHz) 0.745
pciBusID 0000:03:00.0
Total memory: 11.25GiB
Free memory: 11.12GiB
I tensorflow/core/common_runtime/gpu/gpu_device.cc:972] DMA: 0 1
I tensorflow/core/common_runtime/gpu/gpu_device.cc:982] 0:   Y Y
I tensorflow/core/common_runtime/gpu/gpu_device.cc:982] 1:   Y Y
I tensorflow/core/common_runtime/gpu/gpu_device.cc:1041] Creating TensorFlow device (/gpu:0) -> (device: 0, name: Tesla K40m, pci bus id: 0000:02:00.0)
I tensorflow/core/common_runtime/gpu/gpu_device.cc:1041] Creating TensorFlow device (/gpu:1) -> (device: 1, name: Tesla K40m, pci bus id: 0000:03:00.0)
Initialized!
Step 0 (epoch 0.00), 67.1 ms
Minibatch loss: 12.054, learning rate: 0.010000
Minibatch error: 90.6%
Validation error: 84.6%
Step 100 (epoch 0.12), 14.2 ms
Minibatch loss: 3.303, learning rate: 0.010000
Minibatch error: 6.2%
Validation error: 7.0%
Step 200 (epoch 0.23), 13.8 ms
Minibatch loss: 3.481, learning rate: 0.010000
Minibatch error: 12.5%
Validation error: 4.0%
……
Step 8500 (epoch 9.89), 13.9 ms
Minibatch loss: 1.618, learning rate: 0.006302
Minibatch error: 1.6%
Validation error: 0.8%
Test error: 0.8%

M40 上執行輸出

I tensorflow/stream_executor/dso_loader.cc:111] successfully opened CUDA library libcublas.so locally
I tensorflow/stream_executor/dso_loader.cc:111] successfully opened CUDA library libcudnn.so.5 locally
I tensorflow/stream_executor/dso_loader.cc:111] successfully opened CUDA library libcufft.so locally
I tensorflow/stream_executor/dso_loader.cc:111] successfully opened CUDA library libcuda.so.1 locally
I tensorflow/stream_executor/dso_loader.cc:111] successfully opened CUDA library libcurand.so locally
Successfully downloaded train-images-idx3-ubyte.gz 9912422 bytes.
Successfully downloaded train-labels-idx1-ubyte.gz 28881 bytes.
Successfully downloaded t10k-images-idx3-ubyte.gz 1648877 bytes.
Successfully downloaded t10k-labels-idx1-ubyte.gz 4542 bytes.
Extracting data/train-images-idx3-ubyte.gz
Extracting data/train-labels-idx1-ubyte.gz
Extracting data/t10k-images-idx3-ubyte.gz
Extracting data/t10k-labels-idx1-ubyte.gz
I tensorflow/core/common_runtime/gpu/gpu_device.cc:951] Found device 0 with properties:
name: Tesla M40
major: 5 minor: 2 memoryClockRate (GHz) 1.112
pciBusID 0000:06:00.0
Total memory: 11.18GiB
Free memory: 11.07GiB
W tensorflow/stream_executor/cuda/cuda_driver.cc:572] creating context when one is currently active; existing: 0x37b6440
I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:925] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero
I tensorflow/core/common_runtime/gpu/gpu_device.cc:951] Found device 1 with properties:
name: Tesla M40
major: 5 minor: 2 memoryClockRate (GHz) 1.112
pciBusID 0000:87:00.0
Total memory: 11.18GiB
Free memory: 11.07GiB
I tensorflow/core/common_runtime/gpu/gpu_device.cc:855] cannot enable peer access from device ordinal 0 to device ordinal 1
I tensorflow/core/common_runtime/gpu/gpu_device.cc:855] cannot enable peer access from device ordinal 1 to device ordinal 0
I tensorflow/core/common_runtime/gpu/gpu_device.cc:972] DMA: 0 1
I tensorflow/core/common_runtime/gpu/gpu_device.cc:982] 0:   Y N
I tensorflow/core/common_runtime/gpu/gpu_device.cc:982] 1:   N Y
I tensorflow/core/common_runtime/gpu/gpu_device.cc:1041] Creating TensorFlow device (/gpu:0) -> (device: 0, name: Tesla M40, pci bus id: 0000:06:00.0)
I tensorflow/core/common_runtime/gpu/gpu_device.cc:1041] Creating TensorFlow device (/gpu:1) -> (device: 1, name: Tesla M40, pci bus id: 0000:87:00.0)
Initialized!
Step 0 (epoch 0.00), 23.6 ms
Minibatch loss: 12.054, learning rate: 0.010000
Minibatch error: 90.6%
Validation error: 84.6%
Step 100 (epoch 0.12), 6.7 ms
Minibatch loss: 3.297, learning rate: 0.010000
Minibatch error: 7.8%
Validation error: 7.3%
Step 200 (epoch 0.23), 6.5 ms
Minibatch loss: 3.448, learning rate: 0.010000
Minibatch error: 10.9%
Validation error: 3.8%
……
Step 8500 (epoch 9.89), 6.4 ms
Minibatch loss: 1.605, learning rate: 0.006302
Minibatch error: 0.0%
Validation error: 0.9%
Test error: 0.8%

GTX1080 上執行輸出

I tensorflow/stream_executor/dso_loader.cc:108] successfully opened CUDA library libcublas.so locally
I tensorflow/stream_executor/dso_loader.cc:108] successfully opened CUDA library libcudnn.so locally
I tensorflow/stream_executor/dso_loader.cc:108] successfully opened CUDA library libcufft.so locally
I tensorflow/stream_executor/dso_loader.cc:108] successfully opened CUDA library libcuda.so.1 locally
I tensorflow/stream_executor/dso_loader.cc:108] successfully opened CUDA library libcurand.so locally
Successfully downloaded train-images-idx3-ubyte.gz 9912422 bytes.
Successfully downloaded train-labels-idx1-ubyte.gz 28881 bytes.
Successfully downloaded t10k-images-idx3-ubyte.gz 1648877 bytes.
Successfully downloaded t10k-labels-idx1-ubyte.gz 4542 bytes.
Extracting data/train-images-idx3-ubyte.gz
Extracting data/train-labels-idx1-ubyte.gz
Extracting data/t10k-images-idx3-ubyte.gz
Extracting data/t10k-labels-idx1-ubyte.gz
I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:925] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero
I tensorflow/core/common_runtime/gpu/gpu_init.cc:118] Found device 0 with properties: 
name: GeForce GTX 1080
major: 6 minor: 1 memoryClockRate (GHz) 1.8475
pciBusID 0000:01:00.0
Total memory: 7.92GiB
Free memory: 7.48GiB
I tensorflow/core/common_runtime/gpu/gpu_init.cc:138] DMA: 0 
I tensorflow/core/common_runtime/gpu/gpu_init.cc:148] 0:   Y 
I tensorflow/core/common_runtime/gpu/gpu_device.cc:868] Creating TensorFlow device (/gpu:0) -> (device: 0, name: GeForce GTX 1080, pci bus id: 0000:01:00.0)
Initialized!
Step 0 (epoch 0.00), 8.2 ms
Minibatch loss: 12.054, learning rate: 0.010000
Minibatch error: 90.6%
Validation error: 84.6%
Step 100 (epoch 0.12), 5.1 ms
Minibatch loss: 3.289, learning rate: 0.010000
Minibatch error: 6.2%
Validation error: 7.0%
Step 200 (epoch 0.23), 5.1 ms
Minibatch loss: 3.476, learning rate: 0.010000
Minibatch error: 12.5%
Validation error: 3.7%
……
Step 8500 (epoch 9.89), 4.9 ms
Minibatch loss: 1.612, learning rate: 0.006302
Minibatch error: 0.0%
Validation error: 1.0%
Test error: 0.8%

P40 上輸出

$python -m tensorflow.models.image.mnist.convolutional
I tensorflow/stream_executor/dso_loader.cc:128] successfully opened CUDA library libcublas.so locally
I tensorflow/stream_executor/dso_loader.cc:128] successfully opened CUDA library libcudnn.so locally
I tensorflow/stream_executor/dso_loader.cc:128] successfully opened CUDA library libcufft.so locally
I tensorflow/stream_executor/dso_loader.cc:128] successfully opened CUDA library libcuda.so.1 locally
I tensorflow/stream_executor/dso_loader.cc:128] successfully opened CUDA library libcurand.so locally
Successfully downloaded train-images-idx3-ubyte.gz 9912422 bytes.
Successfully downloaded train-labels-idx1-ubyte.gz 28881 bytes.
Successfully downloaded t10k-images-idx3-ubyte.gz 1648877 bytes.
Successfully downloaded t10k-labels-idx1-ubyte.gz 4542 bytes.
Extracting data/train-images-idx3-ubyte.gz
Extracting data/train-labels-idx1-ubyte.gz
Extracting data/t10k-images-idx3-ubyte.gz
Extracting data/t10k-labels-idx1-ubyte.gz
I tensorflow/core/common_runtime/gpu/gpu_device.cc:885] Found device 0 with properties:
name: Tesla P40
major: 6 minor: 1 memoryClockRate (GHz) 1.531
pciBusID 0000:06:00.0
Total memory: 22.41GiB
Free memory: 22.24GiB
W tensorflow/stream_executor/cuda/cuda_driver.cc:590] creating context when one is currently active; existing: 0x3dbfc90
I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:937] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero
I tensorflow/core/common_runtime/gpu/gpu_device.cc:885] Found device 1 with properties:
name: Tesla P40
major: 6 minor: 1 memoryClockRate (GHz) 1.531
pciBusID 0000:87:00.0
Total memory: 22.41GiB
Free memory: 22.24GiB
I tensorflow/core/common_runtime/gpu/gpu_device.cc:777] Peer access not supported between device ordinals 0 and 1
I tensorflow/core/common_runtime/gpu/gpu_device.cc:777] Peer access not supported between device ordinals 1 and 0
I tensorflow/core/common_runtime/gpu/gpu_device.cc:906] DMA: 0 1
I tensorflow/core/common_runtime/gpu/gpu_device.cc:916] 0:   Y N
I tensorflow/core/common_runtime/gpu/gpu_device.cc:916] 1:   N Y
I tensorflow/core/common_runtime/gpu/gpu_device.cc:975] Creating TensorFlow device (/gpu:0) -> (device: 0, name: Tesla P40, pci bus id: 0000:06:00.0)
I tensorflow/core/common_runtime/gpu/gpu_device.cc:975] Creating TensorFlow device (/gpu:1) -> (device: 1, name: Tesla P40, pci bus id: 0000:87:00.0)
Initialized!
Step 0 (epoch 0.00), 962.4 ms
Minibatch loss: 8.334, learning rate: 0.010000
Minibatch error: 85.9%
Validation error: 84.6%
Step 100 (epoch 0.12), 4.6 ms
Minibatch loss: 3.249, learning rate: 0.010000
Minibatch error: 6.2%
Validation error: 7.6%
Step 200 (epoch 0.23), 4.5 ms
Minibatch loss: 3.342, learning rate: 0.010000
Minibatch error: 6.2%
Validation error: 4.3%
……
Step 8500 (epoch 9.89), 4.5 ms
Minibatch loss: 1.614, learning rate: 0.006302
Minibatch error: 1.6%
Validation error: 0.8%
Test error: 0.8%

注意事項

(1) 如果需要 GPU,那麼首先安裝 CUDA 和 cuDNN。
(2) GTX1080、P40 為 Pascal 架構,需要安裝 CUDA 8.0 + cuDNN 5.1.5 才能正常執行。
(3) TensorFlow 從 0.8.0rc 開始支援多機多卡分散式計算,而更早的版本只支援單計算節點。

相關推薦

TensorFlow 入門精通安裝使用

安裝過程 目前較為穩定的版本為 0.12,本文以此為例。其他版本請讀者自行甄別安裝步驟是否需要根據實際情況修改。 TensorFlow 支援以下幾種安裝方式: PIP 安裝 原始碼編譯安裝 Docker 映象安裝 PIP 安裝

dotConnect for Oracle入門指南安裝

【下載dotConnect for Oracle最新版本】 dotConnect for Oracle(原名OraDirect.NET)建立在ADO.NET技術上,為基於Oracle資料庫的應用程式提供完整的解決方案。它為設計應用程式結構帶來了新的方法,提高工作效率,使資料庫應用程式的開發更簡便。 d

寫給前端同學的C++入門教程概述環境搭建

說明:本人是前端er,因為最近對 UE4(一個遊戲開發引擎)產生了興趣,而這個引擎源開發遊戲時需要用到 C++ ,所以就開始入坑 C++ 了。現將自己學習 C++ 的筆記整理並分享出來,以便一些想入門 C++ 的朋友一起學習,將會以系列教程的的形式來編寫,這是第一篇。 ## C++ 是什麼? 我們都知道,目

Linux下nodejs安裝使用

一、安裝 一共有三種安裝方式,由於其他兩種不太方便,因此只介紹第一種二進位制檔案安裝。 1、首先官網下載nodejs安裝壓縮包。 2、下載完成後用ftp上傳到Linux任意資料夾即可。我的是/home/chuan/chuansoft。然後進入到

CUDA入門精通環境搭建

NVIDIA於2006年推出CUDA(Compute Unified Devices Architecture),可以利用其推出的GPU進行通用計算,將平行計算從大型叢集擴充套件到了普通顯示卡,使得使用者只需要一臺帶有Geforce顯示卡的筆記本就能跑較大規模的並行處理程式

Tensorflow學習之路MNIST資料集開始

MNIST資料集簡單介紹: MNIST 資料集可在 http://yann.lecun.com/exdb/mnist/ 獲取, 它包含了四個部分: Training set images: train-images-idx3-ubyte.gz (9.9 MB,

Asp.net Core IdentityServer4 入門教程概念解析

什麽 ica 統一 理解 給他 分享 目錄 .net 系統 目錄 1、IdentityServer4 是什麽 2、什麽是OpenID和OAuth 2.0協議 3、IdentityServer4 可以用來做什麽 其他 1、IdentityServer4 是什麽 Ident

tensorflow安裝在Spyder上

參考:https://www.tensorflow.org/install/install_windows?hl=zh-cn 最簡單的是,安裝在anaconda上。   一 anaconda設定 把python版本改成3.5或3.6   二 anaconda上安裝tensorf

爬蟲入門系列快速理解HTTP協議

爬蟲入門系列目錄: 4月份給自己挖一個爬蟲系列的坑,主要涉及HTTP 協議、正則表示式、爬蟲框架 Scrapy、訊息佇列、資料庫等內容。 爬蟲的基本原理是模擬瀏覽器進行 HTTP 請求,理解 HTTP 協議是寫爬蟲的必備基礎,招聘網站的爬蟲崗位也赫然寫著熟練掌握HTTP協議規範,寫

TensorFlow深度學習實戰AlexNet對MNIST資料集進行分類

概要 進來一段時間在看深度學習中經典的CNN模型相關論文。同時,為了督促自己學習TensorFlow,通讀論文之後開始,利用TensorFlow實現各個模型,復現相關實驗。這是第一篇論文講解的是AlexNet,論文下載網址為:ImageNet Classific

MongoDB入門系列基礎概念安裝

概述   MongoDB是目前非常流行的一種非關係型資料庫,作為入門系列的第一篇本篇文章主要介紹Mongdb的基礎概念知識包括命名規則、資料型別、功能以及安裝等。 環境: OS:Windows Version:3.4 一、安裝 1.下載解壓 在官網下載對應作業系統版本的安裝包,然後解壓;

使用HAL庫、STM32CubeMXKeil 5開發入門教程點亮盞LED燈NUCLEO-F411RE

本教程以點亮一盞LED燈為目的為大家演示用STM32CubeMX、Keil、ST-Link開發STM32程式的一般方法。 一、學習前的準備工作 硬體:一塊STM32開發板,一個ST-Link;(我使用的開發板是NUCLEO-F411RE) 軟體:裝好ST-

安卓開發入門Android Studio匯入ApiDemos

引言 本人程式設計師,之前做網站比較多,nodejs/express+html/css+mysql,再之前也做過Java開發,程式設計上還是有豐富的經驗。 在持續的實戰中,發現想做產品的話,前端似乎更重要,因為前端才能看到產品形態。雖然說移動端形勢已經每況愈

Spring Boot / Spring MVC 入門實踐 環境搭建與第一個專案

宣告 本系列文章系本人原創,歡迎轉載,轉載請註明出處。 本系列文章通過具體的例子,介紹如何通過Spring Boot來幫助簡化Spring MVC開發Web Application的過程,旨在通過具體的實踐,使讀者能夠入門利用Spring Boot開發Web

Ansible入門環境的準備

在正式開始使用之前需要準備如下環境: ansible的線上安裝 安裝機器: 172.18.18.120 Centos版本: yum -y install ansible Ubuntu版本:sudo apt-get update     &nb

webUI自動化測試框架簡介Demo入門

前言:selenium和webdriver是目前主流的ui自動化測試框架之一,selenium又稱為selenium RC,基本原理為js注入,而webdriver是直接利用了瀏覽器的native support(廠商支援)來操作瀏覽器,所以,對於不同瀏覽器,必須依賴一個特

Mybatis入門示例基礎程式碼

本文為轉載內容 一、開發環境及前期準備: win7 、JDK1.7、 Intellij Idea、mybatis3.2.8 1、前期資料準備: 新建一個名字叫mybatis的資料庫,建立一個User表,匯入一條資料。 建表指

手把手做一個JSP入門程式程式基本介紹JSP

胡扯   說好的不學jsp,結果今天還是學了。主要還是為了後面的java後臺的學習啦。為了更好的掌握知識,那我們就來寫一個簡單的jsp入門程式吧!這只是一個簡單的入門小程式,所以就沒有太多強大的功能。入門啦,入門啦。對了,由於是作為一個入門程式,所以裡面會有較

SiameseFC-TensorFlow 程式碼詳細註解預訓練模型下載轉換測試以及結果視覺化(轉載)

這篇部落格主要的目的就是簡單地跑一下實驗,讓下載的程式碼能用預訓練的模型去測試單個視訊,並對結果視覺化,從視覺上感受一下這個跟蹤演算法的效果,至於如果要自己訓練自己的模型該如何準備訓練資料,如何設計自己的模型,如何訓練自己的模型,以及如何評估自己的模型等,這些問題都將在後面的

Prometheus 入門教程Prometheus 快速入門

# 文章首發於【陳樹義】公眾號,點選跳轉到原文:https://mp.weixin.qq.com/s/ZXlBPHGcWeYh2hjBzacc3A Prometheus 是任何一個高階工程師必須要掌握的技能。那麼如何從零部署一套 Prometheus 監控系統呢?本篇文章將從 Prometheus 的原理講