這兩周學習了深度學習的基礎知識,大概看了下bp,cnn,rnn的基本原理和概念,又用了幾個小時時間(白天要上班只能晚上學習)簡單看了下keras文件,建立了乙個非常簡單的神經網路模型。
這個模型是簡單的二分類模型(小白中的小白),當輸入》25是輸出1,否則輸出0.
這裡是需要匯入的庫:
資料生成函式,生成樣本和標籤,資料量非常小:from keras.models import sequential
from keras.layers import dense,activation
from keras import regularizers
from keras.optimizers import sgd
from keras.models import load_model
import numpy as np
import pandas as pd
模型訓練和**:def
datagererate
(x):
'''x,list;根據x產生x^2,x**2>25為1,<=25為0
返回sx,label,numpy格式'''
x_pow = list(map(lambda x:x**2,x))
data = pd.dataframe(x_pow,columns=['value'])
data_select = data['value']>25
data['label'] = data_select.values
return data['value'].values,data['label'].values
這個模型用於剛剛接觸深度學習或者keras的小白建立乙個直觀的感覺,深度學習的概念還是要好好看書學習。def
train_and_test
(x_train,label,x_test):
''' x_train為樣本資料,label為樣本標籤,x_test為要**的樣本
'''model = sequential()
model.add(dense(32,input_dim=1)) #建立輸入層,一維資料
model.add(activation('relu')) #啟用函式採用relu
model.add(dense(32,b_regularizer=l2(0.001))) #第二層32個單元,對係數b進行正則化
model.add(dense(32))
model.add(activation('relu'))
model.add(dense(1)) #輸出層
model.add(activation('sigmoid'))
sgd = sgd(lr=0.01, decay=1e-5, momentum=0.9, nesterov=true) #採用隨機梯度下降引數
model.compile(optimizer=sgd,
loss='binary_crossentropy',
metrics=['accuracy'])
model.fit(x_train,label,nb_epoch=30,batch_size=5) #編譯
data_predict = model.predict_classes(x_test) #**
(m,n) = data_predict.shape
data_out = pd.dataframe(x_test,columns=['values'])
data_out['label'] = data_predict.reshape(n,m)[0]
return data_out #輸出資料和標籤
用神經網路二分類人腦與電腦
如果乙個物件a,無論與b或c分類,分類的準確率都是50 則a為乙個具有智慧型的物件。用符號表示 a,b n m k 1,0 0,1 50 50 a,c n m k 1,0 0,1 50 50 a 智慧型體 上式的 表示a和b用乙個結構為n m k的網路分類,分類準確率為50 50 表明a與b邏輯上是...
基於神經網路的二分類問題
在之前的文章中,介紹了神經網路的概念和演算法思想,甚至給出了公式推導。但依然沒有掌握神經網路的精髓,於是打算進一步學習就在網上 了吳恩達大佬的 神經網路和深度學習 這門課程,覺得收穫很大。目前只學習了單個神經元的原理及應用,下面簡單總結一下。1.損失函式的定義 與之前介紹的單個神經元的工作原理不同之...
神經網路解決二分類問題
import tensorflow as tf from numpy.random import randomstate batch size 8 w1 tf.variable tf.random normal 2,3 stddev 1,seed 1 w2 tf.variable tf.random...