小编Ger*_*nno的帖子

使用 TFBertModel 和 HuggingFace 变压器的 AutoTokenizer 构建模型时出现输入问题

我正在尝试构建图中所示的模型: 在此输入图像描述

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

8
推荐指数
1
解决办法
5516
查看次数

无法从 Jupyter-lab 笔记本和 pathlib.Path 导入位于父文件夹中的模块

这是我的情况。我在某个文件夹中有一些 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 python-import python-3.x jupyter-notebook

7
推荐指数
1
解决办法
2595
查看次数

PyCharm 不生成文档字符串并且 Python 集成工具下没有设置

我正在尝试生成文档字符串来记录我的 python 函数,但是当我要

PyCharm > Settings > Tools > Python Integrated Tools

我发现一个空窗口,没有任何选项,特别是没有,Docstrings > Docstring format > reStructuredText这是我像同事一样配置文档格式所需的。

在此输入图像描述

此外,当我单击函数名称附近的灯泡并单击“插入文档字符串存根”时,什么也没有发生。

在此输入图像描述

有没有办法来解决这个问题?我PyCharm 2021.1.1 (Professional Edition)在 macOS 上使用。

python documentation docstring pycharm

7
推荐指数
1
解决办法
2489
查看次数

在 MacOS 10.14.16 上尝试安装 OCaml 时 opam 初始化失败

我正在尝试通过 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

macos ocaml opam

6
推荐指数
2
解决办法
2589
查看次数

在特定情况下取消引用指针

谁能告诉我为什么这段代码不起作用?它总是说分段错误

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 位编译器。

c

2
推荐指数
1
解决办法
148
查看次数

Pandas 创建一个框架,其条目是应用于其他 DataFrame 的相应条目的函数的值

我有树框架,让我们说:

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 上寻找其他问题,但找不到任何东西,这可能是由于我如何制定我的问题。

python dataframe pandas

1
推荐指数
1
解决办法
61
查看次数