在寫mnist手寫體識別任務(已放github)時遇到的**問題
我們都知道在session run的時候需要初始化。但是初始化在什麼位置是至關重要的。來看下這段**:
sess = tf.session()
sess.run(tf.global_variables_initializer())
mnist_model = mnist(class_num, max_len, high, width, channel)
1. 起了乙個session
2. 全域性化了初始變數
3. new了乙個mnist網路結構
然而在執行的時候會報錯:
但是明明已經初始化了,怎麼還給我說用了沒有初始化的變數呢?
來分析一下上面這段**的邏輯:初始化了之後才new乙個網路結構,所以初始化了什麼東西?初始化了乙個空的東西——壓根什麼都沒有初始化。
應該把要初始化的東西都定義好之後,再執行初始化的句子,來看下面正確的**:
# 先初始化乙個模型的類,然後再初始化全域性變數
mnist_model = mnist(class_num, max_len, high, width, channel)
sess = tf.session()
sess.run(tf.global_variables_initializer())
1. 先把網路都定義好
2. 起乙個session
3. 初始化全域性變數
這時候初始化就有東西了,要注意好順序。更改**後執行的結果(acc):
Tensorflow初始化變數
變數必須先初始化後才可使用。如果您在低級別 tensorflow api 中進行程式設計 即您在顯式建立自己的圖和會話 則必須明確初始化變數。tf.contrib.slim tf.estimator.estimator和keras等大多數高階框架在訓練模型前會自動為您初始化變數。要在訓練開始前一次性...
TensorFlow變數初始化
import tensorflow as tf w1 tf.variable tf.random normal 2,3 stddev 1,seed 1 with tf.session as sess sess.run tf.global variables initializer print w1 ...
TensorFlow 變數初始化函式
tensorflow 中的變數初始化函式 初始化函式 功能主要引數 tf.constant initializer 將變數初始化為給定常量 常量的取值 tf.random normal initializer 將變數初始化為滿足正太分布的隨機值 正太分布的均值和標準差 tf.truncated no...