周末AI课堂：神经网络综观 代码篇

AI课堂开讲，就差你了！

class NeuralNetwork:

def__init__(self, x, y):

self.input = x

self.weights = np.random.rand(x.shape[1],1)

self.weights1 = np.random.rand(1)

self.y = y

self.output = np.zeros(self.y.shape)

def feedforward(self):

self.output = sigmoid(np.dot(self.input, self.weights)+self.weights1)

def backprop(self):

d_weights = np.dot(self.input.T,(2*(self.y -self.output) * sigmoid_derivative(self.output)))

d_weights1 =np.dot(2*(self.y -self.output).reshape(4),sigmoid_derivative(self.output).reshape(4))

self.weights += d_weights

self.weights1 += d_weights1

......

self.weights2 = np.random.rand(10,1)

......

from keras.models import Model

from keras.layers import Input

inputs=Input(shape=(100,))

model=Model(inputs=inputs,outputs=inputs)

from keras.models import Model

from keras.layers import Input,Dense

inputs=Input(shape=(100,))

x=Dense(32)(inputs)

model=Model(inputs=inputs,outputs=x)

from keras.models import Model

from keras.layers import Input,Dense,ReLU

inputs=Input(shape=(100,))

x=Dense(32)(inputs)

y=ReLU()(x)

model=Model(inputs=inputs,outputs=y)

from keras.models import Model

from keras.layers import Input,Dense,ReLU,softmax

inputs=Input(shape=(100,))

x=Dense(32)(inputs)

y=ReLU()(x)

out=Dense(10)(y)

out=softmax()(out)

model=Model(inputs=inputs,outputs=out)

x=Dense(32)(inputs)

y=ReLU()(x)

y=Dense（32,activation='relu'）(inputs)

from keras importinitializers

rn=initializers.RandomNormal(mean=0,stddev=1,seed=42)

from keras importinitializers

from keras.models import Model

from keras.layers import Input,Dense,ReLU,softmax

rn=initializers.RandomNormal(mean=0,stddev=1,seed=42)

inputs=Input(shape=(100,))

x=Dense(32,kernel_initializer=rn)(inputs)

y=ReLU()(x)

out=Dense(10,kernel_initializer=rn)(y)

out=softmax()(out)

model=Model(inputs=inputs,outputs=out)

from keras import losses

loss=losses.categorical_crossentropy

from keras importoptimizers

sgd=optimizers.SGD(lr=0.1,decay=1e-10,momentum=0.9,nesterov=True)

from keras import metrics

performance=metrics.categorical_accuracy

model.compile(loss=loss, optimizer=sgd，metrcis=[performance])

model.fit(x=X, y=y, batch_size=32, epochs=1,verbose=1)

model.save('duxinshu.h5')

model.summary()

• 很多人都会认为keras作为一个容易上手的框架，是把很多运算隐藏，所以包装太多，灵活性一定很差。但是需要注意，keras使用了tensorflow、Theano和CNTK的backend，我们完全使用其后端来进行创新设计，灵活性事实上非常高，前提是一定要清楚深度学习和机器学习很多理论。

• keras的模型搭建方式有两种，本文介绍了其中一种，叫做函数式模型，另外一种叫做序列式，序列式搭建简单模型更快，但函数式更加灵活。此文仅展示了keras的基本功能，还有很多功能将在具体的任务中使用。

• 发表于:
• 原文链接https://kuaibao.qq.com/s/20181014A1OCGB00?refer=cp_1026
• 腾讯「云+社区」是腾讯内容开放平台帐号（企鹅号）传播渠道之一，根据《腾讯内容开放平台服务协议》转载发布内容。
• 如有侵权，请联系 yunjia_community@tencent.com 删除。

2021-11-30

2021-11-30

2021-11-30

2021-11-30

2021-11-30

2021-11-30

2018-06-19

2018-05-28

2018-05-22

2018-03-27

2021-11-30

2021-11-30