线性回归
求解一个线性模型,使得真实数据点距离模型的欧氏距离最短。
适用于求解真实值的预测问题。
学习pytorch
Step1
# torch.normal(means, std, out=None)
# 返回一个张量,包含从给定参数means,std的离散正态分布中抽取随机数。
# torch.matmul
# 做乘法
def synthetic_data(w, b, num_examples):
x = torch.normal(0, 1, (num_examples, len(w)))
y = torch.matmul(x, w) + b
y += torch.normal(0, 0.01, y.shape)
return x, y.reshape((-1, 1))
true_w = torch.tensor([2, -3.4])
true_b = 4.2
features, labels = synthetic_data(true_w, true_b, 1000)
def data_iter(batch_size, features, labels):
num_examples = len(features)
indices = list(range(num_examples))
# shuffle将元素随机排列,打乱顺序
random.shuffle(indices)
# range(开始,终止,步长)
for i in range(0, num_examples, batch_size):
batch_indeices = torch.tensor(indices[i : min(i + batch_size, num_examples)])
# yield是一个生成器
yield features[batch_indeices], labels[batch_indeices]
batch_size = 10
for x, y in data_iter(batch_size, features, labels):
print(x, '\n', y)
<