TensorFlow學習日記38

1.啓動tensorboard
解析:tensorboard --logdir ./data/autograph/

2.Tensorflow自動微分機制
解析:Tensorflow一般使用梯度磁帶tf.GradientTape來記錄正向運算過程,然後反播磁帶自動得到梯度值。這種利用tf.GradientTape求微分的方法叫做Tensorflow的自動微分機制。

3.tf.GradientTape()求二階導數
解析:

with tf.GradientTape() as tape2:
    with tf.GradientTape() as tape1:   
        y = a*tf.pow(x,2) + b*x + c
    dy_dx = tape1.gradient(y,x)   
dy2_dx2 = tape2.gradient(dy_dx,x)
print(dy2_dx2)

4.使用autograph求導數
解析:

@tf.function
def f(x):   
    a = tf.constant(1.0)
    b = tf.constant(-2.0)
    c = tf.constant(1.0)
    # 自變量轉換成tf.float32
    x = tf.cast(x,tf.float32)
    with tf.GradientTape() as tape:
        tape.watch(x)
        y = a*tf.pow(x,2)+b*x+c
    dy_dx = tape.gradient(y,x) 
    return((dy_dx,y))
tf.print(f(tf.constant(0.0)))
tf.print(f(tf.constant(1.0)))

5.optimizer.minimize
解析:optimizer.minimize相當於先用tape求gradient,再apply_gradient

6.TensorFlow API
解析:
[1]TensorFlow的低階API主要包括張量操作,計算圖和自動微分。
[2]TensorFlow的中階API主要包括各種模型層,損失函數,優化器,數據管道,特徵列等等。
[3]TensorFlow的高階API主要爲tf.keras.models提供的模型的類接口。

7.使用Keras接口3種方式構建模型
[1]使用Sequential按層順序構建模型
[2]使用函數式API構建任意結構模型
[3]繼承Model基類構建自定義模型

8.MirroredStrategy過程
解析:
[1]訓練開始前,該策略在所有N個計算設備上均各複製一份完整的模型;
[2]每次訓練傳入一個批次的數據時,將數據分成N份,分別傳入N個計算設備[即數據並行];
[3]N個計算設備使用本地變量[鏡像變量]分別計算自己所獲得的部分數據的梯度;
[4]使用分佈式計算的All-reduce操作,在計算設備間高效交換梯度數據並進行求和,使得最終每個設備都有了所有設備的梯度之和;
[5]使用梯度求和的結果更新本地變量[鏡像變量];
[6]當所有設備均更新本地變量後,進行下一輪訓練[即該並行策略是同步的]。

9.Ubuntu 18.04安裝CUDA 10.2
解析:

sudo /usr/local/cuda-10.2/bin/cuda-uninstaller
sudo rm -rf /usr/local/cuda-10.2

# 徹底卸載N卡驅動
sudo apt remove --purge nvidia*

10.CUPTI
解析:The CUDA Profiling Tools Interface (CUPTI) enables the creation of profiling and tracing tools that target CUDA applications. CUPTI provides the following APIs:
[1]the Activity API
[2]the Callback API
[3]the Event API
[4]the Metric API
[5]the Profiler API

11.使用apt安裝CUDA,Ubuntu 18.04 [CUDA 10.1]
解析:

# Add NVIDIA package repositories
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/cuda-repo-ubuntu1804_10.1.243-1_amd64.deb
sudo dpkg -i cuda-repo-ubuntu1804_10.1.243-1_amd64.deb
sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/7fa2af80.pub
sudo apt-get update
wget http://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1804/x86_64/nvidia-machine-learning-repo-ubuntu1804_1.0.0-1_amd64.deb
sudo apt install ./nvidia-machine-learning-repo-ubuntu1804_1.0.0-1_amd64.deb
sudo apt-get update

# Install NVIDIA driver
sudo apt-get install --no-install-recommends nvidia-driver-418
# Reboot. Check that GPUs are visible using the command: nvidia-smi

# Install development and runtime libraries (~4GB)
sudo apt-get install --no-install-recommends \
   cuda-10-1 \
   libcudnn7=7.6.4.38-1+cuda10.1  \
   libcudnn7-dev=7.6.4.38-1+cuda10.1

# Install TensorRT. Requires that libcudnn7 is installed above.
sudo apt-get install -y --no-install-recommends libnvinfer6=6.0.1-1+cuda10.1 \
   libnvinfer-dev=6.0.1-1+cuda10.1 \
   libnvinfer-plugin6=6.0.1-1+cuda10.1

12.nvGRAPH
解析:圖分析庫。

參考文獻:
[1]自動微分機制:https://lyhue1991.github.io/eat_tensorflow2_in_30_days/2-3,%E8%87%AA%E5%8A%A8%E5%BE%AE%E5%88%86%E6%9C%BA%E5%88%B6.html
[2]GPU支持:https://www.tensorflow.org/install/gpu#linux_setup
[3]
[4]
[5]

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章