色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

使用tensorflow構建一個簡單神經網絡

電子設計 ? 2018-10-16 08:41 ? 次閱讀

給大家分享一個案例,如何使用tensorflow 構建一個簡單神經網絡。首先我們需要創建我們的樣本,由于是監督學習,所以還是需要label的。為了簡單起見,我們只創建一個樣本進行訓練, 可以當做是在模擬隨機梯度下降的過程

。 代碼如下:

x = tf.constant([[0.7,0.9]])

y_ = tf.constant([[1.0]])

我們使用tf中的常量來創建樣本和label。 這是一個有兩個特征的樣本。

然后定義每一層的權重和偏差變量

w1 = tf.Variable(tf.random_normal([2,3], stddev=1, seed=1))

w2 = tf.Variable(tf.random_normal([3,1], stddev=1, seed=1))

b1 = tf.Variable(tf.zeros([3]))

b2 = tf.Variable(tf.zeros([1]))

根據上一節講的內容,我們使用tf的變量來生成權重和偏差。

神經網絡模型

我們的神經網絡模型大概如下圖:

上面我們嘗試創建一個只有兩個特征的輸入層, 只有一層,3個神經元的隱藏層,以及最后的輸出層。 由于我們要做的是二分類,所以輸出層只有一個神經元。

前向傳播算法

好了現在我們可以來看看前向傳播了,如果對前向傳播還不太了解的話,請復習一下深度學習的基礎概念~ 這里只做簡單的介紹。 首先在輸入層我們有兩個特征輸入就是x1和x2,他們都會傳遞給隱藏層的3個神經元中進行訓練。

每一個神經元都是輸入層取值的加權和,就像圖出計算的一樣,分別計算出a11,a12和a13. 同樣的輸出層的計算是上一層的每一個神經元的取值的加權和,也正如上圖計算的一樣。這就是整個的前向傳播算法,上一層的計算結果是下一層的輸入,以此類推。對數學比較熟悉的同學一定猜到了,權重(w)的計算過程就是一個矩陣乘法。 首先是由x1和x2組成1*2的矩陣, 以及隱藏層的每一個神經元上對應的權重(w) 組合的2*3的矩陣(2個輸入特征的w,3個神經元),他們兩個做矩陣乘法就是這一層的前向傳播算法,結果是一個1*3的矩陣。再接著跟輸出層的3*1的矩陣(3個輸入特征的w和1個神經元)繼續做矩陣乘法。就是最后的結果。 很幸運的是tf為我們實現了做矩陣乘法的函數就是matmul。 那么上面這個前向傳播的過程就是如下的代碼:

a = tf.nn.relu(tf.matmul(x,w1) + b1)

y = tf.matmul(a, w2) + b2

我們在早期的帖子中說過神經網絡的每一層都有一個激活函數,我們分類問題的時候都會加入激活函數來增加非線性效果。那么上面可以看到我們使用tf.nn.relu這個tf為我們實現好的激活函數來給我們的隱藏層前向傳播算法增加非線性。 輸出層y沒有用到激活函數,我們之后會說明。

損失函數

我們需要一個損失函數來計算我們預測的結果與真實值的差距。 tf為我們實現了眾多的損失函數。由于這我們要做二分類問題,那么我們就需要sigmoid作為激活函數,所以我們也要使用tf為sigmoid實現的損失函數。

cost = tf.nn.sigmoid_cross_entropy_with_logits(logits=y, labels=y_, name=None)

sigmoid_cross_entropy_with_logits的第一個參數是我們的預測值,第二個參數是真實的值,也就是我們的labels。 剛才我們計算前向傳播的時候再輸出層并沒有使用任何激活函數,是因為我們tf的損失函數中會給輸出層加入相應的激活函數。 也就是sigmoid_cross_entropy_with_logits已經給輸出層加入了sigmoid激活函數了。

反向傳播與梯度下降

為了實現梯度下降算法,我們需要進行反向傳播計算來求得每一個參數對應損失函數的導數。所幸的是tf同樣為我們提供了各種優化的反向傳播算法。 這里我們使用專門的梯度下降。如下:

train_op = tf.train.GradientDescentOptimizer(0.01).minimize(cost)

GradientDescentOptimizer是梯度下降的優化算法,參數是學習率,這里我們設置為0.01。 同時優化目標是最小化損失函數。 所以是minimize函數,并且把損失函數作為參數傳遞過去。

開始訓練

with tf.Session() as sess:

init = tf.initialize_all_variables()

sess.run(init)

for i in range(100):

sess.run(train_op)

print(sess.run(w1))

print(sess.run(w2))

之前的帖子說過tf是圖計算。 我們之前做的所有的操作都不會產生實際的計算效果。而是在tf中維護一個默認的圖, 當我們顯示的使用tf的session.run的時候才會去計算整個圖中的每一個幾點。 上面我們聲明一個Session,并在一開始初始化所有的變量, 循環100次代表訓練100輪迭代。 最后輸出訓練處的所有的w。

完整的代碼

import tensorflow as tf

import numpy as np

x = np.arange(4, dtype=np.float32).reshape(2,2) # 使用np來創造兩個樣本

y_ = np.array([0,1], dtype=np.float32).reshape(2,1) # 使用np來創造兩個label

w1 = tf.Variable(tf.random_normal([2,3], stddev=1, seed=1))

w2 = tf.Variable(tf.random_normal([3,1], stddev=1, seed=1))

b1 = tf.Variable(tf.zeros([3]))

b2 = tf.Variable(tf.zeros([1]))

a = tf.nn.relu(tf.matmul(x,w1) + b1)

y = tf.matmul(a, w2) + b2

cost = tf.nn.sigmoid_cross_entropy_with_logits(logits=y, labels=y_, name=None)

train_op = tf.train.GradientDescentOptimizer(0.01).minimize(cost)

with tf.Session() as sess:

init = tf.initialize_all_variables()

sess.run(init)

for i in range(100):

sess.run(train_op)

print(sess.run(w1))

print(sess.run(w2))

以上就是使用tensorflow 構建一個簡單神經網絡的方法.

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 神經網絡
    +關注

    關注

    42

    文章

    4778

    瀏覽量

    101014
  • tensorflow
    +關注

    關注

    13

    文章

    329

    瀏覽量

    60583
收藏 人收藏

    評論

    相關推薦

    TF之CNN:Tensorflow構建卷積神經網絡CNN的嘻嘻哈哈事之詳細攻略

    TF之CNN:Tensorflow構建卷積神經網絡CNN的嘻嘻哈哈事之詳細攻略
    發表于 12-19 17:03

    【案例分享】ART神經網絡與SOM神經網絡

    元,它決定了該輸入向量在地位空間中的位置。SOM神經網絡訓練的目的就是為每個輸出層神經元找到合適的權向量,以達到保持拓撲結構的目的。SOM的訓練過程其實很簡單,就是接收到
    發表于 07-21 04:30

    簡單神經網絡的實現

    簡單神經網絡
    發表于 09-11 11:57

    高階API構建模型和數據集使用

    、前言前面結合神經網絡簡要介紹TensorFlow相關概念,并給出了MNIST手寫數字識別的簡單示例,可以得出結論是,構建
    發表于 11-04 07:49

    【AI學習】第3篇--人工神經網絡

    `本篇主要介紹:人工神經網絡的起源、簡單神經網絡模型、更多神經網絡模型、機器學習的步驟:訓練與預測、訓練的兩階段:正向推演與反向傳播、以Tensor
    發表于 11-05 17:48

    如何移植CNN神經網絡到FPGA中?

    二次開發。移植神經網絡到Lattice FPGA上可以分為三步:第步:使用Tensorflow, Caffe, Keras訓練自己的
    發表于 11-26 07:46

    如何構建神經網絡

    原文鏈接:http://tecdat.cn/?p=5725 神經網絡種基于現有數據創建預測的計算系統。如何構建神經網絡神經網絡包括:輸
    發表于 07-12 08:02

    如何使用TensorFlow神經網絡模型部署到移動或嵌入式設備上

    有很多方法可以將經過訓練的神經網絡模型部署到移動或嵌入式設備上。不同的框架在各種平臺上支持Arm,包括TensorFlow、PyTorch、Caffe2、MxNet和CNTK,如Android
    發表于 08-02 06:43

    步學用Tensorflow構建卷積神經網絡

    本文主要和大家分享如何使用Tensorflow從頭開始構建和訓練卷積神經網絡。這樣就可以將這個知識作為
    發表于 11-16 01:32 ?3508次閱讀
    <b class='flag-5'>一</b>步<b class='flag-5'>一</b>步學用<b class='flag-5'>Tensorflow</b><b class='flag-5'>構建</b>卷積<b class='flag-5'>神經網絡</b>

    TensorFlow寫個簡單神經網絡

    這次就用TensorFlow寫個神經網絡,這個神經網絡寫的很簡單,就三種層,輸入層--隱藏層----輸出層;
    的頭像 發表于 03-23 15:37 ?5186次閱讀
    用<b class='flag-5'>TensorFlow</b>寫個<b class='flag-5'>簡單</b>的<b class='flag-5'>神經網絡</b>

    谷歌正式發布TensorFlow神經網絡

    日前,我們很高興發布了 TensorFlow神經網絡 (Graph Neural Networks, GNNs),此庫可以幫助開發者利用 TensorFlow 輕松處理圖結構化數據。
    的頭像 發表于 01-05 13:44 ?1520次閱讀

    如何構建神經網絡

    神經網絡是模擬人體生物神經元原理構建的,比較基礎的有M-P模型,它按照生物 神經元的結構和工作原理構造出來的
    的頭像 發表于 02-24 16:06 ?1919次閱讀
    如何<b class='flag-5'>構建</b><b class='flag-5'>神經網絡</b>

    使用TensorFlow進行神經網絡模型更新

    使用TensorFlow進行神經網絡模型的更新是涉及多個步驟的過程,包括模型定義、訓練、評估以及根據新數據或需求進行模型微調(Fine-tuning)或重新訓練。下面我將詳細闡述這
    的頭像 發表于 07-12 11:51 ?459次閱讀

    如何構建多層神經網絡

    構建多層神經網絡(MLP, Multi-Layer Perceptron)模型是在機器學習和深度學習領域廣泛使用的技術,尤其在處理分類和回歸問題時。在本文中,我們將深入探討如何從頭
    的頭像 發表于 07-19 17:19 ?963次閱讀

    如何使用Python構建LSTM神經網絡模型

    構建LSTM(長短期記憶)神經網絡模型是涉及多個步驟的過程。以下是使用Python和Ke
    的頭像 發表于 11-13 10:10 ?506次閱讀
    主站蜘蛛池模板: 欧美性xxxx18| xiao776唯美清纯| 精品区2区3区4区产品乱码9| 伊人久久综在合线影院| 女的把腿张开男的往里面插| 囯产愉拍亚洲精品一区| 亚洲乱色视频在线观看| 一色屋精品亚洲香蕉网站| 萝莉御姐被吸奶| 俄罗斯兽交XXXXX在线| 亚洲人成人77777在线播放| 免费国产久久啪久久爱| 国产3级在线观看| 一道本av免费不卡播放| 秋霞电影在线观看午夜伦| 国产日韩亚洲精品视频| 18禁无遮挡羞羞污污污污免费| 日韩中文网| 久久精品AV麻豆| 高清视频在线观看SEYEYE| 夜夜精品视频一区二区| 骚妇BB双飞插| 久久是热这里只有精品| 国产高清在线观看| 60岁老年熟妇在线无码| 亚洲AV國產国产久青草| 女人一级毛片免费视频观看| 国产在线观看www鲁啊鲁免费| 99久久蜜臀AV免费看蛮| 亚洲精品无码AV中文字幕蜜桃| 祺鑫WRITEAS流出来了| 亚洲AV无码乱码A片无码蜜桃 | seyeye在清在线| 日韩欧美中文字幕在线| 国产亚洲精品在线视频| 99免费在线| 在线视频一区二区三区在线播放| 无羞耻肉动漫在线观看| 青青草在线视频| 挠黑色超薄丝袜脚心vk40分钟| 九九99热久久精品在线6|