下载实验源码

https://github.com/microsoft/Oscar

服务器安装azcopy

给的都是azcopy的方式(第一次用),先安装azcopy

  • wget -O azcopy.tar.gz https://aka.ms/downloadazcopy-v10-linux (服务器没通过,似乎是安全问题)
  • https://docs.microsoft.com/zh-cn/azure/storage/common/storage-use-azcopy-v10#download-azcopy(官网手动下载,上传至服务器)
  • 添加系统路径(参考文章 https://blog.csdn.net/rav009/article/details/103802232,将azcopy添加至系统路径,在文件末尾添加PATH)

使用azcopy下载数据集

  • 不知道是服务器的网络原因还是什么别的原因,服务器无法使用azcopy,最后还是在windows上用azcopy下载,然后二手转交给服务器吧

  • 问了一下,这几个数据集最小的也几十个G,大的几百G,我还是去调下服务器吧。。

  • 服务器用校园网登陆就好了,之前是因为无法访问外网导致的似乎

  • 下载到一半又断了,现在连重登陆都不行了(不会还计费吧。。。)

  • azcopy copy ‘https://biglmdiag.blob.core.windows.net/vinvl/datasets/coco_caption’ ‘/data/guojiahua/Oscar’ --recursive

  • azcopy copy ‘https://biglmdiag.blob.core.windows.net/vinvl/datasets/nocaps’ ‘/data/guojiahua/Oscar’ --recursive

  • azcopy copy ‘https://biglmdiag.blob.core.windows.net/vinvl/datasets/coco_ir’ ‘/data/guojiahua/Oscar’ --recursive

  • azcopy copy ‘https://biglmdiag.blob.core.windows.net/vinvl/datasets/vqa’ ‘/data/guojiahua/Oscar’ --recursive

  • azcopy copy ‘https://biglmdiag.blob.core.windows.net/vinvl/datasets/gqa’ ‘/data/guojiahua/Oscar’ --recursive

  • azcopy copy ‘https://biglmdiag.blob.core.windows.net/vinvl/datasets/nlvr2’ ‘/data/guojiahua/Oscar’ --recursive

  • azcopy copy ‘https://biglmdiag.blob.core.windows.net/vinvl/image_features/coco_X152C4_frcnnbig2_exp168model_0060000model.roi_heads.nm_filter_2_model.roi_heads.score_thresh_0.2/model_0060000/’ ‘/data/guojiahua/Oscar’ --recursive

  • azcopy copy ‘https://biglmdiag.blob.core.windows.net/vinvl/image_features/flickr30k_X152C4_frcnnbig2_exp168model_0060000model.roi_heads.nm_filter_2_model.roi_heads.score_thresh_0.2/model_0060000/’ ‘/data/guojiahua/Oscar’ --recursive

  • azcopy copy ‘https://biglmdiag.blob.core.windows.net/vinvl/image_features/coco_X152C4_frcnnbig2_exp168model_0060000model.roi_heads.nm_filter_2_model.roi_heads.score_thresh_0.2/model_0060000/’ ‘/data/guojiahua/Oscar’ --recursive

  • azcopy copy ‘https://biglmdiag.blob.core.windows.net/vinvl/image_features/gqa_X152C4_frcnnbig2_exp168model_0060000model.roi_heads.nm_filter_2_model.roi_heads.score_thresh_0.2/model_0060000/’ ‘/data/guojiahua/Oscar’ --recursive

环境安装

https://github.com/microsoft/Oscar/blob/master/INSTALL.md

服务器驱动最旧的是10.1的,没法装pytorch1.2.0,最后装的1.4.0,不知道会不会有影响

安装apex的时候需要nvcc。安装参考
https://blog.csdn.net/qq_34869928/article/details/100544888

最后参考的apex的GitHub主页上的安装方法安装成功了。
https://github.com/NVIDIA/apex

VPN安装

安装了XMANAGER和QV2RAY,但是并没有效果
下载还是全随缘

APEX版本问题

apex.amp模块找不到
找到了2020年发布的APEX旧版本,成功解决。

huggingface.transformer问题

ModuleNotFoundError: No module named ‘transformers.pytorch_transformers’
似乎是官方安装教程不太对,不要直接

pip install transformers

要先把代码git下来,然后在目录里这样安装:

pip install .

urllib3的问题

  • from urllib3 import exceptions

ImportError: cannot import name ‘exceptions’ from ‘urllib3’ (unknown location)

解决办法:https://github.com/urllib3/urllib3安装

request的问题

  • import requests

ModuleNotFoundError: No module named ‘requests’

解决办法:

pip install requests (这条无法解决问题)

conda install requests(这条可以解决)

regex的问题

  • import regex as re

ModuleNotFoundError: No module named ‘regex’

解决办法:

conda install regex

yaml的问题

import yaml

ModuleNotFoundError: No module named ‘yaml’

解决办法:

conda install yaml (没有解决)
conda install pyyaml(注意名字区别)

model name&path

transformers.pytorch_transformers.modeling_utils - Model name ‘/data/guojiahua/transformers/uncased_L-12_H-768_A-12’ was not found in model name list (bert-base-uncased, bert-large-uncased, bert-base-cased, bert-large-cased, bert-base-multilingual-uncased, bert-base-multilingual-cased, bert-base-chinese, bert-base-german-cased, bert-large-uncased-whole-word-masking, bert-large-cased-whole-word-masking, bert-large-uncased-whole-word-masking-finetuned-squad, bert-large-cased-whole-word-masking-finetuned-squad, bert-base-cased-finetuned-mrpc). We assumed ‘/data/guojiahua/transformers/uncased_L-12_H-768_A-12/config.json’ was a path or url but couldn’t find any file associated to this path or url.

问题原因:参数–model_name_or_path的写法不对(要指向json文件)

  • 错误写法:–model_name_or_path /data/guojiahua/transformers/uncased_L-12_H-768_A-12
  • 正确写法:–model_name_or_path /data/guojiahua/transformers/uncased_L-12_H-768_A-12/bert_config.json \

args的问题

  • config.img_layer_norm_eps = args.img_layer_norm_eps

AttributeError: ‘NoneType’ object has no attribute ‘img_layer_norm_eps’

解决办法:解决了其他问题后自动解决了

model问题

  • total_params = sum(p.numel() for p in model.parameters())

UnboundLocalError: local variable ‘model’ referenced before assignment

需要用到一些debug,不想再用print了,太难用了。
学了下远程连接调试,配置搞了一下午,走了不少弯路,感觉应该挺有用的。
https://blog.csdn.net/weixin_44283458/article/details/105426833

发现在此语句

BertImgForPreTraining.from_pretrained(
    args.model_name_or_path,
    from_tf=bool(’.ckpt’ in args.model_name_or_path),
    config=config)

此为官方的加载模块,进入内部,发现一处源码错误:

if pretrained_model_name_or_path in cls.pretrained_config_archive_map:config_file = cls.pretrained_config_archive_map[pretrained_model_name_or_path]
elif os.path.isdir(pretrained_model_name_or_path):config_file = os.path.join(pretrained_model_name_or_path, CONFIG_NAME)
else:config_file = pretrained_model_name_or_path

逻辑:

  • 判断是否是简写, 如果是则下载或读取缓存(不推荐,因为学校服务器空间少)
  • 判断是否为路径, 如果是则在路径中寻找config.json(问题在于,随着huggingface的模型越来越多,config.json已经改名MODEL_config.json了,因此这里应该为bert_config.json)

混合精度的LayerNorm问题

更改正确后可以正常读取模型参数文件:
但是在加载LayerNorm的时候会报错:

self.LayerNorm = BertLayerNorm(config.hidden_size, eps=config.layer_norm_eps)

查看了BertLayerNorm的方法,发现其来自APEX库,并非huggface,因此怀疑大概又是版本问题:

from apex.normalization.fused_layer_norm import FusedLayerNorm as BertLayerNorm

源代码中此代码段被try包裹,因此看不到任何报错信息,将try去掉后可见:

Traceback (most recent call last):
File “oscar/run_oscarplus_pretrain.py”, line 556, in
 main()
File “oscar/run_oscarplus_pretrain.py”, line 266, in main
 config=config)
File “./oscar/modeling/modeling_utils.py”, line 801, in from_pretrained
 model = cls(config, *model_args, **model_kwargs)
File “./oscar/modeling/modeling_bert.py”, line 975, in init
 self.bert = BertImgModel(config)
File “./oscar/modeling/modeling_bert.py”, line 155, in init
 self.embeddings = BertEmbeddings(config)
File “./transformers/pytorch_transformers/modeling_bert.py”, line 253, in init
 self.LayerNorm = BertLayerNorm(config.hidden_size, eps=config.layer_norm_eps)
File “/home/guojiahua/miniconda3/envs/oscar/lib/python3.7/site-packages/apex/normalization/fused_layer_norm.py”, line 133, in init
 fused_layer_norm_cuda = importlib.import_module(“fused_layer_norm_cuda”)
File “/home/guojiahua/miniconda3/envs/oscar/lib/python3.7/importlib/init.py”, line 127, in import_module
 return _bootstrap._gcd_import(name[level:], package, level)
ModuleNotFoundError: No module named ‘fused_layer_norm_cuda’

可见是apex包内部出现的问题, 前往查找解决方案:
解决要点:

  • 查看nvcc版本
  • 查看pytorch.version.cuda版本
  • 保持上述二者版本一致
  • 找到对应版本的apex的branch,参考:https://github.com/NVIDIA/apex/issues/802

tensorboardX报错

pip install tensorboardx

load() missing 1 required positional argument: ‘Loader’

这个问题是pyyaml的版本过高引起的,为了不修改源代码,将pyyaml降级
参考:https://blog.csdn.net/qq_33580192/article/details/121080535

pip uninstall pyyaml
pip install pyyaml==5.4.1

数据路径报错

No such file or directory: ‘/data/guojiahua/Oscar/X152C4_frcnnbig2_exp168model_0060000model.roi_heads.nm_filter_2_model.roi_heads.score_thresh_0.2/coco/imageid2idx.json’

  • /data/guojiahua/Oscar 对应参数–data_dir
  • /X152C4_frcnnbig2_exp168model_0060000model.roi_heads.nm_filter_2_model.roi_heads.score_thresh_0.2/coco/ 读取自yaml文件
  • imageid2idx.json 应该是代码中写的

Imageid2idx file /data/guojiahua/Oscar/vinvl/image_features/coco_X152C4_frcnnbig2_exp168model_0060000model.roi_heads.nm_filter_2_model.roi_heads.score_thresh_0.2/model_0060000/imageid2idx.json does not exists!

  • 解决方法同上

No such file or directory: ‘/data/guojiahua/Oscar/coco_flickr30k_gqa.lineidx’

-猜测应该是指tsv文件

减少预训练数据的方法

修改yaml文件中的corpus数据项

缺少.lineidx文件

找了github 并没有这个结尾的文件
猜测是代码错写成lineidx 实则为tsv文件
但是读了代码之后发现并不是,尝试将https://biglmdiag.blob.core.windows.net/vinvl/pretrain_corpus/coco_flickr30k_gqa.tsv的后缀更改为lineidx后,发现可以访问,此问题可以解决

缺少prediction_gt.tsv文件

通过github提供的地址下载来的数据集只有prediction.tsv
去读读代码,看_gt是哪里来的,gt应该是ground-truth的缩写
首先还是猜测代码写错了,改文件名过来试试看

还要继续减少图片数量

光coco的加载就要耗时1小时

芜湖 跑起来了

Oscar-实验过程记录相关推荐

  1. Vertica集群扩容实验过程记录

    需求: 将3个节点的Vertica集群扩容,额外增加3个节点,即扩展到6个节点的Vertica集群. 实验环境: RHEL 6.5 + Vertica 7.2.2-2 步骤: 1.三节点Vertica ...

  2. HRSC2016舰船检测训练实验过程记录

    博主目前正尝试使用HRSC2016图片1000张多左右,每张舰船约1-3只,分辨率为 1182*827 用以finetune textboxes++,实现任意方向的目标的检测 训练过程参考: 利用ca ...

  3. 软件测试实验过程记录

    软件测试 题目1 电话号码问题 某城市电话号码由三部分组成.它们的名称和内容分别是: (1)地区码:空白或三位数字: (2)前 缀:非'0'或'1'的三位数字: (3)后 缀:4 位数字. 假定被测程 ...

  4. 脑电实验注意事项及实验过程中伪迹识别

    点击上面"脑机接口社区"关注我们 更多技术干货第一时间送达 Rose分享一篇群友 Tina关于脑电实验的学习笔记,感谢脑机社区群友Tina的分享. 实验前准备 1.填写被试信息及知 ...

  5. tensorflow 实验过程可重复

    在做科研时使用tensorflow作为算法开发工具.后来有了更好用的pytorch之后,由于很多基础代码都是用tensorflow编写的,所以,就没有转到pytorch上来. 最近在写论文,比较重视算 ...

  6. 一卡通(M1卡)破解过程记录——理论篇

    前些日子在研究学校的一卡通安全,在此记录一下一卡通破解的全过程,仅用作学习交流,切勿用于违法用途 其他几篇: 一卡通(M1卡)破解过程记录--准备篇              获取扇区密钥      ...

  7. kali实验过程与结果讲解

    kali实验过程与结果讲解(学习) 前期准备:打开虚拟机,开启完毕后会显示服务器的ip 1. 收集此服务器的信息. 1) 开放的端口及服务 nmap 192.168.100.100 通过命令查看目标I ...

  8. Lab1实验过程及心得体会

    实验过程 1 Magic Squares 检验矩阵是否是幻方矩阵.首先要检验文本中输入数据是否满足规范(包括是否构成方阵.是否按要求将数据以制表符隔开.是否包含小数和负数.是否有非法字符等),在满足规 ...

  9. 树莓派3B实现软路由过程记录(无线网络通过网线共享给台式机)

    树莓派3B实现软路由过程记录 背景 实验过程 准备openwrt固件 向TF卡里刷入固件 设置路由器 总结 背景 实验室有一台台式机电脑,没有无线网卡,之前一直使用有线网上网,但体验极差.后实际测试时 ...

  10. Linux嵌入式驱动开发07——GPIO驱动过程记录(飞凌开发板)

    文章目录 全系列传送门 1. 在/arch/arm/boot/dts/imx6q-pinfunc.h查找 2. 在设备树配置文件中添加设备节点定义以及其引脚定义 3. 修改设备树文件添加配置 4. d ...

最新文章

  1. php显示服务器文件,php-无法显示从新服务器下载文件的进度(在以前的服务器上工作)...
  2. 命令查看java的class字节码文件、verbose、synchronize、javac、javap
  3. JDK5--Annotation学习:基础(二)
  4. 获取当天日期、昨天日期
  5. 圣思园java.doc_北京圣思园java课堂笔记.doc
  6. [转载] python导入numpy函数库
  7. 2.TCP/IP 详解卷1 --- 链路层
  8. Ubuntu16.04编译Android6.0/cm13.0教程及相关错误解决办法
  9. Java面经-海康威视
  10. C++写OpenCV图像灰度化
  11. 海康云台摄像机 ISAPI 的签名机制与语音传输
  12. destoon ajax_area_select,destoon城市地区两级联动
  13. php框架 f,ShuipFCMS: ShuipFCMS是一款基于ThinkPHP框架开发的内容管理系统!
  14. 三维建模,三维地理信息的作用
  15. python使用openCV图像加载(转化为灰度图像)、平滑图像处理就是将每个像素的值变换为其相邻元素的平均值、可视化平滑处理之后的图像(Blurring Images)
  16. 自媒体创作没思路?这4款内容创作爆文神器助你摆脱内容瓶颈!
  17. 一人干翻专业机构,27岁华裔小伙一战成名!搞出美国新冠最准预测模型,彭博:Superstar
  18. 什么是操作系统中所说的原语(Primitives)
  19. VUE+VSCODE(新建一个项目)
  20. 飞腾2000/4C调试问题记录

热门文章

  1. 计算机硬盘无法启动怎么办,电脑硬盘不读盘无法开机怎么办
  2. GIS是什么?『总览篇』
  3. iOS开发苹果支持中文字体,和使用字体
  4. 如何做到数据分析报告(六)
  5. java hevc和heif_HEVC和HEIF有哪些区别 HEVC和HEIF将兼容哪些设备
  6. select标签操作 select2使用详解
  7. 【区块链】PoW、PoS、DPoS算法详解及对比
  8. 从蒙牛到小度,跨年晚会中的国民品牌变迁
  9. react黑马前端学习笔记
  10. CF1265E Beautiful Mirrors