import torch
from matplotlib import pyplot as plt
import numpy as np
import random
"""
生成数据集
"""
num_inputs = 2
num_examples = 1000
true_w = [2, -2.3]
true_b = 4.8
features = torch.randn(num_examples, num_inputs,
dtype=torch.float32)
labels = true_w[0] * features[:, 0] + true_w[1] * features[:, 1] + true_b
labels += torch.tensor(np.random.normal(0, 0.01, size=labels.size()),
dtype=torch.float32)
plt.scatter(features[:, 0].numpy(), labels.numpy(), 1)
plt.show()
"""
读取数据
"""
def data_iter(batch_size, features, labels):
num_examples = len(features)
indices = list(range(num_examples))
random.shuffle(indices) # 样本的读取顺序是随机的
for i in range(0, num_examples, batch_size):
j = torch.LongTensor(indices[i: min(i + batch_size, num_examples)]) # 最后一次可能不足一个batch
yield fea
pytorch 实现线性回归
最新推荐文章于 2024-07-24 15:22:35 发布