- 博客(29)
- 收藏
- 关注
原创 使用importlib动态导入python类
我写了好多个模型在model/这个文件夹下,有florence2_qwen、nougat_qwen等等,然后就成功特异性的导入你想导入的类啦。使用importlib!
2024-11-15 21:00:55
234
原创 dataclasses中asdict的用法
第二个是,使用魔术方法__post_init__声明变量也不被asdict返回,__post_init__用于在类执行__init__后自动执行。今天读源码读到这个函数的用法,它用在声明的dataclass类里面,将dataclass声明的属性变成字典返回。第一个是直接赋值的变量不会被asdict返回,只有声明的变量才行。
2024-09-27 13:38:21
485
原创 python异步处理
传统的运行轨迹是阻塞的,就是一行代码必须完成了,然后才能运行下一行代码。异步运行就是我们现在有多个任务task1(2s)和task2(3s),用一个asyncio.gather(task1(), task2())函数对任务进行分配,那么这两个任务会同时进行,最终花费时间以task2的3s为准,而不是阻塞式的5s。打印出来结果是3s。注意,一个是task1和task2里面要有await的任务,如果用time.sleep()是不行的因为time.sleep()不是个能异步运行的任务。
2024-09-24 21:32:04
351
原创 如何将普通Tokenizer变成Fast Tokenizer
现在的huggingface库里面Tokenizer有两种,一种就是普通的,另一种是fast的。我自己测试的时候单一一句的话fast要比普通的慢一些,当量叠上来,到100个句子,1000个句子的时候,fast要成倍数的更快。有post_processor定义,在使用的时候会自动添加special token,这里post_processor最多处理两句,多句就报错了。其中vocab将新的词表进行了更新,使得词表长度是原来的词表长度加上我们额外定义的special token的长度。
2024-09-23 22:25:29
613
原创 构建自己模型的Tokenizer
要自定义Tokenizer肯定是要有个父类的,如果用PretrainedTokenizer的话,里面的方法比如,vocab_size,get_vocab, _tokenize,_convert_token_to_id,_convert_id_to_token等几个关键的方法是需要根据自己的要求自定义的,其他的Tokenizer其实也是这么重写然后实现的,比如T5Tokenizer,可以去借鉴他们的写法然后改成自己的。因为我们的任务比较简单,我们可以继承T5Tokenizer,只重写里面的部分方法。
2024-09-23 17:49:11
727
原创 hydra.core.config_store中ConfigStore的用法
ConfigStore`可以让我们在python脚本中写一个类作为配置的yaml,不需要我们在新建yaml往里写东西了。与直接在目录里面添加yaml文件不同,`ConfigStore`支持使用类的方法,定义配置。就可以切换数据集配置啦,而且不需要再新建个`imagenet.yaml`选择配置dataset感觉还是第一种好些。
2024-09-22 18:35:58
284
原创 配置管理工具——omegaconf
omegaconf是专门用来解析.yaml文件,支持对yaml中设置参数的假设你的工作目录下有两个文件,一个是config.yaml,一个是main.py。解释一下`OmegaConf.save`中的参数`resolve`的含义,`resolve=True`意味着使用`resolve=True`后,字典是可以看到,`batch_size`变成了和`num_layers`一样的值。
2024-09-21 12:55:51
668
原创 缓存装饰器@cached_property
这个装饰器用在类里面的某个方法前面,当实例化这个类,然后第一次调用这个方法的时候会执行一次改方法,返回一个结果,后面如果再调用,就不执行,而是直接返回第一次运行的结果了,避免重复调用,节省了时间。这个装饰器和`@property`是一对,`@property`将方法变成属性,但是访问一次重新执行一次,而`@cached_property`执行一次就不变了。查阅资料,大体上了解了它的用法。此时func1这个函数,就是一个方法,没有被缓存,要是使用这个值那就得用`demo.fun1()`重新运行一遍。
2024-09-20 22:33:25
510
原创 关于python中屏蔽输出
python中屏蔽输出包含屏蔽标准输出(比如打印出来的内容)、屏蔽标准错误(错误信息)还有屏蔽logging信息等。屏蔽标准输出import contextlibimport oswith open(os.devnull, "w") as devnull: with contextlib.redirect_stdout(devnull): print("Hello, World!")运行上面的代码会发现,没有任何输出,因为`redirect_stdout`表示将标准
2024-05-28 11:34:10
663
原创 多线程处理python
总体来说,就加了个`from concurrent.futures import ThreadPoolExecutor`然后包装一个计算的函数`calculate_mean_std`,在`with ThreadPoolExecutor() as executor:`环境下执行`executor.map(calculate_mean_std, imgs)`就行了。这里`ThreadPoolExecutor()`的参数可以选择`max_workers`,没指定的话就默认给你选最多的。
2024-05-16 20:52:27
265
原创 使用torch完成多卡训练
因为我这个gpu进程得到的是这个进程上数据的loss,比如我有四张卡,第一张卡上batch size有64个数据,会产生一个loss,但是四张卡按理来说是256的batch size,我们的做法应该是把四张卡的loss加起来除以四。我不太懂,希望有明白的佬提点一下。第一个是torch.utils.data.DistributedSampler,这函数的就是给不同的gpu分配不通的数据,简单来说就是把编号1,3,5,...的数据分给gpu0,2,4,8,...分给gpu2等等,这一步只是把索引给分好。
2024-05-09 14:14:03
2394
原创 使用huggingface下载模型的时候如何,下载到我们指定的位置?
也可以指定HF_HUB_CHACHE,专门来存储模型数据集等。‘HF_HOME’是缓存所有内容的地址。
2024-04-17 15:21:21
2066
原创 GitHub Actions说明
语法:Workflow syntax for GitHub Actions - GitHub Docsaction市场:GitHub Marketplace · Actions to improve your workflow · GitHub
2024-02-17 20:57:23
391
1
原创 Arxiv API说明
Arxiv学术论文查询接口详解 | Young's BlogarXiv API Access - arXiv info
2024-02-16 11:29:20
766
1
原创 使用镜像源下载Hugging Face模型
hugging face 中的许多模型国内下载不了,本文提供了一种通过脚本批量下载模型权重配置文件的方法。
2023-11-13 18:39:46
2851
原创 关于arxiv下载下来的文件转成.zip无法导入overleaf的问题
针对arxiv文章latex源码如何导入overleaf问题给出解决方案。
2023-10-16 22:54:57
1085
2
原创 关于from functools import lru_cache的简单实例
关于from functools import lru_cache的简单实例
2023-03-07 17:06:54
186
原创 关于python中导入相对路径包或者函数报错(“ImportError: attempted relative import with no known parent package“)
python中导入相对路径的包或函数出错(”“ImportError: attempted relative import with no known parent package)
2023-02-21 19:54:46
1646
原创 JSONDecodeError: Expecting Value: Line * column * (char *)
导入.json文件时的JSONDecodeError问题
2023-01-08 17:06:49
513
原创 Altium Designer 17中的 vaults explorer 打不开问题
在使用Altium Designer 17的时候,你可能会遇到找不到vaults的问题参考文档:https://www.altium.com/documentation/altium-designer/from-idea-to-manufacture-driving-a-pcb-design-through-altium-designer?version=17.0#!the-design之后你可能还会遇到一个问题,就是打不开vaults explorer,提示你vaultsexplorer ex
2021-09-02 22:03:33
4460
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人