复制
收藏
提问
全网

%matplotlib inline import random import torch from d2l import torch as d2l def synthetic_data(w,b,num_exaples): """生成 y = Xw + b + 噪声""" X = torch.normal(0,1,(num_exaples,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) print('features:',features[0],'\nlabel:',labels[0]) d2l.set_figsize() d2l.plt.scatter(features[:,(1)].detach().numpy(),labels.detach().numpy(),1) # data_iter函数接收批量大小、特征矩阵和标签向量作为输入,生成大小为batch_size的小批量 def data_iter(batch_size, features, labels): # 填空1: 获取样本的总数 num_examples = # 填空2: 创建样本的索引列表 indices = None # 这些样本是随即读取的,没有特定的顺序 random.shuffle(indices) # 把索引随机打乱 for i in range(0, num_examples, batch_size): batch_indices = torch.tensor(indices[i:min(i + batch_size, num_examples)]) # 当i+batch_size超出时,取num_examples yield features[batch_indices], labels[batch_indices] # 获得随机顺序的特征及对应的标签 batch_size = 10 for X, y in data_iter(batch_size, features, labels): # 填空3: 打印一个小批量的特征 X 和对应的标签 y print(None) break

62f296da3
2个月前
全网
文档
学术
百科
知识库
时间不限
自动

理解问题%matplotlib inline import random import torch from d2l import torch as d2l def synthetic_data(w,b,num_exaples): """生成 y = Xw + b + 噪声""" X = torch.normal(0,1,(num_exaples,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) print('features:',features[0],'\nlabel:',labels[0]) d2l.set_figsize() d2l.plt.scatter(features[:,(1)].detach().numpy(),labels.detach().numpy(),1) # data_iter函数接收批量大小、特征矩阵和标签向量作为输入,生成大小为batch_size的小批量 def data_iter(batch_size, features, labels): # 填空1: 获取样本的总数 num_examples = # 填空2: 创建样本的索引列表 indices = None # 这些样本是随即读取的,没有特定的顺序 random.shuffle(indices) # 把索引随机打乱 for i in range(0, num_examples, batch_size): batch_indices = torch.tensor(indices[i:min(i + batch_size, num_examples)]) # 当i+batch_size超出时,取num_examples yield features[batch_indices], labels[batch_indices] # 获得随机顺序的特征及对应的标签 batch_size = 10 for X, y in data_iter(batch_size, features, labels): # 填空3: 打印一个小批量的特征 X 和对应的标签 y print(None) break

已完成理解%matplotlib inline import random import torch from d2l import torch as d2l def synthetic_data(w,b,num_exaples): """生成 y = Xw + b + 噪声""" X = torch.normal(0,1,(num_exaples,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) print('features:',features[0],'\nlabel:',labels[0]) d2l.set_figsize() d2l.plt.scatter(features[:,(1)].detach().numpy(),labels.detach().numpy(),1) # data_iter函数接收批量大小、特征矩阵和标签向量作为输入,生成大小为batch_size的小批量 def data_iter(batch_size, features, labels): # 填空1: 获取样本的总数 num_examples = # 填空2: 创建样本的索引列表 indices = None # 这些样本是随即读取的,没有特定的顺序 random.shuffle(indices) # 把索引随机打乱 for i in range(0, num_examples, batch_size): batch_indices = torch.tensor(indices[i:min(i + batch_size, num_examples)]) # 当i+batch_size超出时,取num_examples yield features[batch_indices], labels[batch_indices] # 获得随机顺序的特征及对应的标签 batch_size = 10 for X, y in data_iter(batch_size, features, labels): # 填空3: 打印一个小批量的特征 X 和对应的标签 y print(None) break

展开阅读网页

  • 根据代码生成合成数据并实现数据迭代。

合成数据生成

  • 定义合成数据函数:使用 synthetic_data 函数生成线性关系数据加上高斯噪声。5
  • 生成真实参数true_wtrue_b 定义了数据的真实线性关系。5

数据迭代实现

  • 获取样本总数num_examples 应设置为数据集中样本的总数,这里是 1000。3
  • 创建索引列表并打乱:使用 random.shuffle 打乱索引以实现随机读取样本。3
  • 分批次生成数据:通过 data_iter 函数,按 batch_size 分批次生成数据。3

代码填空

  • 填空1num_examples = len(labels)
  • 填空2indices = list(range(num_examples))
  • 填空3:打印小批量数据示例,使用 print(X, y)3
更专业一些
转笔记
专业
%matplotlib inline import random import torch from d2l import torch as d2l def synthetic_data(w,b,num_exaples): """生成 y = Xw + b + 噪声""" X = torch.normal(0,1,(num_exaples,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) print('features:',features[0],'\nlabel:',labels[0]) d2l.set_figsize() d2l.plt.scatter(features[:,(1)].detach().numpy(),labels.detach().numpy(),1) # data_iter函数接收批量大小、特征矩阵和标签向量作为输入,生成大小为batch_size的小批量 def data_iter(batch_size, features, labels): # 填空1: 获取样本的总数 num_examples = # 填空2: 创建样本的索引列表 indices = None # 这些样本是随即读取的,没有特定的顺序 random.shuffle(indices) # 把索引随机打乱 for i in range(0, num_examples, batch_size): batch_indices = torch.tensor(indices[i:min(i + batch_size, num_examples)]) # 当i+batch_size超出时,取num_examples yield features[batch_indices], labels[batch_indices] # 获得随机顺序的特征及对应的标签 batch_size = 10 for X, y in data_iter(batch_size, features, labels): # 填空3: 打印一个小批量的特征 X 和对应的标签 y print(None) break
不在提醒

更专业内容正在努力生成中
知识树
%matplotlib inline import random import torch from d2l import torch as d2l def synthetic_data(w,b,num_exaples): """生成 y = Xw + b + 噪声""" X = torch.normal(0,1,(num_exaples,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) print('features:',features[0],'\nlabel:',labels[0]) d2l.set_figsize() d2l.plt.scatter(features[:,(1)].detach().numpy(),labels.detach().numpy(),1) # data_iter函数接收批量大小、特征矩阵和标签向量作为输入,生成大小为batch_size的小批量 def data_iter(batch_size, features, labels): # 填空1: 获取样本的总数 num_examples = # 填空2: 创建样本的索引列表 indices = None # 这些样本是随即读取的,没有特定的顺序 random.shuffle(indices) # 把索引随机打乱 for i in range(0, num_examples, batch_size): batch_indices = torch.tensor(indices[i:min(i + batch_size, num_examples)]) # 当i+batch_size超出时,取num_examples yield features[batch_indices], labels[batch_indices] # 获得随机顺序的特征及对应的标签 batch_size = 10 for X, y in data_iter(batch_size, features, labels): # 填空3: 打印一个小批量的特征 X 和对应的标签 y print(None) break
合成数据在机器学习中的作用是什么?
如何使用PyTorch进行数据增强?
深度学习中数据预处理的重要性有哪些?
在线客服