# 英特尔黑客松比赛心得体会——JSTASR 深度神经去雪网络
一 .概述
在这次比赛中,我通过不断尝试,构建了业内领先的JSTASR深度神经去雪网络,来对SNow100K的5000张图片进行了单张图片去雪的实验,收获颇丰
二.参与原因
打比赛是学习深度学习的一种有效方式,因为比赛可以提供实际的问题和数据集,让我在实践中学习深度学习的理论知识,并且可以了解其他人的解决方案和技巧。在比赛中,我可以通过不断尝试和调整模型来提高自己的技能,同时也可以锻炼自己的团队协作和解决问题的能力。
三. 工作总结
模型构建:
对Tranformer以及Resnet的原理和结构有更深入的理解,更好地掌握去雪神经网络的结构和工作原理。
模型训练:
模型训练:
采用租用AutoDL服务器实现,通过ssh远程连接方便开发,也便于移植。
模型测试:
在数据集上进行图像去雪测试,对于常见的路况以及图片也能够有很好的效果。
四.Intel架构使用
我能够用 Intel® Optimization for PyTorch*做什么?
下载安装之后,配置完成,我们便可以用Intel架构来定义神经网络了。
python
os.environ["KMP_BLOCKTIME"] = "1"
os.environ["KMP_AFFINITY"] = "granularity=fine,verbose,compact,1,0"
os.environ["OMP_NUM_THREADS"] = "10"
# Define the CNN model
class Net(nn.Module):
def __init__(self):
super(Net, self).__init__()
self.conv1 = nn.Conv2d(1, 10, kernel_size=5)
self.conv2 = nn.Conv2d(10, 20, kernel_size=5)
self.dropout = nn.Dropout2d()
self.fc1 = nn.Linear(320, 50)
self.fc2 = nn.Linear(50, 10)
def forward(self, x):
x = nn.functional.relu(nn.functional.max_pool2d(self.conv1(x), 2))
x = nn.functional.relu(nn.functional.max_pool2d(self.dropout(self.conv2(x)), 2))
x = x.view(-1, 320)
x = nn.functional.relu(self.fc1(x))
x = self.fc2(x)
return nn.functional.log_softmax(x, dim=1)
使用 Intel® Optimization for PyTorch* 的好处包括:
更快的训练和推理速度:Intel® Optimization for PyTorch* 可以加速 PyTorch* 模型的训练和推理速度,使其在 Intel® CPU 和 GPU 上运行更快。
更高的性能:Intel® Optimization for PyTorch* 可以优化模型的计算性能,使其在 Intel® CPU 和 GPU 上获得更高的性能。
更好的精度:Intel® Optimization for PyTorch* 可以使用更高精度的计算,从而提高模型的精度。
模型测试效果:
五.收获心得
在这次比赛中,我通过构建了JSTATR网络结构,成功地对数据集进行图像雪花的去除,并且将先进的深度学习框架 Intel® Optimization for PyTorch*用入其中。非常符合生产实践中的一些经历,真的是一次宝贵的经历
看着通过自己的神经网络输出的图像去雪的效果,虽然不如市面上最先进的网络架构好,但毕竟迈出了我自己的一大步,希望之后能在这条道路上继续深耕,做出自己的成果!