当前位置:   article > 正文

深度学习常用资料整理_深度学习学习资料

深度学习学习资料

主要是对博主之前的博客做一些归纳整理和补充。

一. 数据集方面

1. 关于深度学习数据集的介绍可以参见此博客

Tensorflow知识点总结(一)_竹叶青lvye的博客-CSDN博客

2.mnist数据集获取的三种方式见博客

Tensorflow知识点总结(二)_竹叶青lvye的博客-CSDN博客

 3.对于一些深度学习框架,已经包含了常用的数据集,如下博客的最后有相关代码获取

Ubuntu配置TensorRT及验证_竹叶青lvye的博客-CSDN博客

 获取示例代码如下:

  1. import torch
  2. import torchvision
  3. train_data = torchvision.datasets.CIFAR10("./data",train=True,transform=torchvision.transforms.ToTensor,download=True)
  4. print("load ok")

 官网上有对pytorch的自带数据集进行介绍

 Datasets — Torchvision 0.12 documentation

官网上对keras自带数据集的介绍

常用数据集 Datasets - Keras 中文文档第

github上一些例子常用的数据集

第1个:

mirrors / shekkizh / FCN.tensorflow · GitCode用的是ADEChallengeData2016数据集

第2个:

GitHub - lsh1994/keras-segmentation: Get started with Semantic Segmentation based on Keras, including FCN32/FCN8/SegNet/U-Net

 用的是CamVid 数据集

第3个:

mirrors / divamgupta / image-segmentation-keras · GitCode数据集很丰富

第4个:

mirrors / balancap / ssd-tensorflow · GitCode 用的是Pascal VOC datasets (2007 and 2012)

第5个:

第Releases · ultralytics/yolov3 · GitHubCOCO数据集

博主此前已经有相关博客介绍了此资源

ultralytics/yolov3训练预测自己数据集的配置过程_竹叶青lvye的博客-CSDN博客_ultralytics yolov3

最近发现其已经更新到yolov5了,后期会重点研究,并部署到树莓派上

二.模型方面

第一个:

FCN.py · master · mirrors / shekkizh / FCN.tensorflow · GitCode用的是imagenet-vgg-verydeep-19.mat作为预训练模型,其前置网络模型是vgg19网络结构

 之前的博客中用其训练和预测了自己的数据集

第二个

GitHub - lsh1994/keras-segmentation: Get started with Semantic Segmentation based on Keras, including FCN32/FCN8/SegNet/U-Net

里的segnet用的是vgg16_weights_tf_dim_ordering_tf_kernels_notop.h5预训练模型参数

  1. #加载vgg16的预训练权重
  2. Vgg_streamlined.load_weights("premodel/vgg16_weights_tf_dim_ordering_tf_kernels_notop.h5")

之前的博客中用其训练和预测了自己的数据集

第三个

文件 · master · mirrors / divamgupta / image-segmentation-keras · GitCode

也用到了vgg16_weights_tf_dim_ordering_tf_kernels_notop.h5预训练模型

之前的博客中用其训练和预测了自己的数据集

第四个:

mirrors / balancap / ssd-tensorflow · GitCode 预训练模型是vgg_16.ckpt

之前的博客中用其训练和预测了自己的数据集

第五个:

Releases · ultralytics/yolov3 · GitHub 用的是自己提前训练好的yolov3.pt(在COCO数据集上)

之前的博客中用其训练和预测了自己的数据集,代码中用到了如下语句

model.load_state_dict(state_dict, strict=False)  # load

 可以知道其预训练模式保存的只是模型的参数

Pytorch踩坑记:赋值、浅拷贝、深拷贝三者的区别以及model.state_dict()和model.load_state_dict()的坑点_白马金羁侠少年的博客-CSDN博客_model.state_dict()

PyTorch:存储和恢复模型并查看参数,load_state_dict(),state_。。。 - 百度文库

Pytorch:模型的保存与加载 torch.save()、torch.load()、torch.nn.Module.load_state_dict()_宁静致远*的博客-CSDN博客_load_state_dict

三.速度性能比较

第一个实验:

ultralytics/yolov3训练预测自己数据集的配置过程_竹叶青lvye的博客-CSDN博客_ultralytics yolov3

拿上面博客中的网络做实验,比较有预训练模型和没有之间的性能差异(在同样的参数设定,迭代步数下)

有预训练模型:

无预训练模型

 对比可以知道加载预训练模型后,能够大大缩短模型到一个理想检测状态的训练时间。

第二个实验:

语义分割之SegNet训练预测自己的数据集_竹叶青lvye的博客-CSDN博客_segnet训练自己的数据集

 拿上面博客中的网络做实验,比较有预训练模型和没有之间的性能差异(在同样的参数设定,迭代步数下)

有预训练模型:

无预训练模型  

​可以看到预测结果不如有模型的,这里连检测结果都没有

第三个实验:

实验博客最后实现的MLP

无预训练模型

有预训练模型

修改代码如下:

  1. model.load_weights("MLP.h5")
  2. model_checkpoint = ModelCheckpoint("MLP.h5", monitor='val_loss', save_best_only=True, save_weights_only=True)
  3. model.fit(X_train, Y_train, batch_size=200, epochs=2, shuffle=True, verbose=1, validation_split=0.3,callbacks=[model_checkpoint])

 可以看到有预训练效果模型是要更好的

第四个实验:

可以看到博客中的一些代码

ultralytics/yolov3训练预测自己数据集的配置过程_竹叶青lvye的博客-CSDN博客_ultralytics yolov3

如下是从detect.py中截取的一些代码,可以看到其中有cpu和gpu的一些控制语句(pytorch),有模型的,有数据的

  1. parser.add_argument('--device', default='', help='cuda device, i.e. 0 or 0,1,2,3 or cpu')
  2. device = select_device(opt.device)
  3. half = device.type != 'cpu' # half precision only supported on CUDA
  4. half = False
  5. if classify:
  6. modelc = load_classifier(name='resnet101', n=2) # initialize
  7. modelc.load_state_dict(torch.load('weights/resnet101.pt', map_location=device)['model']).to(device).eval()
  8. for path, img, im0s, vid_cap in dataset:
  9. img = torch.from_numpy(img).to(device)
  10. def select_device(device='', batch_size=None):
  11. # device = 'cpu' or '0' or '0,1,2,3'
  12. s = f'YOLOv3
    声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/羊村懒王/article/detail/670771
    推荐阅读
    相关标签