# AI_CV_Homework3 **Repository Path**: chrisshane/AI_CV_Homework3 ## Basic Information - **Project Name**: AI_CV_Homework3 - **Description**: AI_CV训练营第三次作业 Pytorch及猫狗分类 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-01-03 - **Last Updated**: 2021-01-03 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # AI_CV_Homework3 > 一:选择题:(多选) > > 1.关于PyTorch描述正确的是:(10分) BC > > A 是Tensorflow的高级接口 > B 是深度学习框架 > C 使用方法和numpy接近 > D 静态图框架 > > 2.Adam和Sgd,以下解释不正确的是:(10分) AD > > A Sgd是优化策略,而Adam是损失策略 > B Adam比Sgd的理论优化速度快 > C Sgd可能使得优化陷入鞍点 > D Sgd是梯度下降法,Adam不是基于梯度下降法 > > > 3.PyTorch和Tensorflow的区别,以下描述正确的是:(10分) ABD > > A TF1X是静态图2X是动态图结构,PyTorch一直是动态图结构 > B PyTorch更多是学术界使用,TF工业界使用更多 > C keras是基于TF的高级接口。但是不能移植到PyTorch上 > D PyTorch和TF是现在最流行的深度学习框架 > > 二:非选择题:(50分,一个10分) > > 1.请解释如下方法体 > > torch.nn.Linear > > 用于设置网络中的全连接层,全连接层的输入与输出都是二维张量,一般形状为[batch_size,size],不同于卷积层要求输入输出是四维张量。 > > 原型: > torch.nn.Linear(in_features,out_features,bias=True) > 参数说明如下: > in_features 指的是输入的二维张量的大小。 > out_features 指的是输出的二维张量的大小,也代表了该全连接层的神经元个数。 > 从输入输出的张量的shape角度来理解,相当于一个输入为[batch_size, in_features]的张量变换成了[batch_size, out_features]的输出张量。 > > > torch.tensor > > 用来构造一个tensor > > 原型: > torch.tensor(data, dtype=None, device=None, requires_grad=False) > 其中data可以是:list,tuple,NumPy,ndarray等其他类型,torch.tensor会从data中的数据部分做拷贝(而不是直接引用), > 根据原始数据类型生成相应的torch.LongTensor torch.FloatTensor和torch.DoubleTensor > > torch.IntTensor > > 用于生成数据类型为整型的Tensor,传递给torch.IntTensor的参数可以是一个列表,也可以是一个维度值 > > torch.optim.Adam > > 用来选用Adam优化器 > > 原型: > class torch.optim.Adam(params, lr=0.001, betas=(0.9, 0.999), eps=1e-08, weight_decay=0) > 参数: > params (iterable) – 待优化参数的iterable或者是定义了参数组的dict > lr (float, 可选) – 学习率(默认:1e-3) > betas (Tuple[float, float], 可选) – 用于计算梯度以及梯度平方的运行平均值的系数(默认:0.9,0.999) > eps (float, 可选) – 为了增加数值计算的稳定性而加到分母里的项(默认:1e-8) > weight_decay (float, 可选) – 权重衰减(L2惩罚)(默认: 0) > 实现了Adam优化算法 > > > torch.nn.MSELoss > > 用来选用MSELoss损失函数 > > 原型: > class torch.nn.MSELoss(size_average=True) > 创建一个衡量输入x(模型预测输出)和目标y之间均方误差标准。 > > > > 2.请运行课程中猫狗分类的项目。并且截图预测结果(20分) > 请参照文件夹 CatDogConfiguration > 使用了Adam优化器, 学习率为0.0001