欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

tensorflow建立一個簡單的神經(jīng)網(wǎng)絡的方法

 更新時間:2018年02月10日 14:44:31   作者:Mr丶Caleb  
本篇文章主要介紹了tensorflow建立一個簡單的神經(jīng)網(wǎng)絡的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

本筆記目的是通過tensorflow實現(xiàn)一個兩層的神經(jīng)網(wǎng)絡。目的是實現(xiàn)一個二次函數(shù)的擬合。

如何添加一層網(wǎng)絡

代碼如下:

def add_layer(inputs, in_size, out_size, activation_function=None):
  # add one more layer and return the output of this layer
  Weights = tf.Variable(tf.random_normal([in_size, out_size]))
  biases = tf.Variable(tf.zeros([1, out_size]) + 0.1)
  Wx_plus_b = tf.matmul(inputs, Weights) + biases
  if activation_function is None:
    outputs = Wx_plus_b
  else:
    outputs = activation_function(Wx_plus_b)
  return outputs

注意該函數(shù)中是xW+b,而不是Wx+b。所以要注意乘法的順序。x應該定義為[類別數(shù)量, 數(shù)據(jù)數(shù)量], W定義為[數(shù)據(jù)類別,類別數(shù)量]。

創(chuàng)建一些數(shù)據(jù)

# Make up some real data
x_data = np.linspace(-1,1,300)[:, np.newaxis]
noise = np.random.normal(0, 0.05, x_data.shape)
y_data = np.square(x_data) - 0.5 + noise

numpy的linspace函數(shù)能夠產(chǎn)生等差數(shù)列。start,stop決定等差數(shù)列的起止值。endpoint參數(shù)指定包不包括終點值。

numpy.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None)[source] 
Return evenly spaced numbers over a specified interval. 
Returns num evenly spaced samples, calculated over the interval [start, stop]. 

noise函數(shù)為添加噪聲所用,這樣二次函數(shù)的點不會與二次函數(shù)曲線完全重合。

numpy的newaxis可以新增一個維度而不需要重新創(chuàng)建相應的shape在賦值,非常方便,如上面的例子中就將x_data從一維變成了二維。

添加占位符,用作輸入

# define placeholder for inputs to network
xs = tf.placeholder(tf.float32, [None, 1])
ys = tf.placeholder(tf.float32, [None, 1])

添加隱藏層和輸出層

# add hidden layer
l1 = add_layer(xs, 1, 10, activation_function=tf.nn.relu)
# add output layer
prediction = add_layer(l1, 10, 1, activation_function=None)

計算誤差,并用梯度下降使得誤差最小

# the error between prediciton and real data
loss = tf.reduce_mean(tf.reduce_sum(tf.square(ys - prediction),reduction_indices=[1]))
train_step = tf.train.GradientDescentOptimizer(0.1).minimize(loss)

完整代碼如下:

from __future__ import print_function
import tensorflow as tf
import numpy as np
import matplotlib.pyplot as plt

def add_layer(inputs, in_size, out_size, activation_function=None):
  # add one more layer and return the output of this layer
  Weights = tf.Variable(tf.random_normal([in_size, out_size]))
  biases = tf.Variable(tf.zeros([1, out_size]) + 0.1)
  Wx_plus_b = tf.matmul(inputs, Weights) + biases
  if activation_function is None:
    outputs = Wx_plus_b
  else:
    outputs = activation_function(Wx_plus_b)
  return outputs

# Make up some real data
x_data = np.linspace(-1,1,300)[:, np.newaxis]
noise = np.random.normal(0, 0.05, x_data.shape)
y_data = np.square(x_data) - 0.5 + noise

# define placeholder for inputs to network
xs = tf.placeholder(tf.float32, [None, 1])
ys = tf.placeholder(tf.float32, [None, 1])
# add hidden layer
l1 = add_layer(xs, 1, 10, activation_function=tf.nn.relu)
# add output layer
prediction = add_layer(l1, 10, 1, activation_function=None)

# the error between prediciton and real data
loss = tf.reduce_mean(tf.reduce_sum(tf.square(ys - prediction),
           reduction_indices=[1]))
train_step = tf.train.GradientDescentOptimizer(0.1).minimize(loss)

# important step
init = tf.initialize_all_variables()
sess = tf.Session()
sess.run(init)

# plot the real data
fig = plt.figure()
ax = fig.add_subplot(1,1,1)
ax.scatter(x_data, y_data)
plt.ion()
plt.show()

for i in range(1000):
  # training
  sess.run(train_step, feed_dict={xs: x_data, ys: y_data})
  if i % 50 == 0:
    # to visualize the result and improvement
    try:
      ax.lines.remove(lines[0])
    except Exception:
      pass
    prediction_value = sess.run(prediction, feed_dict={xs: x_data})
    # plot the prediction
    lines = ax.plot(x_data, prediction_value, 'r-', lw=5)
    plt.pause(0.1)

運行結(jié)果:

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • python正則表達式匹配IP代碼實例

    python正則表達式匹配IP代碼實例

    這篇文章主要介紹了python正則表達式匹配IP代碼實例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-12-12
  • Python利用多線程枚舉實現(xiàn)獲取wifi信息

    Python利用多線程枚舉實現(xiàn)獲取wifi信息

    這篇文章主要為大家詳細介紹了Python如何利用枚舉字典的方式來實現(xiàn)獲取wifi信息,文中的示例代碼講解詳細,感興趣的小伙伴可以了解一下
    2022-12-12
  • python非阻塞式后臺如何運行bat腳本

    python非阻塞式后臺如何運行bat腳本

    這篇文章主要介紹了python非阻塞式后臺如何運行bat腳本問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-06-06
  • Tensorflow獲取張量Tensor的具體維數(shù)實例

    Tensorflow獲取張量Tensor的具體維數(shù)實例

    今天小編就為大家分享一篇Tensorflow獲取張量Tensor的具體維數(shù)實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-01-01
  • python爬蟲之遍歷單個域名

    python爬蟲之遍歷單個域名

    在本篇文章里小編給大家整理的是一篇關于python遍歷單個域名的知識點和操作方法,有需要的朋友們學習下。
    2019-11-11
  • 詳解?PyTorch?Lightning模型部署到生產(chǎn)服務中

    詳解?PyTorch?Lightning模型部署到生產(chǎn)服務中

    這篇文章主要為大家介紹了如何將PyTorch?Lightning模型部署到生產(chǎn)服務中的詳細教程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-09-09
  • Python關于時間序列calendar模塊的深入講解

    Python關于時間序列calendar模塊的深入講解

    calendar,是與日歷相關的模塊。calendar模塊文件里定義了很多類型,主要有Calendar,TextCalendar以及HTMLCalendar類型。其中,Calendar是TextCalendar與HTMLCalendar的基類
    2021-11-11
  • Python實現(xiàn)的繪制三維雙螺旋線圖形功能示例

    Python實現(xiàn)的繪制三維雙螺旋線圖形功能示例

    這篇文章主要介紹了Python實現(xiàn)的繪制三維雙螺旋線圖形功能,結(jié)合實例形式分析了Python使用matplotlib、numpy模塊進行數(shù)值運算及圖形繪制相關操作技巧,需要的朋友可以參考下
    2018-06-06
  • Python 去除字符串中指定字符串

    Python 去除字符串中指定字符串

    這篇文章主要介紹了Python 去除字符串中指定字符串,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-03-03
  • Python3中關于cookie的創(chuàng)建與保存

    Python3中關于cookie的創(chuàng)建與保存

    今天小編就為大家分享一篇關于Python3中關于cookie的創(chuàng)建與保存的文章,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2018-10-10

最新評論