初始化 關於tensorflow的初始化

2021-10-16 09:37:22 字數 959 閱讀 6736

在寫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...