3 使用class類搭建神經網路結構 鳶尾花分類)

2021-10-10 20:21:07 字數 1853 閱讀 2318

學習使用類封裝神經網路層

import tensorflow as tf

from tensorflow.keras.models import model

from tensorflow.keras.layers import dense

from sklearn.datasets import load_iris

import numpy as np

import matplotlib.pyplot as plt

# 使用class類封裝乙個神經網路結構

class

mymodel

(model)

:'''

__init__

() :定義所需的網路結構塊

call()

: 寫出前向傳播

'''def __init__

(self)

:super

(mymodel, self)

.__init__()

self.d1 =

dense

(units=

3,activation=

'softmax'

,kernel_regularizer=tf.keras.regularizers.l1(

))def call

(self, x)

: y = self.

d1(x)

return y

# 載入資料集

iris_data =

load_iris()

x_data = iris_data[

'data'

]y_data = iris_data[

'target'

]# 打亂資料

np.random.

seed(1

)np.random.

shuffle

(x_data)

np.random.

seed(1

)np.random.

shuffle

(y_data)

tf.random.

set_seed(1

)model =

mymodel()

model.

compile

(optimizer=tf.keras.optimizers.

sgd(learning_rate=

0.1)

,loss = tf.keras.losses.

sparsecategoricalcrossentropy()

, metrics=

['sparse_categorical_accuracy'])

history = model.

fit(x_data,y_data,batch_size=

32,epochs=

500,validation_split=

0.2,validation_freq=20)

model.

summary()

plt.

plot

(history.history[

'loss'],

'r')

plt.

plot

(history.history[

'sparse_categorical_accuracy'],

'g')

plt.

legend([

'loss'

,'sparse_categorical_accuracy'])

plt.

show

()

搭建神經網路

1.import 2.train,test 3.model tf.keras.model.sequential 在sequential中描述網路結構,相當於走一遍前向傳播 4.model.compile 在compile中配置訓練方法,選擇哪個優化器,選擇什麼損失函式,選擇什麼評價指標 5.mode...

神經網路體系搭建(一) 神經網路

本篇是神經網路體系搭建的第一篇,解決體系搭建的前四個問題,詳見神經網路體系搭建 序 神經網路的定義就不再贅述,直接從最簡單的神經網路說起。將一系列輸入資料,通過訓練好的網路模型處理,得到輸出結果,這是神經網路決策的步驟。那麼我們的重點就是通過訓練得到網路模型。從上圖可以看出,模型的關鍵其實是尋找合適...

簡單搭建神經網路

簡單的神經網路 準備,前傳,後傳,迭代 下面是乙個簡單的神經網路搭建的 coding utf 8 import tensorflow as tf import numpy as np batch size 8 seed 23455 基於seed產生隨機數 rng np.random.randomst...