transformers我通过以下方式从 HuggingFace 获得了预训练的 BERT 和相应的分词器:
from transformers import AutoTokenizer, TFBertModel
model_name = "dbmdz/bert-base-italian-xxl-cased"
tokenizer = AutoTokenizer.from_pretrained(model_name)
bert = TFBertModel.from_pretrained(model_name)
Run Code Online (Sandbox Code Playgroud)
该模型将被输入一系列意大利推文,并需要确定它们是否具有讽刺意味。
我在构建模型的初始部分时遇到问题,该部分获取输入并将其提供给分词器,以获得可以提供给 BERT 的表示。
我可以在模型构建上下文之外做到这一点:
my_phrase = "Ciao, come va?"
# an equivalent version is tokenizer(my_phrase, other parameters)
bert_input = tokenizer.encode(my_phrase, add_special_tokens=True, return_tensors='tf', max_length=110, padding='max_length', truncation=True)
attention_mask = bert_input > 0
outputs = bert(bert_input, attention_mask)['pooler_output']
Run Code Online (Sandbox Code Playgroud)
但我在构建执行此操作的模型时遇到了麻烦。以下是构建此类模型的代码(问题出在前 4 行):
def build_classifier_model():
text_input = tf.keras.layers.Input(shape=(), dtype=tf.string, name='text')
encoder_inputs = tokenizer(text_input, return_tensors='tf', add_special_tokens=True, max_length=110, padding='max_length', truncation=True)
outputs = bert(encoder_inputs)
net = outputs['pooler_output'] …Run Code Online (Sandbox Code Playgroud) keras tensorflow bert-language-model huggingface-transformers huggingface-tokenizers
这是我的情况。我在某个文件夹中有一些 jupyter 笔记本,我想通过我制作的库在这些笔记本之间共享一些代码。
文件夹结构如下:
1.FirstFolder/
notebookA.ipynb
2.SecondFolder/
notebookB.ipynb
mylib/
__init__.py
otherfiles.py
Run Code Online (Sandbox Code Playgroud)
我尝试将以下代码放在笔记本的开头:
# to use modules in parent folder
import sys
import os
from pathlib import Path
libpath = os.path.join(Path.cwd().parent,'mylib')
print(f"custom library functions are in the module:\n\t{libpath}")
sys.path.append(libpath)
import mylib
Run Code Online (Sandbox Code Playgroud)
打印输出模块的正确路径,然后出现 ModuleNotFoundError 并导致程序崩溃:
---> 10 import mylib
11 from mylib import *
ModuleNotFoundError: No module named 'mylib'
Run Code Online (Sandbox Code Playgroud)
查找 SO 我发现这应该是从非默认文件夹导入模块的方法。错误在哪里?
编辑:在 FinleyGibson 的回答之后,我尝试sys.path.append(Path.cwd().parent)重新启动内核,但仍然遇到同样的问题。
EDIT2:我尝试了这个并且它有效,但我仍然想知道为什么以前的方法不起作用。
import sys
import os
from pathlib import Path
tmp = Path.cwd()
os.chdir(Path.cwd().parent)
sys.path.append(Path.cwd()) …Run Code Online (Sandbox Code Playgroud) 我正在尝试生成文档字符串来记录我的 python 函数,但是当我要
PyCharm > Settings > Tools > Python Integrated Tools
我发现一个空窗口,没有任何选项,特别是没有,Docstrings > Docstring format > reStructuredText这是我像同事一样配置文档格式所需的。
此外,当我单击函数名称附近的灯泡并单击“插入文档字符串存根”时,什么也没有发生。
有没有办法来解决这个问题?我PyCharm 2021.1.1 (Professional Edition)在 macOS 上使用。
我正在尝试通过 MacO 上的 OCaml 包管理器安装 OCaml opam。我已经opam通过自制程序成功安装了。启动包管理器会opam init产生以下错误:
[ERROR] Could not update repository "default":
OpamDownload.Download_fail(_, "Curl failed: \"/usr/bin/curl
--write-out %{http_code}\\\\n --retry 3 --retry-delay 2
--user-agent opam/2.1.0 -L -o
/private/var/folders/c_/6splkz692w16x82lzgnsxgfr0000gn/T/opam-57814-6b2069/index.tar.gz.part
-- https://opam.ocaml.org/index.tar.gz\" exited with code 60")
[ERROR] Initial download of repository failed.
Run Code Online (Sandbox Code Playgroud)
我可以做什么来促进成功连接到存储库并初始化opam?
谁能告诉我为什么这段代码不起作用?它总是说分段错误
int main()
{
int a = 10;
int b = (int)&a;
int *c = (int*)b;
printf("%d", *c);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
当我打印 的值时c,它是a我期望的地址,但是当我尊重它时,会发生分段错误。假设这是一个 32 位编译器。
我有树框架,让我们说:
ID A B | ID A B | ID A B
john * 1 | john # 2 | john @ 3
paul 1 1 | paul 2 2 | paul 3 3
jones 1 1 | jones 2 2 | jones 3 3
Run Code Online (Sandbox Code Playgroud)
我必须创建一个新的数据帧,其中每个条目都是一个函数的结果,该函数的参数是三个帧的相应条目
ID A B
john f(*,#,@) f(1,2,3)
...
Run Code Online (Sandbox Code Playgroud)
我是熊猫的新手,我知道如何做的唯一方法是将帧转换为numpy数组并像处理三个矩阵一样处理它们,但我更愿意以熊猫的方式解决这个问题。
我已经尝试在 SO 上寻找其他问题,但找不到任何东西,这可能是由于我如何制定我的问题。