神經網路初試之一sin(x)

2021-08-21 13:09:52 字數 2559 閱讀 7746

今天試著用神經網路實驗sinx的擬合效果

(1)擬合資料

(2)擬合網路

def add_layer(input, in_size, out_size, activation_funtion = none):

w = tf.variable(tf.random_normal([in_size, out_size]))

b = tf.variable(tf.zeros([1, out_size]) +0.1)

wx_plus_b = tf.matmul(input, w) + b

if activation_funtion == none:

output = wx_plus_b

else:

output = activation_funtion(wx_plus_b)

return output

xs = tf.placeholder(tf.float32, [none, 1])

ys = tf.placeholder(tf.float32, [none, 1])

l1 = add_layer(xs, 1, 10, activation_funtion=tf.nn.relu)

prediction = add_layer(l1, 10, 1, activation_funtion= none)

loss = tf.reduce_mean(tf.square(prediction - ys))

train = tf.train.adamoptimizer(0.1).minimize(loss)

with tf.session() as sess:

sess.run(init)

for i in range(1000):

sess.run(train, feed_dict=)

if i % 50 == 0:

#             try:

#                 print("run remove")

#                 #lines.remove([lines[0]])

#             except exception:

#                 pass

predict_value = sess.run(prediction, feed_dict=)

lines = plt.plot(x_data, predict_value)

plt.pause(0.1)

#print(i, sess.run(prediction, feed_dict=)) ##test

print(i,sess.run(loss, feed_dict=)) ##train

下圖是執行1000步的效果:還不錯吧,在進行收斂,並且趨勢開始對了。

在試試100000步的效果;目前貌似開始光滑了,待會上圖。

目前24050步

目前看著感覺還是不錯的。

現在總結一下哈:

x的範圍很關鍵:剛開始為【0, 360】,結果沒法收斂,後來縮放到【-1, 1】,很快進行收斂,所以在影象處理中個對輸入值進行初始化確實是有一定的好處的。

神經網路(一)

神經網路 想讓計算機模擬大腦處理資訊的過程。如 有一杯水,手摸一下,收集溫度資訊,在神經元中進行傳遞,心中有乙個預設值,看是否溫度太高,還是太低。感知機 人工神經網路 神經網路的發展 傑弗里 埃弗里斯特 辛頓。英語 geoffrey everest hinton 是一位英國出生的計算機學家和心理學家...

神經網路 一

神經元是神經網路的基本組成。神經網路的神經元,是模仿生物的神經元結構。影象如下 為了形象理解,可以將上圖簡化如下 在這個神經元中,input的feature 可以有很多維度,output也可以有很多的 layer。感知機 1 感知機是網路神經的基礎,感知機也被稱為單層神經網路 即,單個神經元也稱作感...

神經網路 卷積神經網路

這篇卷積神經網路是前面介紹的多層神經網路的進一步深入,它將深度學習的思想引入到了神經網路當中,通過卷積運算來由淺入深的提取影象的不同層次的特徵,而利用神經網路的訓練過程讓整個網路自動調節卷積核的引數,從而無監督的產生了最適合的分類特徵。這個概括可能有點抽象,我盡量在下面描述細緻一些,但如果要更深入了...