深度学习之迁移学习(打造自己的图像识别模型)

 

一、概论

       迁移学习(打造自己的图像识别模型)其实就是利用已有的深度神经网络(VGG16,AlexNet , GoogLeNet等)进行简单的微调。一般有如下几种方式:

  1. 只训练全连接层。
  2. 全部网络重新训练(使用已有参数/从头开始)
  3. 只训练部分网络。

二、数据准备

    原始的图片数据和标签需要转换成tfrecord格式的文件,tfrecord, 这是一种将图像数据和标签放在一起的二进制文件,能更好的利用内存,在tensorflow中快速的复制,移动,读取,存储 等等。

    1.原始图片保存在 data_prepare/pic中      

  • 0
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
PyTorch是一种用于机器学习的编程库,而GoogLeNet是一种深度卷积神经网络架构。然而,使用PyTorch实现迁移学习来应用于GoogLeNet的过程并不复杂。 首先,我们需要加载预训练的GoogLeNet模型。PyTorch提供了一个方便的方式来加载预训练好的模型: ``` import torch import torchvision.models as models # Load the pretrained model googlenet = models.googlenet(pretrained=True) ``` 接着,我们需要定义一些新的图层来适应我们特定的任务。假设我们想要对样本进行分类: ``` # Set requires_grad = False to freeze the pre-trained parameters for param in googlenet.parameters(): param.requires_grad = False # Replace the final fully-connected layer num_classes = 10 googlenet.fc = torch.nn.Linear(googlenet.fc.in_features, num_classes) ``` 在上面的代码中,我们冻结了预训练参数并替换了全连接层。我们还定义了一个新的num_classes参数来指定所需的类别数量。 接下来,我们需要定义优化器和损失函数。在这个示例中,我们将使用随机梯度下降(SGD)优化器和交叉熵损失函数: ``` # Define the optimizer and loss function optimizer = torch.optim.SGD(googlenet.fc.parameters(), lr=0.001) criterion = torch.nn.CrossEntropyLoss() ``` 在所有步骤都准备好之后,我们可以开始训练模型: ``` # Train the model for epoch in range(num_epochs): for batch_idx, (data, target) in enumerate(train_loader): # Forward pass output = googlenet(data) # Compute the loss loss = criterion(output, target) # Backward pass and optimize optimizer.zero_grad() loss.backward() optimizer.step() ``` 在训练完成后,我们可以评估我们的模型: ``` # Evaluate the model with torch.no_grad(): total_correct = 0 for data, target in test_loader: output = googlenet(data) pred = output.argmax(dim=1, keepdim=True) total_correct += pred.eq(target.view_as(pred)).sum().item() accuracy = 100. * total_correct / len(test_loader.dataset) print(f'Test accuracy: {accuracy:.2f}%') ``` 在这个示例中,我们使用PyTorch实现了GoogLeNet的迁移学习。虽然这只是一个简单的例子,但它说明了PyTorch和迁移学习的强大力量。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值