Transformer库缓存路径没有改变

sha*_*dam 3 python sentiment-analysis huggingface-transformers

我已经尝试过但它对我不起作用。我正在使用这个Git 存储库。我正在构建一个桌面应用程序,不希望用户下载模型。我想通过构建来运送模型。我知道 Transformers 库会寻找cache/torch/transformers. 如果不存在,请下载它。我还知道你可以cache_dir在 中传递参数pre_trained。我正在尝试这个。

cache = os.path.join(os.path.abspath(os.getcwd()), 'Transformation/Annotators/New Sentiment Analysis/transformers')
os.environ['TRANSFORMERS_CACHE'] = cache


if args.model_name_or_path is None:
    args.model_name_or_path = 'barissayil/bert-sentiment-analysis-sst'
#Configuration for the desired transformer model
config = AutoConfig.from_pretrained(args.model_name_or_path, cache_dir=cache)
Run Code Online (Sandbox Code Playgroud)

我已经尝试了上述问题中的解决方案,并尝试了cache_dir。Transformer 文件夹与analyze.py 位于同一目录中。整个存储库和转换器文件夹位于 New Sentiment Analysis 目录中。

cro*_*oik 6

您实际上还没有显示不起作用的代码,但我假设您做了类似以下的事情:

from transformers import AutoConfig

import os
os.environ['TRANSFORMERS_CACHE'] = '/blabla/cache/'

config = AutoConfig.from_pretrained('barissayil/bert-sentiment-analysis-sst')

os.path.isdir('/blabla/cache/')
Run Code Online (Sandbox Code Playgroud)

输出:

False
Run Code Online (Sandbox Code Playgroud)

这不会创建新的默认缓存位置,因为您在设置环境变量之前导入了转换器库(我修改了您的链接问题以使其更加清晰)。修改默认缓存目录的正确方法是在导入 Transformers 库之前设置环境变量:

False
Run Code Online (Sandbox Code Playgroud)

输出:

True
Run Code Online (Sandbox Code Playgroud)