例項描述:
通過構建符合異或規律的資料集作為模擬樣本,構建乙個簡單的多層神經網路來擬合其樣本特徵完成分類任務。
1.資料集介紹
所謂的「異或資料」是**於異或操作。
2.網路模型介紹
3.完整**
import tensorflow as tf
import numpy as np
# 網路結構:2維輸入 --> 2維隱藏層 --> 1維輸出
#定義引數
learning_rate =1e-
4n_input =
2n_label =
1n_hidden =
2#定義佔位符
x = tf.placeholder(tf.float32,
[none
,n_input]
)y = tf.placeholder(tf.float32,
[none
, n_label]
)#定義學習引數
weights =
biases =
#定義網路模型
layer_1=tf.nn.relu(tf.add(tf.matmul(x,weights[
'h1'])
,biases[
'h1'])
)y_pred=tf.nn.tanh(tf.add(tf.matmul(layer_1,weights[
'h2'])
,biases[
'h2'])
)loss=tf.reduce_mean(
(y_pred-y)**2
)train_step=tf.train.adamoptimizer(learning_rate)
.minimize(loss)
#手動建立x和y的資料集x=[
[0,0
],[0
,1],
[1,0
],[1
,1]]
y=[[0
],[1
],[1
],[0
]]x=np.array(x)
.astype(
'float32'
)y=np.array(y)
.astype(
'int16'
)with tf.session(
)as sess:
sess.run(tf.global_variables_initializer())
for i in
range
(100000):
sess.run(train_step,feed_dict=
)print
(sess.run(y_pred,feed_dict=))
print
('隱藏層輸出:'
)print
(sess.run(layer_1,feed_dict=
))
結果:
第乙個是4行1列的陣列,用四捨五入法來取值,與我們定義的輸出y完全吻合。第二個為4行2列的陣列,為隱藏層的輸出。第二個輸出是4行2列陣列,其中第一列為隱藏層第乙個節點的輸出,第二列為隱藏層第二各節點的輸出,四捨五入取整顯示結果:
[[0. 0.]
[0. 1.]
[0. 1.]
[0. 1.]]
使用帶隱藏層的神經網路擬合異或操作
一 介紹 多層神經網路非常好理解,就是在輸入和輸出中間多加些神經元,每一層可以加多個,也可加很多層。下面通過乙個例子將異或資料進行分類。二 例項描述 通過構建異或規律的資料集作為模擬樣本,構建乙個簡單的多層神經網路來擬合其樣本特徵完成分類任務。1 異或規則 當兩個數相同時,輸出為0,不相同時輸出為1...
神經網路隱含層節點數
kolmogorov定理 如果乙個隨機變數序列 1,2.滿足不等式 1 n d n n 為求和範圍 則事件 lim n 1 n 1 k n k 1 n 1 k n m k 0 的概率為1.bp神經網路構建中中間隱含層數目n2,輸入層數目n1,輸出層數目m n2 sqrt n1 m 1 a a 1 1...
神經網路隱含層的物理意義
softmax回歸與多層神經網路都可以實現多分類器,兩種分類器的模型如下圖所示 softmax回歸 多層神經網路 根據圖示我們可以看到,多層神經網路模型與回歸模型,在原理上是相似的,都是構造線性模型,多層神經網路只是在輸入層與輸出層之間新增了n個隱含層 n 1 新增隱含層的物理意義是什麼呢?無論是s...