為了使**結構更加清晰,tensorboard 圖結構清楚,可以增加命名空間。
import os
os.environ['tf_cpp_min_log_level'] = '2'
import tensorflow as tf
def linear_regression():
with tf.variable_scope('prepare_data'):
# 一、準備資料
x = tf.random_normal(shape=[100,1],name='feature')
y_true = tf.matmul(x,[[0.8]])+0.7
with tf.variable_scope('create_mode'):
# 二、構造模型
# 構造模型引數權重 weight 和偏移 bias
weight = tf.variable(initial_value=tf.random_normal(shape=[1,1]),name='weights')
bias = tf.variable(initial_value=tf.random_normal(shape=[1,1]),name='bias')
y_predict = tf.matmul(x,weight)+bias
with tf.variable_scope('loss_function'):
# 三、構造損失函式
error = tf.reduce_mean(tf.square(y_predict-y_true))
with tf.variable_scope('optimizer'):
# 四、優化損失
optimizer = tf.train.gradientdescentoptimizer(learning_rate=0.1).minimize(error)
# 2.收集變數(變數實現給圖新增可訓練的引數,它們在被建立的時候就帶有型別屬性和初始值)
tf.summary.scalar('error',error)
tf.summary.histogram('weights',weight)
tf.summary.histogram('bias',bias)
# 3.合併變數
merged = tf.summary.merge_all()
# 顯示初始化變數
init = tf.global_variables_initializer()
# 開啟會話
with tf.session() as sess:
# 執行初始化變數
sess.run(init)
# 1.建立事件檔案
file_writer = tf.summary.filewriter('e:/events/test',graph=sess.graph)
print(' 查 看 訓 練 前 模 型 參 數 : 權 重 : %f , 偏 量 : %f , 損 失:%f'%(weight.eval(),bias.eval(),error.eval()))
# 開始訓練
for i in range(100):
sess.run(optimizer)
print('訓練第%d 次後模型引數:權重:%f,偏量:%f,損失:%f' % ((i+1),weight.eval(), bias.eval(), error.eval()))
# 4.執行合併變數
summary = sess.run(merged)
# 5.將每次迭代後的變數寫入事件檔案
C 命名空間 預設命名空間與匿名命名空間
2.匿名命名空間 預設命名空間也叫全域性命名空間,所有沒有置於某一具體命名空間下的 即在預設命名空間下,例如func main 函式。include void func void intmain int argc,char ar void func void 需要注意的是 這個就是類似於c語言裡簡單...
spring p命名空間 c命名空間
p命名空間 1.需要引入命名空間p 並不真實存在 是在spring內部中實現的 xmlns p 2.如果是引用注入需要加 ref字尾 p和c命名空間 並不適用於集合引數 c命名空間 1.需要引入命名空間c 並不真實存在 是在spring內部中實現的 xmlns c 2.可以使用c 引數名 或c 引數...
C 命名空間,也有叫命名空間
在c 中,名稱 name 可以是符號常量 變數 巨集 函式 結構 列舉 類和物件等等。為了避免在大規模程式設計中,以及在程式設計師使用各種各樣的c 庫時,這些識別符號的命名發生衝突,標準c 引入了關鍵字namespace 命名空間 名字空間 命名空間 名域 可以更好地控制識別符號的作用域。std是c...