下面的代码训练了一个简单的三个数相加,虽然没必要用到这么多层以及这么多节点,但是就是为了做个demo出来,一把杀鸡的牛刀~

    image.png

    1. import keras
    2. from keras import layers
    3. import numpy as np
    4. from random import random
    5. # 初始化三层神经网络
    6. model = keras.Sequential()
    7. model.add(layers.Dense(7, input_dim=3))
    8. model.add(layers.Dense(5))
    9. model.add(layers.Dense(1))
    10. # 编译model,指明优化器和优化目标
    11. model.compile(
    12. optimizer='adam',
    13. loss='mse'
    14. )
    15. # 随机生成训练数据
    16. x = []
    17. y = []
    18. for i in range(10000):
    19. row = []
    20. for j in range(3):
    21. row.append(random())
    22. x.append(row)
    23. y.append(np.sum(row))
    24. x = np.array(x)
    25. y = np.array(y)
    26. # 训练模型
    27. model.fit(x, y, epochs=100, verbose=0)
    28. # 计算预测值
    29. test = [[4,4,4],[5,5,5],[1,1,1],[0.1,0.2,0.3]]
    30. test = np.array(test)
    31. predictions = model.predict(test)
    32. print(predictions)
    33. model.summary()

    image.png

    参考
    https://www.jianshu.com/p/589ed0a8137d