Keras学习之路——1

用keras实现异

在Ng的视频里面,介绍神经网络的时候就用了与、或、非、异或、同或来讲解。
通过两层的神经网络,第一层是三个units(包括偏置项),然后第二层也是三个units(包括偏置项),然后最后输出一个结果,每一层的激活函数(activation)都是tanh

刚刚看了keras的说明,想着简单用keras实现一下这个神经网络。

from keras.models import Sequential
from keras.layers import Dense, Activation, Dropout
import numpy as np

x_train = np.array([[0,0],[0,1],[1,0],[1,1]])
y_train = np.array([[0],[1],[1],[0]])


if __name__ == "__main__":
    model = Sequential()

    model.add(Dense(4, activation="tanh", input_dim=2, use_bias=True))
    model.add(Dense(1, activation="tanh", input_dim=3, use_bias=True))

    model.compile(loss='mse', optimizer='rmsprop')

    model.fit(x_train, y_train, epochs=1000)

    #score = model.evaluate(x_train, y_train)

    predict = model.predict(x_train)

    #print(predict)
    result=[]
    index = 0
    for i in predict:
        if i < 0.5:
            result.append(0)
        else:
            result.append(1)
    print(result)

首先给出x_train 和 y_train
然后用sequential()建立模型,通过add添加Dense来建立一层一层的神经
设置model的参数,也就是loss和optimizer

keras我感觉好的一点是有个叫model.summary()的东西,这个东西可以看到我的模型到底现在是几层、每一层的输入输出、参数

你可能感兴趣的:(机器学习)