껴안는 얼굴 / 트랜스포머 (토치)로 bert-base-uncased에 대한 관심 출력

나는 BERT 기반 어휘 대체에 관한 논문따르고있었습니다 (특히 방정식 (2)를 구현하려고 시도했습니다-누군가가 이미 전체 논문을 구현했다면 좋을 것입니다). 따라서 마지막 은닉 레이어 (출력에서 레이어의 순서가 확실하지 않은 것은 마지막 첫 번째 또는 첫 번째 먼저?)와 기본 BERT 모델 (bert-base-uncased)의 관심을 모두 얻고 싶었습니다.

그러나 bert-base-uncased에 대한 허깅 페이스 / 트랜스포머 라이브러리가 실제로주의를 출력 하는지 (나는 횃불을 사용하고 있었지만 대신 TF를 사용하는 데 열려 있는지) 확실하지 않습니다.

에서 내가 읽은 것을 , 나는 (logits, hidden_states, 관심)의 튜플을 얻을 것으로 예상했지만, (실행 구글 Colab에서 예) 아래의 예와, 내가 대신 길이 2의 수.

내가 얻는 것을 오해하거나 잘못된 방식으로 진행하고 있습니까? 나는 명백한 테스트를 수행하고 output_attention=False대신 사용 output_attention=True했으며 ( output_hidden_states=True실제로 예상대로 숨겨진 상태를 추가하는 것처럼 보임) 얻은 출력에 아무것도 변경되지 않았습니다. 그것은 분명히 도서관에 대한 나의 이해에 대한 나쁜 신호이거나 문제를 나타냅니다.

import numpy as np
import torch
!pip install transformers

from transformers import (AutoModelWithLMHead, 
                          AutoTokenizer, 
                          BertConfig)

bert_tokenizer = AutoTokenizer.from_pretrained("bert-base-uncased")
config = BertConfig.from_pretrained('bert-base-uncased', output_hidden_states=True, output_attention=True) # Nothign changes, when I switch to output_attention=False
bert_model = AutoModelWithLMHead.from_config(config)

sequence = "We went to an ice cream cafe and had a chocolate ice cream."
bert_tokenized_sequence = bert_tokenizer.tokenize(sequence)

indexed_tokens = bert_tokenizer.encode(bert_tokenized_sequence, return_tensors='pt')

predictions = bert_model(indexed_tokens)

########## Now let's have a look at what the predictions look like #############
print(len(predictions)) # Length is 2, I expected 3: logits, hidden_layers, attention

print(predictions[0].shape) # torch.Size([1, 16, 30522]) - seems to be logits (shape is 1 x sequence length x vocabulary

print(len(predictions[1])) # Length is 13 - the hidden layers?! There are meant to be 12, right? Is one somehow the attention?

for k in range(len(predictions[1])):
  print(predictions[1][k].shape) # These all seem to be torch.Size([1, 16, 768]), so presumably the hidden layers?

받아 들여진 답변에 영감을 받아 결국 효과가 있었던 것에 대한 설명

import numpy as np
import torch
!pip install transformers

from transformers import BertModel, BertConfig, BertTokenizer

tokenizer = BertTokenizer.from_pretrained('bert-base-uncased')
config = BertConfig.from_pretrained('bert-base-uncased', output_hidden_states=True, output_attentions=True)
model = BertModel.from_pretrained('bert-base-uncased', config=config)
sequence = "We went to an ice cream cafe and had a chocolate ice cream."
tokenized_sequence = tokenizer.tokenize(sequence)
indexed_tokens = tokenizer.encode(tokenized_sequence, return_tensors='pt'
enter code here`outputs = model(indexed_tokens)
print( len(outputs) ) # 4 
print( outputs[0].shape ) #1, 16, 768 
print( outputs[1].shape ) # 1, 768
print( len(outputs[2]) ) # 13  = input embedding (index 0) + 12 hidden layers (indices 1 to 12)
print( outputs[2][0].shape ) # for each of these 13: 1,16,768 = input sequence, index of each input id in sequence, size of hidden layer
print( len(outputs[3]) ) # 12 (=attenion for each layer)
print( outputs[3][0].shape ) # 0 index = first layer, 1,12,16,16 = , layer, index of each input id in sequence, index of each input id in sequence
헨리

그 이유는 AutoModelWithLMHead실제 모델의 래퍼를 사용하고 있기 때문입니다 . BERT 모델 (즉,의 인스턴스 BERTModel)을 호출 한 다음 임베딩 행렬을 단어 예측을위한 가중치 행렬로 사용합니다. 기본 모델 사이에서 실제로주의를 반환하지만 래퍼는 신경 쓰지 않고 로짓 만 반환합니다.

을 호출하여 BERT 모델을 직접 가져올 수 있습니다 AutoModel. 이 모델은 로짓이 아니라 은닉 상태를 반환합니다.

bert_model = AutoModel.from_config(config)

또는 다음 BertWithLMHead을 호출 하여 객체 에서 가져올 수 있습니다 .

wrapped_model = bert_model.base_model

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

HuggingFace 'BertTokenizerFast.from_pretrained ('bert-base-uncased ')에서 max_length, padding 및 truncation 인수는 어떻게 작동합니까 ??

분류에서Dev

장치가 BiometricPrompt에 대한 얼굴 인증을 지원하는지 확인하는 방법

분류에서Dev

face_recognition 이상한 출력을 제공하는 얼굴 비교 기능

분류에서Dev

랜드 마크 포인트로 얼굴을 등록하는 방법

분류에서Dev

문자열을 웃는 얼굴로 대체하는 자바 스마일리

분류에서Dev

우리 얼굴에 대한 자바 스크립트 스트라이프

분류에서Dev

BERT 포옹 얼굴 모델의 점수를 사용하여 'SpanAnnotation'을 답변으로 변환

분류에서Dev

출력 예측에서 BERT "UNK"토큰을 처리하는 방법

분류에서Dev

얼굴 인식에 얼굴 키포인트를 적용하는 방법은 무엇입니까?

분류에서Dev

소스 얼굴과 대상 얼굴 사이의 모든 얼굴 찾기

분류에서Dev

포인터에 대한 배열의 출력이 관련이없는 이유

분류에서Dev

PHP는 img 태그로 웃는 얼굴을 대체

분류에서Dev

iOS에서 센서로 얼굴이 위로 향한 위치 감지

분류에서Dev

동일한 축에 다른 얼굴색 플로팅

분류에서Dev

여러 얼굴 이미지 업로드 (5-10 개의 얼굴 이미지, 동일한 치수), 매트릭스로 변경 및 R shiny에서 처음부터 PCA 수행

분류에서Dev

풍부한 얼굴 : 스크롤바가있는 패널 메뉴

분류에서Dev

한 세트의 사진에서 더 높은 해상도의 동일한 사진으로 얼굴 태그 복사

분류에서Dev

머티리얼 디자인을 사용하는 컴포넌트에 대한 Angular 2 사양 테스트

분류에서Dev

Akka로 최상위 액터에 대한 심판을 관리하는 방법

분류에서Dev

Weka : 소스로 출력 할 수있는 항목에 대한 제한?

분류에서Dev

C ++ 문자열은 웃는 얼굴을 출력합니다.

분류에서Dev

Windows 10 alt + end가 웃는 얼굴을 출력합니다.

분류에서Dev

이미지의 "관심 포인트"에 대한 키워드?

분류에서Dev

PHP 프랙털 (트랜스포머)은 이상한 json을 출력합니다.

분류에서Dev

LBPH로 얼굴 감지-특징 추출

분류에서Dev

얼굴 감지기의 adaboost 방법에 대한 약한 분류기의 임계 값을 지정하는 방법

분류에서Dev

"\\ haarcascade_frontalface_alt.xml"의 경로를 정의하는 동안 얼굴 감지에서 null 포인터 예외가 발생합니다.

분류에서Dev

쉘 스크립트 실행 : 대화식으로 입력 한 것처럼 출력에 명령을 포함하는 방법

분류에서Dev

나머지는 안심 얼마나 헤더에 토큰 인증을 통과?

Related 관련 기사

  1. 1

    HuggingFace 'BertTokenizerFast.from_pretrained ('bert-base-uncased ')에서 max_length, padding 및 truncation 인수는 어떻게 작동합니까 ??

  2. 2

    장치가 BiometricPrompt에 대한 얼굴 인증을 지원하는지 확인하는 방법

  3. 3

    face_recognition 이상한 출력을 제공하는 얼굴 비교 기능

  4. 4

    랜드 마크 포인트로 얼굴을 등록하는 방법

  5. 5

    문자열을 웃는 얼굴로 대체하는 자바 스마일리

  6. 6

    우리 얼굴에 대한 자바 스크립트 스트라이프

  7. 7

    BERT 포옹 얼굴 모델의 점수를 사용하여 'SpanAnnotation'을 답변으로 변환

  8. 8

    출력 예측에서 BERT "UNK"토큰을 처리하는 방법

  9. 9

    얼굴 인식에 얼굴 키포인트를 적용하는 방법은 무엇입니까?

  10. 10

    소스 얼굴과 대상 얼굴 사이의 모든 얼굴 찾기

  11. 11

    포인터에 대한 배열의 출력이 관련이없는 이유

  12. 12

    PHP는 img 태그로 웃는 얼굴을 대체

  13. 13

    iOS에서 센서로 얼굴이 위로 향한 위치 감지

  14. 14

    동일한 축에 다른 얼굴색 플로팅

  15. 15

    여러 얼굴 이미지 업로드 (5-10 개의 얼굴 이미지, 동일한 치수), 매트릭스로 변경 및 R shiny에서 처음부터 PCA 수행

  16. 16

    풍부한 얼굴 : 스크롤바가있는 패널 메뉴

  17. 17

    한 세트의 사진에서 더 높은 해상도의 동일한 사진으로 얼굴 태그 복사

  18. 18

    머티리얼 디자인을 사용하는 컴포넌트에 대한 Angular 2 사양 테스트

  19. 19

    Akka로 최상위 액터에 대한 심판을 관리하는 방법

  20. 20

    Weka : 소스로 출력 할 수있는 항목에 대한 제한?

  21. 21

    C ++ 문자열은 웃는 얼굴을 출력합니다.

  22. 22

    Windows 10 alt + end가 웃는 얼굴을 출력합니다.

  23. 23

    이미지의 "관심 포인트"에 대한 키워드?

  24. 24

    PHP 프랙털 (트랜스포머)은 이상한 json을 출력합니다.

  25. 25

    LBPH로 얼굴 감지-특징 추출

  26. 26

    얼굴 감지기의 adaboost 방법에 대한 약한 분류기의 임계 값을 지정하는 방법

  27. 27

    "\\ haarcascade_frontalface_alt.xml"의 경로를 정의하는 동안 얼굴 감지에서 null 포인터 예외가 발생합니다.

  28. 28

    쉘 스크립트 실행 : 대화식으로 입력 한 것처럼 출력에 명령을 포함하는 방법

  29. 29

    나머지는 안심 얼마나 헤더에 토큰 인증을 통과?

뜨겁다태그

보관