python使用多个输入和输出预测学习


def w_sum(a, b):  # 定义了一个运算函数
    assert (len(a) == len(b))  # len()是 Python 的内置函数之一,它返回对象的长度。
    # 当a和b长度一样的时,返回值为Ture
    # Python的assert是用来检查一个条件,如果它为真,就不做任何事。如果它为假,则会抛出AssertError并且包含错误信息。
    output = 0  # 赋值output的初始值为0
    for i in range(len(a)):  # for循环函数,自0开始便利全部函数
        output += (a[i] * b[i])  # output = a[1]*b[1]+a[2]*b[3]+……+a[i]*b[i]
    return output


def vect_mat_mul(vect, matrix):
    assert (len(vect) == len(matrix))
    output = [0, 0, 0]
    for i in range(len(vect)):
        output[i] = w_sum(vect, matrix[i])
    return output


weights = [[0.1, 0.1, -0.3],  # 权重,可以理解为第一个权重因子,也就是第一个输出的预测结果
           [0.1, 0.2, 0.0],  # 权重,可以理解为第2个权重因子,也就是第2个输出的预测结果
           [0.0, 1.3, 0.1]]  # 权重,可以理解为第3个权重因子,也就是第3个输出的预测结果


# 定义了一个网络函数的权重
def neural_network(input, weights):  # input是样本输入
    pred = vect_mat_mul(input, weights)  # 预测函数,调用运算函数
    return pred  # 返回预测结果


a1 = [8.5, 9.5, 10, 9]  # 样本1,输入样本
a2 = [0.65, 0.8, 0.8, 0.9]  # 样本2
a3 = [1.2, 1.3, 0.5, 1.0]  # 样本3
input = [a1[0], a2[0], a3[0]]
pred = neural_network(input, weights)
print(pred)
for j in range(len(a1)):
    input = [a1[j], a2[j], a3[j]]  # 将函数的第一个作为样板输入
    pred = neural_network(input, weights)  # 调用预测函数进行预测
    print("第", j, "次预测的结果是:", pred)
#第一次是a1[0]*weights[0][0]+a2[0]*weights[0][1]+a3[0]*weights[0][2]

输出结果为

[0.555, 0.9800000000000001, 0.9650000000000001]0 次预测的结果是: [0.555, 0.9800000000000001, 0.9650000000000001]1 次预测的结果是: [0.64, 1.11, 1.17]2 次预测的结果是: [0.93, 1.1600000000000001, 1.09]3 次预测的结果是: [0.69, 1.08, 1.2700000000000002]

进程已结束,退出代码0

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
LSTM(Long Short-Term Memory)是一种循环神经网络,对于时间序列数据的处理效果很好。利用Python实现LSTM多输入输出预测可以使用Keras库来实现。下面我来演示一下具体的源码实现。 ```python # 导入所需的库 import numpy as np from keras.models import Sequential from keras.layers import LSTM, Dense from keras.optimizers import Adam # 生成示例数据 def generate_data(n_samples, n_inputs, n_outputs, n_timesteps): X, y = list(), list() for _ in range(n_samples): X.append([np.random.rand(n_timesteps, n_inputs) for _ in range(n_inputs)]) y.append([np.random.rand(n_timesteps, n_outputs) for _ in range(n_outputs)]) return np.array(X), np.array(y) n_samples = 1000 n_inputs = 3 n_outputs = 2 n_timesteps = 10 X, y = generate_data(n_samples, n_inputs, n_outputs, n_timesteps) # 构建LSTM模型 model = Sequential() model.add(LSTM(100, activation='relu', input_shape=(n_timesteps, n_inputs))) model.add(Dense(n_outputs)) model.compile(optimizer=Adam(learning_rate=0.001), loss='mse') # 训练模型 model.fit(X, y, epochs=100, batch_size=32) # 使用模型进行预测 # 假设我们有新的输入数据new_X,形状为 (n_samples, n_inputs, n_timesteps) new_X = np.random.rand(n_samples, n_inputs, n_timesteps) predictions = model.predict(new_X) print(predictions) ``` 以上就是利用Python实现LSTM多输入输出预测的代码示例。在这个示例中,我们首先生成了一些示例数据,然后使用Keras库构建了一个LSTM模型,进行了训练,并最后使用模型进行了预测。这个示例可以帮助你更好地理解如何利用Python实现LSTM多输入输出预测

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值