@@ -367,7 +367,7 @@ | |||||
"name": "python", | "name": "python", | ||||
"nbconvert_exporter": "python", | "nbconvert_exporter": "python", | ||||
"pygments_lexer": "ipython3", | "pygments_lexer": "ipython3", | ||||
"version": "3.5.4" | |||||
"version": "3.7.9" | |||||
} | } | ||||
}, | }, | ||||
"nbformat": 4, | "nbformat": 4, | ||||
@@ -109,10 +109,13 @@ | |||||
"outputs": [], | "outputs": [], | ||||
"source": [ | "source": [ | ||||
"def vgg_block(num_convs, in_channels, out_channels):\n", | "def vgg_block(num_convs, in_channels, out_channels):\n", | ||||
" net = [nn.Conv2d(in_channels, out_channels, kernel_size=3, padding=1), nn.ReLU(True)] # 定义第一层\n", | |||||
" net = [nn.Conv2d(in_channels, out_channels, \n", | |||||
" kernel_size=3, padding=1), \n", | |||||
" nn.ReLU(True)] # 定义第一层\n", | |||||
"\n", | "\n", | ||||
" for i in range(num_convs-1): # 定义后面的很多层\n", | " for i in range(num_convs-1): # 定义后面的很多层\n", | ||||
" net.append(nn.Conv2d(out_channels, out_channels, kernel_size=3, padding=1))\n", | |||||
" net.append(nn.Conv2d(out_channels, out_channels, \n", | |||||
" kernel_size=3, padding=1))\n", | |||||
" net.append(nn.ReLU(True))\n", | " net.append(nn.ReLU(True))\n", | ||||
" \n", | " \n", | ||||
" net.append(nn.MaxPool2d(2, 2)) # 定义池化层\n", | " net.append(nn.MaxPool2d(2, 2)) # 定义池化层\n", | ||||
@@ -392,7 +392,7 @@ | |||||
"name": "python", | "name": "python", | ||||
"nbconvert_exporter": "python", | "nbconvert_exporter": "python", | ||||
"pygments_lexer": "ipython3", | "pygments_lexer": "ipython3", | ||||
"version": "3.5.4" | |||||
"version": "3.7.9" | |||||
} | } | ||||
}, | }, | ||||
"nbformat": 4, | "nbformat": 4, | ||||
@@ -96,7 +96,8 @@ | |||||
"test_data = torch.utils.data.DataLoader(test_set, batch_size=128, shuffle=False, num_workers=4)\n", | "test_data = torch.utils.data.DataLoader(test_set, batch_size=128, shuffle=False, num_workers=4)\n", | ||||
"\n", | "\n", | ||||
"net = resnet(3, 10)\n", | "net = resnet(3, 10)\n", | ||||
"optimizer = torch.optim.SGD(net.parameters(), lr=0.01, weight_decay=1e-4) # 增加正则项\n", | |||||
"optimizer = torch.optim.SGD(net.parameters(), \n", | |||||
" lr=0.01, weight_decay=1e-4) # 增加正则项\n", | |||||
"criterion = nn.CrossEntropyLoss()" | "criterion = nn.CrossEntropyLoss()" | ||||
] | ] | ||||
}, | }, | ||||
@@ -28,9 +28,11 @@ def train(net, train_data, valid_data, num_epochs, optimizer, criterion): | |||||
else: | else: | ||||
im = Variable(im) | im = Variable(im) | ||||
label = Variable(label) | label = Variable(label) | ||||
# forward | # forward | ||||
output = net(im) | output = net(im) | ||||
loss = criterion(output, label) | loss = criterion(output, label) | ||||
# backward | # backward | ||||
optimizer.zero_grad() | optimizer.zero_grad() | ||||
loss.backward() | loss.backward() | ||||
@@ -1,14 +1,14 @@ | |||||
# 深度学习 | # 深度学习 | ||||
深度学习(deep learning)是机器学习的分支,是一种试图使用包含复杂结构或由多重非线性变换构成的多个处理层对数据进行高层抽象的算法。 深度学习是机器学习中一种基于对数据进行表征学习的算法,至今已有数种深度学习框架,如卷积神经网络和深度置信网络和递归神经网络等已被应用在计算机视觉、语音识别、自然语言处理、音频识别与生物信息学等领域并获取了极好的效果。 | |||||
深度学习(deep learning)是机器学习的分支,是一种试图使用包含复杂结构或由多重非线性变换构成的多个处理层对数据进行高层抽象的算法。 深度学习是机器学习中一种基于对数据进行表征学习的算法,至今已有数种深度学习框架,如卷积神经网络、深度置信网络、递归神经网络等已被应用在计算机视觉、语音识别、自然语言处理、音频识别与生物信息学等领域并获取了极好的效果。 | |||||
区别于传统的浅层学习,深度学习的不同在于: | 区别于传统的浅层学习,深度学习的不同在于: | ||||
* 强调了模型结构的深度,通常有5层、6层,甚至10多层的隐层节点; [ | |||||
* 强调了模型结构的深度,通常有5层、6层,甚至10多层的隐层节点; | |||||
* 明确了特征学习的重要性。也就是说,通过逐层特征变换,将样本在原空间的特征表示变换到一个新特征空间,从而使分类或预测更容易。与人工规则构造特征的方法相比,利用大数据来学习特征,更能够刻画数据丰富的内在信息。 | * 明确了特征学习的重要性。也就是说,通过逐层特征变换,将样本在原空间的特征表示变换到一个新特征空间,从而使分类或预测更容易。与人工规则构造特征的方法相比,利用大数据来学习特征,更能够刻画数据丰富的内在信息。 | ||||
通过设计建立适量的神经元计算节点和多层运算层次结构,选择合适的输人层和输出层,通过网络的学习和调优,建立起从输入到输出的函数关系,虽然不能100%找到输入与输出的函数关系,但是可以尽可能的逼近现实的关联关系。使用训练成功的网络模型,就可以实现我们对复杂事务处理的自动化要求。 | 通过设计建立适量的神经元计算节点和多层运算层次结构,选择合适的输人层和输出层,通过网络的学习和调优,建立起从输入到输出的函数关系,虽然不能100%找到输入与输出的函数关系,但是可以尽可能的逼近现实的关联关系。使用训练成功的网络模型,就可以实现我们对复杂事务处理的自动化要求。 | ||||
典型的深度学习模型有[卷积神经网络(convolutional neural network)](1_CNN)、深度置信网络(Deep Belief Network, DBN)、堆栈自编码网络(stacked auto-encoder network)、循环神经网络(Recurrent Neural Network)、对抗生成网络(Generative Adversarial Networks,GAN)等。 | |||||
典型的深度学习模型有[卷积神经网络(convolutional neural network)](1_CNN)、深度置信网络(Deep Belief Network, DBN)、堆栈自编码网络(stacked auto-encoder network)、[循环神经网络(Recurrent Neural Network)](2_RNN)、[对抗生成网络(Generative Adversarial Networks,GAN)](3_GAN)等。 | |||||