1. 程式人生 > >tensorflow實現的一個三層神經網路

tensorflow實現的一個三層神經網路

# -*- coding: utf-8 -*-
"""
Created on Sat Aug 13 16:38:38 2016
cnn of myself,today!
@author: root
"""
import tensorflow as tf
import numpy as np
'''
inputs : input x set
input_feature_size : input feature size
output_feature_size : output featutre size
activation_function : activation function
'''
def add_layer(inputs , input_feature_size , output_feature_size , activation_function = None):
    Weights = tf.Variable(tf.random_normal([input_feature_size , output_feature_size]))
    bias = tf.Variable(tf.zeros([1 , output_feature_size]) + 0.1)
    
    Wx_plus_bias = tf.matmul(inputs , Weights) + bias
    
    if(activation_function != None):
        outputs = activation_function(Wx_plus_bias)
    else :
        outputs = Wx_plus_bias
    
    return outputs

#x_data shape : 300 1
x_data = np.linspace(-1 , 1 , 300 , dtype = np.float32)[: , np.newaxis]
#with the same shape to x_data
noise = np.random.normal(0 , 0.05 , x_data.shape)
y_data = np.square(x_data) - 0.5 + noise

'''
define two holder
'''
x_holder = tf.placeholder(dtype = np.float32 , shape = [None , 1])
y_holder = tf.placeholder(dtype = np.float32 , shape = [None , 1])

'''
cnn : input layer ,  hidden layer , output layer
input layer : x_data , 1
hidden layer : x_data , 1 ===> x_data.lines.num , 10
output layer : x_data.lines.num , 1
'''
l1 = add_layer(x_holder , 1 , 10 , activation_function = tf.nn.relu)
l2 = add_layer(l1 , 10 , 1 , activation_function = None)

#define the loss
loss = tf.reduce_mean(tf.reduce_sum(tf.abs(y_holder - l2) , 1))

#define the proccess of train
train = tf.train.GradientDescentOptimizer(0.1).minimize(loss)

init = tf.initialize_all_variables()

with tf.Session() as sess:
    sess.run(init)
    for i in range(2000):
        sess.run(train , feed_dict={x_holder : x_data, y_holder : y_data})
        if(i % 50 == 0):
            print sess.run(loss , feed_dict={x_holder : x_data, y_holder : y_data})
       

相關推薦

tensorflow實現一個神經網路

# -*- coding: utf-8 -*- """ Created on Sat Aug 13 16:38:38 2016 cnn of myself,today! @author: root """ import tensorflow as tf import num

tensorflow實現一個卷積神經網路

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

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

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

一個簡單的matlab專案實現神經網路的簡單應用

一、設計目的:進行1-100以內的質數分類 二、設計思路: 1、生成1-100以內的數和對應二進位制 2、對質數部分進行label為1,其餘為0 3、選擇前60組作為training資料,後40組testing 4、選擇三層神經網路,其中hidden和output部分使用

Python實現最簡單的神經網路

import numpy as np def sigmoid( x, deriv=False): #求導:derivation if (deriv == True): return x*(1-x) return 1/(1+np.exp(-x)) x=np

最簡單的神經網路Matlab實現

W = randn(n,H); % weight for hidden layer, W(:,i) is the weight vector for unit i b = randn(H,1); % bias for hidden layer wo = randn(H,1); %weight for out

Tensorflow(二)- 實踐一 - 神經網路

這篇結合一個三層神經網路完成多分類的例子來講解tensorflow 建立圖 首先建立神經網路中需要多次傳入值的,X和Y,建立placeholder,由於不能確切知道一次minibatch傳入的樣本數多少,於是在矩陣大小定義時,第二維度為None。 def create_place

機器學習之簡單神經網路實現

import numpy as np #本專案實現簡單神經網路模型 #非線性函式 #前向傳播:直接返回sigmoid啟用函式 #反向傳播:對sigmoid函式求倒數,即x*(1-x) def nonlin(x,deriv=False): if (der

機器學習入門——使用TensorFlow搭建一個簡單的神經網路實現非線性迴歸

TensorFlow是一個基於資料流程式設計的符號數學系統,被廣泛應用於各類機器學習演算法的程式設計實現。 迴歸是一種基本演算法,也是機器學習中比較重要的內容。 迴歸的英文是regression,單詞原型regress的意思是“回退,退化,倒退”。其實 regressio

tensorflow下構建二神經網路神經網路解決10分類任務對比

繼剛才的邏輯迴歸解決的十分類任務意猶未盡,分別設計了二層和三層的神經網路對比解決這個10分類問題下面畫一個草圖代表三層神經網路的計算圖:import numpy as np import tensorflow as tf import matplotlib.pyplot as

激勵函式簡介 Tensorflow最簡單的神經網路及matplotlib視覺化 附激勵函式常見型別

激勵函式: 有人說翻譯成“啟用函式”(activation function)會更好,因為主要作用是分割資料,判斷該“神經”是否被啟用。比如說,當你判斷面前的動物是否是一隻貓的時候,你會從各個部分去判斷。比如眼睛,當你覺得確實像貓的眼睛時,判斷眼睛的神經數值會特別高,如果覺

神經網路實現分類器

一、簡介 神經網路模型是一種模仿生物大腦的神經元連線,提出的一種計算模型。目前已在人工智慧領域取得了廣泛的應用。 下圖為一個神經元的抽象模型,一個神經元接收來自其他神經元的訊號,對訊號進行加和後作一個激勵,然後輸出。    二、實現 原始資料共有30個,分為3類,每類

搭建簡單的神經網路

# -*- coding: utf-8 -*- import numpy as np #損失函式 def sigmoid(x,deriv = False): if (deriv == True): return x * (1-x) return 1/(1 + np

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

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

從線性到非線性模型-神經網路

從線性到非線性模型 1、線性迴歸,嶺迴歸,Lasso迴歸,區域性加權線性迴歸 2、logistic迴歸,softmax迴歸,最大熵模型 3、廣義線性模型 4、Fisher線性判別和線性感知機 5、三層神經網路 6、支援向量機

Tensorflow實現最簡單的神經網路

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

用純numpy實現一個簡單的神經網路(理解)

簡單的一個numpy神經網路示例: import numpy as np class NeuralNetwork(): def __init__(self): #將權重轉換為3×1矩陣,其值從-1到1,平均值為0 self.synaptic_we

tensorflow建立一個簡單的神經網路

下面是用tensorflow建立的一個神經網路實現函式y=x^2+0.1 # -*- coding:utf-8 -*- # -*- author: 時間行者 -*- # -*- date: 2018-12-25 -*- import tensorflow as tf import nu

tensorflow建造一個簡單的神經網路

定義一個新增層神經層函式 我們知道一個神經網路可能包含很多個隱藏層,所以如果我們定義一個新增層函式,在後面如果需要增加神經層就只需要呼叫我們定義的新增層函式就可以了。神經層裡常見的引數通常有:weights,biases和激勵函式 首先匯入tenso

Andrew Ng機器學習筆記+Weka相關演算法實現神經網路和引數含義

神經網路是一種非常重要的機器學習模型,人們從生物學中大腦神經元連線方式得到啟發,提出了神經網路的概念,它從資訊處理角度對人腦神經元網路進行抽象, 建立某種簡單模型,按不同的連線方式組成不同的網路。 最近幾年深度學習大熱,尤其是阿爾法圍棋(AlphaGo)戰勝李