1. 程式人生 > >tensorflow的基本用法(五)——建立神經網路並訓練

tensorflow的基本用法(五)——建立神經網路並訓練

文章作者:Tyan
部落格:noahsnail.com  |  CSDN  |  簡書

本文主要是介紹利用tensorflow建立一個簡單的神經網路並進行訓練。

#!/usr/bin/env python
# _*_ coding: utf-8 _*_

import tensorflow as tf
import numpy as np

# 建立一個神經網路層
def add_layer(input, in_size, out_size, activation_function = None):
    """
    :param input:
        神經網路層的輸入
    :param in_zize:
        輸入資料的大小
    :param out_size:
        輸出資料的大小
    :param activation_function:
        神經網路啟用函式,預設沒有
    """
# 定義神經網路的初始化權重 Weights = tf.Variable(tf.random_normal([in_size, out_size])) # 定義神經網路的偏置 biases = tf.Variable(tf.zeros([1, out_size]) + 0.1) # 計算w*x+b W_mul_x_plus_b = tf.matmul(input, Weights) + biases # 根據是否有啟用函式進行處理 if activation_function is None: output = W_mul_x_plus_b else
: output = activation_function(W_mul_x_plus_b) return output # 建立一個具有輸入層、隱藏層、輸出層的三層神經網路,神經元個數分別為1,10,1 # 建立只有一個特徵的輸入資料,資料數目為300,輸入層 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) + 1 + noise # 定義輸入資料,None是樣本數目,表示多少輸入資料都行,1是輸入資料的特徵數目
xs = tf.placeholder(tf.float32, [None, 1]) # 定義輸出資料,與xs同理 ys = tf.placeholder(tf.float32, [None, 1]) # 定義一個隱藏層 hidden_layer = add_layer(xs, 1, 10, activation_function = tf.nn.relu) # 定義輸出層 prediction = add_layer(hidden_layer, 10, 1, activation_function = None) # 求解神經網路引數 # 定義損失函式 loss = tf.reduce_mean(tf.reduce_sum(tf.square(ys - prediction), reduction_indices = [1])) # 定義訓練過程 train_step = tf.train.GradientDescentOptimizer(0.1).minimize(loss) # 變數初始化 init = tf.global_variables_initializer() # 定義Session sess = tf.Session() # 執行初始化工作 sess.run(init) # 進行訓練 for i in range(1000): # 執行訓練,並傳入資料 sess.run(train_step, feed_dict = {xs: x_data, ys: y_data}) if i % 100 == 0: print sess.run(loss, feed_dict = {xs: x_data, ys: y_data}) # 關閉Session sess.close()

執行結果如下:

1.06731
0.0111914
0.00651229
0.00530187
0.00472237
0.00429948
0.00399815
0.00377548
0.00359714
0.00345819

參考資料

相關推薦

tensorflow基本用法()——建立神經網路訓練

文章作者:Tyan 部落格:noahsnail.com  |  CSDN  |  簡書 本文主要是介紹利用tensorflow建立一個簡單的神經網路並進行訓練。 #!/usr/bin/env

keras的基本用法(三)——建立神經網路

文章作者:Tyan 部落格:noahsnail.com  |  CSDN  |  簡書 本文主要介紹Keras的一些基本用法。 Demo from keras.datasets impo

2 TensorFlow入門筆記之建造神經網路將結果視覺化

———————————————————————————————————— 寫在開頭:此文參照莫煩python教程(牆裂推薦!!!) ———————————————————————————————————— TensorFlow之建造第一個神經網路 1

79、tensorflow計算一個神經網路的正則化損失係數、防止網路過擬合、正則化的思想就是在損失函式中加入刻畫模型複雜程度的指標

''' Created on Apr 20, 2017 @author: P0079482 ''' import tensorflow as tf #獲取一層神經網路邊上的權重,並將這個權重的L2正

基於深度學習的CT影象肺結節自動檢測技術四—資料增強—定義神經網路訓練

開發環境 jupyter notebook # -- coding: utf-8 -- #訓練影象分割網路(u-net)模型 import csv import glob import random import cv2 import numpy import

Tensorflow訓練卷積神經網路儲存模型,載入模型匯入手寫圖片測試

        剛學習tensorflow,折騰了這幾天,之前一直按照書上的教程訓練網路,看那些沒玩沒了的不斷接近於1的準確率,甚是無聊,我一直想將辛辛苦苦訓練出來的網路,那些識別率看上去很高的網路,是否能真正用來識別外面匯入的圖片呢,而不僅僅是那些訓練集或者測試集的圖片。

《機器學習》 周志華學習筆記第神經網路(課後習題) python實現

1.神經元模型 2.感知機與多層網路 3.誤差逆傳播演算法 (A)BP演算法:最小化訓練集D上的累積誤差 標準BP演算法:更新規則基於單個Ek推導而得 兩種策略防止過擬合:(1)早停(通過驗證集來判斷,訓練集誤差降低,驗證集誤差升高)(2) 正則化:在誤差目標函式中引入描述網

TensorFlow之CNN卷積神經網路的實現

下載MNIST資料集(28*28,輸入維度為784) import tensorflow as tf #下載MNIST資料集(28*28,輸入維度為784) from tensorflow.examples.tutorials.mnist import input_data mnist =

TensorFlow 基本用法

TensorFlow的環境已經搭好了,可以來開始學習學習他的使用了。但是對於我這個剛接觸的Python小白來說,只能先通過資料去了解一下它的基本用法,先摸清其套路,方便自己建立一個體系的目錄;便於理解。 所以,今天先轉載一篇 TensorFlow基本用法: 使用 TensorFlow

機器學習筆記(十):TensorFlow實戰二(深層神經網路

1 - 深度學習與深層神經網路 深度學習的精確定義為:“一類通過多層非線性變換對高複雜性資料建模演算法的集合” 因此,多層神經網路有著2個非常重要的特性 多層 非線性 1.1 - 線性模型的侷限性 線上性模型中,模型的輸出為輸入的加權和,假設一

tensorflow實現一個卷積神經網路

學了一段深度學習,最近學了tensorflow,所以想自己去根據教程寫一個簡單的卷積神經網路。 CNN:卷積神經網路的實現 一個卷積神經網路的結構一般是由輸入-->卷積-->池化-->卷積-->池化-->............-->全連線-->全連

TensorFlow實戰》中AlexNet卷積神經網路訓練

TensorFlow實戰中AlexNet卷積神經網路的訓練 01 出錯 TypeError: as_default() missing 1 required positional argument: 'self' 經過百度、谷歌的雙重查詢,沒找到就具體原因。後面去TensorFlow官方文件中發現,tf

TensorFlow實現CNN卷積神經網路對手寫數字集mnist的模型訓練

mnist手寫數字集相當於是TensorFlow應用中的Helloworld。 在學習了TensorFlow的卷積神經網路應用之後,今天就分步解析一下其應用過程  一、mnist手寫數字資料集         MN

神經網路

1. 神經元模型 神經網路是由具有適應性的簡單單元組成的廣泛並行互連的網路,它的組織能夠模擬生物神經系統對真實世界物體所作出的互動反應。神經網路中最基本的成分是神經元 (neuron)模型,即上述定義中的"簡單單元"在生物神經網路中,每個神經元與其他神經元相連,當它"興奮"時,就會向相連的神經元傳送化學物質

Tensorflow基本用法(二)

介紹在官方文件中MNIST進階中用到的函式 1. tf.truncated_normal(shape, mean=0.0, stddev=1.0, dtype=tf.float32, seed=None, name=None) shape:生成張量的形

莫煩python|Tensorflow筆記--什麼是迴圈神經網路RNN

我們在想象現在有一組資料序列,Data0,Data1,Data2,Data3,預測Results0的時候基於Data0,同意在預測其他結果的時候也是基於其他的數字。每次使用的神經網路都是同一個NN。如果這些資料是有關聯順序的,那麼就要遵從它們之間的順序,否則就串位了。但是

TensorFlow學習筆記(2) 深層神經網路

一、深度學習與深層神經網路 深度學習是指一類通過多層非線性變換對高複雜性資料建模演算法的合集,深層神經網路就是實現多層非線性變換最常用的一種方法。而深度學習兩個最重要的特性就是多層和非線性。 在上一篇最後所建立的神經網路即為線性的,但是在現實世界中,絕大多數的問題時無法線性分割的,因此需要一

使用Keras建立神經網路對資料集MNIST分類

0. 環境 Ubuntu 18.04,64bit,i3-6100,8G Python 2.7 1. 例程所需檔案 │  keras_mnist.py │   ├─mldata │      mnist-original.mat │       └─output

Tensorflow實現最簡單的神經網路

程式程式碼: #匯入相應模組 import tensorflow as tf from tensorflow.examples.tutorials.mnist import input_data #讀入資料 mnist = input_data.read_data_sets('MNI

tensorflow構建兩層簡單神經網路(全連線)

中國大學Mooc 北京大學 人工智慧實踐:Tensorflow筆記(week3) #coding:utf-8 #兩層簡單神經網路(全連線) import tensorflow as tf #定義輸入和引數 #用placeholder實現輸入定義(sess.run中喂一組資料) x = tf.pl