机器学习 Keras拟合正弦函数

该博客演示了如何使用Python的Keras库来训练神经网络模型,以拟合随机生成的正弦函数数据集。首先定义了数据生成函数,然后创建了一个多层前馈网络,并使用随机梯度下降优化器进行训练。经过10000次迭代后,模型在数据集上进行了预测并绘制了结果。
摘要由CSDN通过智能技术生成

机器学习 Keras拟合正弦函数

1.dataset

from random import random
import numpy as np


def f(x):
    a = -1
    b = 1
    c = 1
    return a * (x ** 2) + b * x + c

def g(x):
    k = 1
    b = 1
    return k * x + b

def h(x):
    return np.sin(x)


def get_data(num):

    cnt = (np.random.random(100) - 0.5) * 20
    cnt = np.sort(cnt)
    X = cnt
    Y = h(cnt)
    return X, Y


if __name__ == '__main__':
    X, Y = get_data(100)
    print(X)
    print(Y)

2.keras

from turtle import color
import matplotlib.pyplot as plt
import numpy as np
import get_data
from keras.models import Sequential
from keras.layers import Dense
from keras.optimizers import SGD

X, Y = get_data.get_data(500)
model = Sequential()

# 当前层神经元数量:1  激活函数类型:sigmoid  输入数据特征纬度:1
model.add(Dense(units=200, input_dim=1))
model.add(Dense(units=100))
model.add(Dense(units=100))
model.add(Dense(units=100, activation='sigmoid'))
# model.add(Dense(units=100, activation='sigmoid'))
# model.add(Dense(units=100, activation='sigmoid'))
# model.add(Dense(units=100, activation='sigmoid'))
# model.add(Dense(units=100, activation='sigmoid'))
# model.add(Dense(units=100, activation='sigmoid'))
# model.add(Dense(units=100, activation='sigmoid'))
model.add(Dense(units=1))

# 损失函数(均方误差) 优化器(sgd:随机梯度下降算法) 评估标准(accuracy:准确度)
model.compile(loss='mse', optimizer=SGD(lr=0.01), metrics=['accuracy'])

model.summary()

model.fit(X, Y, epochs=10000, batch_size=20)

pres = model.predict(X)

plt.scatter(X, Y)
plt.plot(X, pres, color='red')
plt.show()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

==Microsoft==

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值