中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎樣定義TensorFlow輸入節點

發布時間:2021-02-01 13:58:17 來源:億速云 閱讀:181 作者:小新 欄目:開發技術

這篇文章主要介紹了怎樣定義TensorFlow輸入節點,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

TensorFlow中有如下幾種定義輸入節點的方法。

通過占位符定義:一般使用這種方式。

通過字典類型定義:一般用于輸入比較多的情況。

直接定義:一般很少使用。

一 占位符定義

示例:

具體使用tf.placeholder函數,代碼如下:

X = tf.placeholder("float")
Y = tf.placeholder("float")

二 字典類型定義

1 實例

通過字典類型定義輸入節點

2 關鍵代碼

# 創建模型
# 占位符
inputdict = {
  'x': tf.placeholder("float"),
  'y': tf.placeholder("float")
}

3 解釋

通過字典定義的方式和第一種比較像,只不過是堆疊到一起。

4 全部代碼

import tensorflow as tf
import numpy as np
import matplotlib.pyplot as plt
plotdata = { "batchsize":[], "loss":[] }
def moving_average(a, w=10):
  if len(a) < w:
    return a[:]  
  return [val if idx < w else sum(a[(idx-w):idx])/w for idx, val in enumerate(a)]
#生成模擬數據
train_X = np.linspace(-1, 1, 100)
train_Y = 2 * train_X + np.random.randn(*train_X.shape) * 0.3 # y=2x,但是加入了噪聲
#圖形顯示
plt.plot(train_X, train_Y, 'ro', label='Original data')
plt.legend()
plt.show()
# 創建模型
# 占位符
inputdict = {
  'x': tf.placeholder("float"),
  'y': tf.placeholder("float")
}
# 模型參數
W = tf.Variable(tf.random_normal([1]), name="weight")
b = tf.Variable(tf.zeros([1]), name="bias")
# 前向結構
z = tf.multiply(inputdict['x'], W)+ b
#反向優化
cost =tf.reduce_mean( tf.square(inputdict['y'] - z))
learning_rate = 0.01
optimizer = tf.train.GradientDescentOptimizer(learning_rate).minimize(cost) #Gradient descent
# 初始化變量
init = tf.global_variables_initializer()
#參數設置
training_epochs = 20
display_step = 2
# 啟動session
with tf.Session() as sess:
  sess.run(init)
  # Fit all training data
  for epoch in range(training_epochs):
    for (x, y) in zip(train_X, train_Y):
      sess.run(optimizer, feed_dict={inputdict['x']: x, inputdict['y']: y})
    #顯示訓練中的詳細信息
    if epoch % display_step == 0:
      loss = sess.run(cost, feed_dict={inputdict['x']: train_X, inputdict['y']:train_Y})
      print ("Epoch:", epoch+1, "cost=", loss,"W=", sess.run(W), "b=", sess.run(b))
      if not (loss == "NA" ):
        plotdata["batchsize"].append(epoch)
        plotdata["loss"].append(loss)
  print (" Finished!")
  print ("cost=", sess.run(cost, feed_dict={inputdict['x']: train_X, inputdict['y']: train_Y}), "W=", sess.run(W), "b=", sess.run(b))
  #圖形顯示
  plt.plot(train_X, train_Y, 'ro', label='Original data')
  plt.plot(train_X, sess.run(W) * train_X + sess.run(b), label='Fitted line')
  plt.legend()
  plt.show()
  
  plotdata["avgloss"] = moving_average(plotdata["loss"])
  plt.figure(1)
  plt.subplot(211)
  plt.plot(plotdata["batchsize"], plotdata["avgloss"], 'b--')
  plt.xlabel('Minibatch number')
  plt.ylabel('Loss')
  plt.title('Minibatch run vs. Training loss')
   
  plt.show()
  print ("x=0.2,z=", sess.run(z, feed_dict={inputdict['x']: 0.2}))

5 運行結果

怎樣定義TensorFlow輸入節點

三 直接定義

1 實例

直接定義輸入結果

2 解釋

直接定義:將定義好的Python變量直接放到OP節點中參與輸入的運算,將模擬數據的變量直接放到模型中訓練。

3 代碼

import tensorflow as tf
import numpy as np
import matplotlib.pyplot as plt
#生成模擬數據
train_X =np.float32( np.linspace(-1, 1, 100))
train_Y = 2 * train_X + np.random.randn(*train_X.shape) * 0.3 # y=2x,但是加入了噪聲
#圖形顯示
plt.plot(train_X, train_Y, 'ro', label='Original data')
plt.legend()
plt.show()
# 創建模型
# 模型參數
W = tf.Variable(tf.random_normal([1]), name="weight")
b = tf.Variable(tf.zeros([1]), name="bias")
# 前向結構
z = tf.multiply(W, train_X)+ b
#反向優化
cost =tf.reduce_mean( tf.square(train_Y - z))
learning_rate = 0.01
optimizer = tf.train.GradientDescentOptimizer(learning_rate).minimize(cost) #Gradient descent
# 初始化變量
init = tf.global_variables_initializer()
#參數設置
training_epochs = 20
display_step = 2
# 啟動session
with tf.Session() as sess:
  sess.run(init)
  # Fit all training data
  for epoch in range(training_epochs):
    for (x, y) in zip(train_X, train_Y):
      sess.run(optimizer)
    #顯示訓練中的詳細信息
    if epoch % display_step == 0:
      loss = sess.run(cost)
      print ("Epoch:", epoch+1, "cost=", loss,"W=", sess.run(W), "b=", sess.run(b))
  print (" Finished!")
  print ("cost=", sess.run(cost), "W=", sess.run(W), "b=", sess.run(b))

4 運行結果

怎樣定義TensorFlow輸入節點

感謝你能夠認真閱讀完這篇文章,希望小編分享的“怎樣定義TensorFlow輸入節點”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

余庆县| 寿宁县| 扎鲁特旗| 新干县| 江达县| 乌兰浩特市| 焉耆| 黄山市| 普兰县| 三亚市| 保亭| 盐山县| 馆陶县| 和硕县| 石屏县| 洱源县| 江门市| 天水市| 辽中县| 茂名市| 东乌珠穆沁旗| 安徽省| 玉溪市| 长海县| 宁强县| 樟树市| 柳林县| 和平区| 建水县| 长海县| 龙井市| 汝阳县| 河北区| 汤阴县| 青冈县| 五寨县| 南昌县| 房山区| 晋宁县| 襄樊市| 西乌珠穆沁旗|