机器学习基础实验报告
实验一:
一、实验目的
- 熟悉AWS SageMaker平台
- 学习如何对内存中的数据进行操作,NDArray是一个类,也是存储和变换数据的主要工具更加适合深度学习。
- 学习如何使用MXNet提供的 autograd 模块来自动求梯度。
- 学习对有用到的MXNet函数和类如何查阅文档。
- 学习如何只利用 NDArray 和 autograd 来实现一个线性回归的训练。
二、实验内容和步骤
练习一:
运行本节中的代码,保存运行结果
1. 构造两个100x100大小,类型为NDArray的矩阵A和B,其元素符合均值为0,标准差为1的随机正太分布
2. 计算向量 (大小为100x1的向量),这里 ( 范数的平方,注意这里范数计算出来的 值需要转成标量才能取平方),其中下标i代表B矩阵第i列,向量d类型为NumPy格式
3. 将第41行notebook中的条件判别式X==Y改为X<Y,看看能够得到什么样的NDArray
练习二:
运行本节代码,并保存结果到实验报告
运行下列控制流求梯度的例子,并分析结果。
import math
def f(x):
y = x # going to change y but still want to use x
if x < 0.75: # variable num_loops because it depends on x
num_loops = math.floor(1/(1-x.asscalar()))
for i in range(num_loops):
y = y * x # increase polynomial degree
else: # otherwise flatline
y = y * 0
return y
def get_grad(f, x):
x.attach_grad()
with autograd.record():
y = f(x)
y.backward()
return x.grad
xs = nd.arange(0.0, 1.0, step=0.1)
grads = [get_grad(f, x).asscalar() for x in xs]
print(grads)
练习三:
查阅 NDArray 支持的其他操作,截图放在实验报告里。
练习四:
为什么 squared_loss 函数中需要使用 reshape 函数?
尝试使用不同的学习率和批量大小,观察损失函数值的下降趋势。
三、代码及运行结果分析
练习一:
编辑
练习二:
编辑
练习三:
编辑
练习四:
编辑
四、心得体会
本次实验学习先了解python中的ndarray的相关知识,进而进行学习相关的深度学习如自动求梯度,以及线性回归的相关训练。本次实验还查阅了NDArray 支持的其他操作,从而能更加的了解NDArray并而学习相关知识。通过本次实验,收获颇多,对今后机器学习有了更大的帮助。