task1:
代码跑的时候没出现任何问题就是认证的时候有一点麻烦换了几个账号搞定的。
对任务基本了解,是对图片数据集做一个二分类内容,然后参数调优,将性能最大化。
task2
part1:深度学习
从大量数据自动学习提取特征,进行预测和决策。依赖神经网络进行计算。
机器学习&深度学习
前者使用简单的算法,需要人工设计特征工程来提高模型的性能;后者通过深层神经网络自动学习特征,能够处理和学习高维度和复杂的数据模式。
传统的机器学习算法需人工设计,称为特征工程;而深度学习能够自动从原始数据学习特征,可实现端到端的学习,直接从原始输入数据到最终输出结果。
经典机器学习算法:线性回归,决策树,随机森林,SVM,KNN等
线性回归
决策树
随机森林
SVM
KNN
要了解神经网络结构,神经元、层、向前传播和反向传播等概念。如何使用深度学习框架tensor flow或pytorch,它们提供了构建和训练深度学习模型所需的工具和API。掌握CNN、RNN、LSTM和Transformer模型
深度学习通常需要大量的数据来训练模型,对于某些领域或问题,获取足够的高质量数据可能是不现实的。
深度学习,这个网络的最底层接收输入数据,比如图片或文本,然后通过每一层的处理,逐渐提取出更高级别的特征,最后在顶层输出结果,比如识别图片中的物体或理解文本的含义。将基本的神经元模型组合起来就是神经网络
为了进一步提高模型的准确性和泛化能力,引入优化技术,激活函数的改进,权重初始化方法,正则化技术以及梯度下降的变种,等等。
Part2:深度学习如何训练
梯度下降是一种优化算法,用于最小化函数。梯度下降:损失函数的梯度指向函数增长最快的方向。因此,如果希望减少损失函数的值,就沿着梯度的反方向调整模型参数;训练时,先加载一小批量的数据,将其输入到神经网络,计算网络的输出。然后,使用损失函数来计算当前批次的损失,并通过反向传播计算损失函数关于每个参数的梯度,这些梯度告诉我们如何调整权重和偏置以减少损失。、
当数据集非常大时,一次性处理可能导致内存不足或计算过于缓慢。通过将数据分成小批量,可以频繁更新参数。
pytorch训练
准备一批图片数据(通过train_loader
)和这些图片对应的正确标签(target
)。
在开始训练之前,将模型设置为训练模式( model.train()
)
然后看学习后的预测结果output
预测结果和实际标签的loss
使用模型,让他自己指出错误,并更新他的内部参数减少这些错误(通过loss.backward()
和optimizer.step()
)
def train(train_loader, model, criterion, optimizer, epoch):
# switch to train mode
model.train()
end = time.time()
for i, (input, target) in enumerate(train_loader):
input = input.cuda(non_blocking=True)
target = target.cuda(non_blocking=True)
# compute output
output = model(input)
loss = criterion(output, target)
optimizer.zero_grad()
loss.backward()
optimizer.step()
训练代码包括前向传播、计算损失、反向传播和参数更新。这个过程会重复进行多轮(epoch),直到模型性能达到预期目标。