ratsgo / embedding Goto Github PK
View Code? Open in Web Editor NEW한국어 임베딩 (Sentence Embeddings Using Korean Corpora)
Home Page: https://ratsgo.github.io/embedding
License: MIT License
한국어 임베딩 (Sentence Embeddings Using Korean Corpora)
Home Page: https://ratsgo.github.io/embedding
License: MIT License
오타인지 아니면 저의 무지인지 잘 모르겠습니다.
안녕하세요! 책 내용과 관련해서 부족하지만, 제 개인 적인 생각을 담은 몇가지 이슈를 남겨봅니다.
먼저 들어가기 앞서서 평소에 이기창님의 블로그 글을 읽으며, 정말 많은 공부를 할 수 있었음에 진심으로 감사 인사를 드립니다 👍 👍
더불어 깔끔한 목차, 설명과 한번에 이해되는 그림까지 담은 정말정말 좋은 책을 써주셔서 감사드리며, 어제부터 정독을 하고 있습니다
P222
'Vaswani et al(2017)에 따르면 이 경우에 쿼리-키 내적 행렬의 분산을 줄이게 돼 개별 소프트맥스 값이 지나치게 작아지는 것을 방지' 보다 소프트맥스 값이 지나치게 커지는 것을 방지 또는 소프트맥스의 그래디언트가 작아지는 것을 방지가 더 올바르지 않을까라고 생각합니다
We suspect that for large values of dk, the dot products grow large in magnitude, pushing the softmax function into regions where it has extremely small gradients (Vaswani at el, 2017) Attention is all you need.
P228
그림 5-27을 보면 3x3 행렬에서 i==j 일때, 0으로 마스킹된다고 그려져 있으나, MaskedMultiHead Attention의 실제 구현 코드를 보면, i==j일때도 마스킹하지 않습니다(0이 마스킹).
i==j일 때도 셀프 어텐션하되, Language Model을 만들기 위해(Next token Predict) 준비하는 부분이 이 부분의 영향을 많이 받는다고 생각합니다
P230
전체 학습 데이터 토큰의 15%를 마스킹한다 보다, 학습 데이터 한 문장의 토큰의 15%를 마스킹한다가 더 옳을 것 같습니다. 실제 google-research/bert 코드를 보면 create_masked_lm_predictions
함수에 512 시퀀스 길이의 문장(즉, [CLS], A, [SEP], B, [SEP])가 들어오므로 이 라인을 보면 학습 데이터 한 문장의 토큰의 15%를 마스킹하는 것이 더 올바른 것 같습니다
논문에서도 in each sequence at random
이라는 표현이 붙습니다.
In all of our experiments, we mask 15% of all WordPiece tokens in each sequence at random.
감사합니다 😄
개요
임베딩 튜토리얼의 지도학습 기반 전처리 모듈을 구축한다
개요
프로젝트 개선사항을 여기에 종합 정리한다.
안녕하세요
이해하기 쉽게 책을 내주셔서 공부하던 중 발견한 오타들을 제보하고 몇가지 궁금증을 문의하려고 합니다.
1. transformer 내용 이후로 Pointwise라는 단어가 목차를 포함하여 매우 많이 나오는데(p225, p232, p233, p238 등) 정오표에서 처럼 모두 Position-wise로 수정하면 되는지 궁금합니다.
2. 코드 실행 후 유사도 평가 시 책의 결과와 다르게 나오는 경우가 많은데 데이터셋의 변화에 따른 정상적인 결과인지, 학습을 잘못 시켜 다른 결과가 나온것인지 궁금합니다.
3. p44의 서론 부분에서 GPU로만 학습이 가능한 모델은 ELMo, BERT, 단어 임베딩 파인 튜닝 부분이라 하셨는데 cpu로 실행 시 Word2Vec과 Glove, swivel, 가중임베딩, p106 bert 부분도 잘 실행되지 않았습니다.
4. p62의 아래에서 2번째 줄, "TF-IDF 행렬 구축 튜토리얼은 4.1절 '잠재 의미 분석' "--> 4.4절
5. p101의 위에서 7번째 줄, "preprocessmecab-user-dic.csv" --> preprocess/mecab-user-dic.csv
6. p106의 코드 3-27에서 /notebooks/embedding 위치에서 python을 실행하면 from bert.tokenization이 아니라 from models.bert.tokenization으로 실행해야 제대로 되는 것 같습니다.
7. p118 그림 4-5 밑에 문단에서 " 다섯 번째 단어가" --> "네 번째 단어가"
8. p127 위에서 2번째 줄, '가장 높은 단어 10개와' --> '가장 높은 단어 5개와'
9. p135 자소단위 fasttext 모델의 유사어 상위 목록 체크시 자소단위로 분해된 단어가 출력이 되는데 복원시키는 추가 과정을 직접 처리해야하는것인지 학습을 잘못시킨 것인지 궁금합니다.
(추가) word_eval.py의 jamo_to_word 함수를 사용하면 분해된 자소를 단어로 합쳐주는 기능이 있긴하네요. fasttext_jamo의 most_similar함수 실행 시 이부분을 추가해주시면 더 좋을 것 같습니다.
10. p137, 4.4.1 PPMI 행렬 'PMI Pointwise Mutual Information, 행렬(2장) --> 콤마(,) 삭제
11. p143 코드4-22와 코드4-23의 실행결과가 같게 나오던데 다르게 나오는게 정상인지 궁금합니다.
(추가) p143에 제공되는 4-21로 학습 한 후 4-22와 4-23을 실행시키니 같은 유사도 목록이지만 유사도 값이 조금씩 다르네요 ㅎㅎ 혼란을 드려 죄송합니다
12. p144 4.5.1의 두 번째 문단에서 '두 단어 동시 등장 빈도의 로그 값 A_ij'는 A_ij가 로그 값을 의미하는건지 해당 부분이 log A_ij을 나타내고 있는것인지 헷갈리네요. 저는 표현이 log A_ij를 나타낸다고 이해하였습니다.
13. p146, 코드 4-27의 model path 부분 "data/word-embeddings/glove/glove.txt" --> "data/word-embeddings/glove/glove.vecs.txt"
14. p148, "두 단어가 한 번도 등장하지 않았을 때 PMI는 음의 무한대로 발산하기 때문에" --> 두 단어가 한 번도 동시에 등장하지 않았을 때
15. p155, 문단에서는 "갑-을+정=병"으로 표시하고 있지만 표 4-7의 열은 갑,을,병,정 순서로 되어 있습니다.
16. p159, 코드 4-41 [python] 마커가 표시되어 있지 않습니다.
17. p161, '경제에서 인수 같은 단어가' --> 경제 부분 음영 처리
18. p163. Continous Bag of Words --> Continuous Bag of Words
19. p165, 코드 4-42, 'self.embeddings = defaultdict(list)' --> self.embeddings = defaultdict(list)) (오른쪽 끝에 우괄호 추가)
20. p184의 'y_i를 만드는 방식은 이렇다' 로 시작하는 부분에서 수식 5-2를 참고하면 '바이어스 벡터 b를 더해준 뒤' 까지는 y를 계산하는 부분이고 softmax를 취하면 P를 구하게 되는데 그럼 첫 문장이 확률 p를 구하는 방식이 되어야 하는게 아닌가 싶습니다.
21. p194의 'w_(d,n)은 d번째 문서 내에 n번째로 등장하는 단어'로 시작하는 문단에서 w_(d,n)은 블로그 내용을 참고하면 토픽의 단어 비중의 영향을 받는다고 되어있는데 기호가 잘못 표시된게 아닌가 싶습니다.
22. p195의 아래에서 두번째 줄 (z_(d,j))의 앞부분 설명이 'd번째 문서 i번째 단어가 속한 토픽'으로 바뀌거나 괄호안의 변수가 w_(d,n)이 되어야 서로 같은 내용을 얘기하게 될 것 같습니다.
23. p197의 표5-6은 '단어-토픽 행렬'이고 p198의 표5-8은 '단어-주제 행렬'인데 같은 의미인지, 서로 다른 행렬인지 궁금합니다.
24. p198번에서 깁스 샘플링 시 추정하려는 단어의 토픽 정보를 지운다 했는데 그림 5-12와 그림 5-13은 지우기 전의 분포를 그림으로 나타내고 있는 것 같습니다. 깁스샘플링 추정시 토픽 정보를 지운 분포를 참고하는 것인지 지우기 전의 분포를 참고하는 것인지 잘 이해가 되지 않습니다.
25. p201 코드 5-21의 python 마커 --> bash 마커
26. p213의 위에서 4번째 줄, 'ELMo 모델은 입력 문장의 토큰 수만큼의 임베딩들을 반환하게 된다.'라는 문장은 어떤 의미인지 잘 이해가 되지 않아 추가로 설명을 요청드립니다.
27. p213, 수식 5-5의 L이 정확히 어떤 의미인지 표현해주셨으면 합니다.
28. p218의 ELMo 프리트레이닝 코드에서 --train_prefix 'data/sentence-embeddings/elmo/pretrain-ckpt/traindata/* --vocab_file ... 이런 식으로 되어 있는데 github의 sentmodel.sh pretrain-elmo에선 *뒤에 '를 붙여 실행하고 있는데 sentmodel.sh 과 p218의 소스코드 모두 정상적으로 작동되지 않아 어떤 코드로 실행시켜야 하는지, gpu 1개 사용시 대략적으로 어느 정도의 시간이 소요되는지, 정상적으로 실행되었는지 확인할 수 있는 방법이 있는지 (결과로 어떤 파일이 생성되는지) 궁금합니다.
29. p219 멀티헤드 어텐션은 5.6.1, 5.6.2 --> 5.5.1, 5.5.2
30. p219 상단 피드포워드 네트워크는 5.6.3 --> 5.5.3
31. p223 5.6.1 --> 5.5.1
32. p231의 'max_num_token을 넘지 못할 때까지'라는 말은 max_num_token과 같거나 작아지도록 제거한다고 이해해도 되는 건지 궁금합니다.
33. p236의 아래에서 3번째 줄에 '원시 말뭉치가 너무 크면 전처리가 지나치게 느려질 수 있으므로' 라는 부분에서 코드부분을 보면 전처리 수행 후에 데이터를 분리하고 있는데 그렇다면 해당 문장에서의 전처리는 이후의 어휘 집합 구축을 의미하는것인지 어떤 전처리 내용을 말하는 것인지 궁금합니다.
자잘한 오타의 경우 나름대로 수정하여 이해하고 공부하다가 몇가지 질문할 것들이 생겨 질문하는 김에 정리하여 제보하였습니다. 정리도 잘 안되고 두서없는 많은 내용을 문의드려 불쾌하게 해드렸다면 죄송합니다ㅜㅜ
개요
임베딩 튜토리얼의 Sentence 임베딩 평가 모듈을 구축한다
안녕하세요.
페이지 68에 아래서 5번째 줄 - 표 2-4의내 마음 속에 영원히 기억될 최고의 명작이다
의 빈도가 아니라. 그 아이는 또바기 인사를 잘한다
가 맞는 것 같습니다.
또한 p72에 형태(form)이므로 p73맨 앞 단어에도 형식보다 형태로 오는게 맞는것 같습니다
더불어 P225의 트랜스포머 설명에서 Pointwise 보다 Position-wise가 좀 더 올바르지 않을까? 생각합니다!!
감사합니다 :D
page: 98
Kkma형태소 분석 결과와 Mecb 분석 결과에 오타가 있습니다.
Kkma에 '에/JKM' ---> '들어가/VV'
Mecab에 '가/JKS'가 2번 나옵니다. '방'으로 수정 필요.
===================
page 168
코드 4-46에 정의된 ----> 코드 4-47에 정의된
===================
page 170
코드 4-51에서
--embedding_corpus_path 로 'corpus_mecab.txt'를 넣어주고 있는데,
corpus_mecab.txt라는 파일은 없는 것 같습니다. 흐름상으로는 네이버 영화 리뷰 말뭉치가 들어가야 되니, 'ratings_mecab.txt'이 되어야 하지 않을까요?
===================
page 184
w_0, w_1, ..., w_{T-1}이기 때문에,
수식 5-1에서 \Sigma_{t=k}^{T-k} ===> \Sigma_{t=k}^{T-1}
이렇게 수정되어야 될 것 같습니다.
===================
page 187
코드 5-11에서
'Togged Document' ---> 'TaggedDocument'
from gensim.models.doc2vec import Togged Document
==>
from gensim.models.doc2vec import TaggedDocument
개요
각종 시각화 코드 모음
개요
XLNet 모듈을 프로젝트에 추가한다.
저자 코드를 그대로 가져온다.
40p에 오타를 발견했습니다.
기존 : 다운스트림 태스크 (downstearm)
수정 : 다운스트림 태스크 (downstream)
안녕하세요! 제공해주신 docker 컨테이너에서 p81의 python 코드와 p85의 자동 전처리 bash 코드 실행시 에러가 발생하여 문의드립니다.
output = open(out_f, 'w') 실행시 no such file or directory 에러가 발생하는데 혹시 빠뜨린 설정사항이 있어서 그런걸까요??
아직 미숙하여 개발 환경 설정이 쉽지 않네요ㅜ
개요
Term-Document 분석 예제를 정리한다
안녕하세요! 독자 여러분의 성원에 힘입어 2쇄 및 전자책 발간 일정이 다음과 같이 확정되었습니다.
부족한 책인데 이만큼 성원해 주셔서 진심으로 감사드립니다. 어깨가 무거워집니다.
본 레파지토리 이슈, 메일 등 다양한 방식으로 여러분들이 오류, 개선 사항에 대한 피드백을 주셨는데요.
10월 28일까지 들어온 모든 내용에 대해서는 종이책 2쇄에 반영을 하였습니다.
이후 추가 오류나 개선 의견 등에 대해서는 전자책에 반영할 예정입니다.
다시 한번 머리 숙여 감사드립니다.
이기창 올림
212 페이지 맨 밑에 문구에서
k번째 토큰의 j번째 레이어의 양방향, 역방향 LSTM 히든 벡터를 이어 ~~~
여기서 양방향, 역방향이 아니고 순방향, 역방향으로 수정하는 것이 맞는것 같습니다!!!!!!!
개요
임베딩 프로젝트의 하위 과제인 Swivel 코드를 레파지토리 내부로 가져온다.
가급적 원본 레파지토리를 유지해서 그대로 클론하는 것이 원칙이나 Swivel 모 레파지토리가 너무 커서 2019년 5월 25일 기준 필수 코드 3개(swivel.py, fastprep 관련 파일 두 개)만 가져온다.
안녕하세요.
먼저, 예전부터 블로그 글을 종종 구독하던 팬으로
한국어 임베딩 책을 통해 한글자료로 더 쉽고 빠르게 지식을 습득할 수 있게 해주셔서 감사하다는 인사부터 드립니다.
제가 issue를 남기는 이유는 다름이 아니라
책을 읽다 보니 벡터 계산에 대해 여쭙고 싶은게 생겨서요.
보통 지금까지 제가 봤던 벡터 계산 예시들은
뺄셈하는 두 단어는 공통된 성질을 가지는 관계였고, 더해주는 단어는 빼준 단어와 반의어 관계를 가졌습니다.
(예시: KING (왕)−MAN (남자)+WOMAN (여자) = QUEEN(여왕))
벡터의 계산이 교환법칙이 성립하기는 하지만,
순서를 바꾸더라도 단어에 적용된 부호들이 잘못된 것이 아닌가 싶습니다.
'아들+딸-소녀=소년'로 되어있는데
'아들-딸+소녀=소년'(혹은, '소녀-딸+아들=소년')이어야 하는것이 아닌지,
'아들+딸-아빠=엄마'가 아니라,
'아빠-아들+딸=엄마'가 되어야하는 것이 아닌지,
'신랑+신부-왕=여왕'이 아니라,
'왕-신랑+신부=여왕'이 되어야 하는게 아닌지...
즉, 첫번째 단어벡터 + 두번째 단어벡터 - 세번째 단어벡터 <- 이 식의 순서를 지킨다면
예시 단어들의 순서(첫번째 단어와 세번째 단어 교환)를 바꿔야 할 것 같습니다.
제 지식이 짧아 틀린 의견으로 번거롭게 해드린 것일 수도 있겠습니다만,
그래도 검토 부탁드립니다.
개요
임베딩 튜토리얼의 비지도학습 기반 전처리 모듈을 구축한다
안녕하세요. '한국어 임베딩'이라는 책에 관심이 생겨서 알아보고 있던 도중에 이 깃헙에 업로드 된 코드가 Tensorflow로 작성되어 있더라구요. 그런데 제가 TF를 볼줄 몰라서요.
혹시 이 깃헙에 올라온 코드를 Pytorch 딥러닝 프레임워크로 컨버전해서도 업로드 해주실 수 있으실까요?
개요
임베딩 튜토리얼 프로젝트를 만든다
모듈 구성요소는 다음과 같다
개요
한국어 임베딩 책 본문의 수정 사항을 종합 기록해둔다.
역방향 LSTM에서 각 LSTM Cell에서 예측하는 값들이 잘못된것 같습니다.
우측부터 첫번쨰라고 할때 첫번째 LSTM Cell에서는 '먹자'의 전 단어인 '밥'을 예측해야 한다고생각합니다.
그림에서는 '먹자'의 다음 단어인 ''를 예측하게 되어있는데, 이 경우 두번째 LSTM cell에서는 이미 그 전 LSTM Cell에서 '먹자'를 봤으므로 '먹자'라는 단어를 예측하는게 쉬워질 것 같습니다.
또한 gamma^task에 대한 추가 설명이 필요할 것 같습니다. 내용만으로는 이해가 되지 않습니다.
안녕하세요
bert를 fine-tuning 해보려고 데이터 찾아 넣었는데 로그를 보니까
1 Traceback (most recent call last):
2 File "models/tune_utils.py", line 5, in
3 from tensorflow.contrib import nccl
4 ImportError: cannot import name nccl
라고 떠서 nccl을 찾아보니까 멀티 gpu를 위한 라이브러리 같더라구요
근데 이 에러를 해결 못했는데 멀티 gpu설정을 해야 nccl을 사용할수 있나요?
81 페이지 코드 3-2 한국어 위키백과 전처리 를 실행시키니 다음의 에러가 나옵니다.
NameError Traceback (most recent call last)
in
5 out_f = "/notebooks/embedding/data/processed/processed_wiki-go.txt"
6 output = open(out_f, 'w')
----> 7 wiki = WikiCorpus(in_f, tokenizer_func=tokenize)
8 i=0
9 for text in wiki.get_texts():
NameError: name 'tokenize' is not defined
원인을 알려 주시면 감사
다시 말해 이 다음 학습 데이터를 만들 때는 "를"이라는 단어가 타깃단어(t)가 되고 "빨래"는 문맥 단어(c)가 된다.
라는 문구가 있는데 그림 4-9를 보면 "를"이 문맥 단어(c)이고 "빨래"가 타깃단어(t)로 보입니다.
버그인지 확인 부탁드립니다.
안녕하세요. P106 코드 3-26 에 대해서 문의드립니다.
bash preprocess.sh make-bert-vocab
위 코드에서 preprocess.sh 에 make-bert-vocab 를 명령어로 가지는 코드가 없는것 같습니다.
p.123
둘의 크기는 어휘 집합 크기(|V|) X 임베딩 차원수(d)로 동일하다
라고 되어 있는데 틀린 표현은 아니지만 U는 |V| X d고 V는 d X |V|라고 명확하게 해 주는 것이 더 좋을 것 같습니다.
p.125
U+V행렬을 임베딩으로 쓸 수도 있다. 혹은 U, V를 이어 붙여 2d차원의 단어 임베딩으로 사용할 수도 있다.
라고 되어 있는데 V대신에 V^T를 쓰는 것이 더 적절할 것 같습니다.
100번의 학습 기회 가운데 3~4번 정도는 학습에서 제외하게 된다는 문장에서
P(w_i)가 0.9684되었을때는 96번 정도를 학습에서 제외하는 표현이 맞는 것 같습니다.
34번에서 9697번으로요~!
개요
ELMo 모델을 이 레파지토리에 둔다.
코드 상세는 다음과 같다.
bilm-tf/bilm
디렉토리에 있는 코드들을 우리 레포 embedding/models/bilm
디렉토리로 그대로 복사했다.bilm-tf/bin/train_elmo.py
코드는 우리 레포 embedding/models
에 복사했다{"bidirectional": true, "char_cnn": {"activation": "relu", "embedding": {"dim": 16}, "filters": [[1, 32], [2, 32], [3, 64], [4, 128], [5, 256], [6, 512], [7, 1024]], "max_characters_per_token": 30, "n_characters": 261, "n_highway": 2}, "dropout": 0.1, "lstm": {"cell_clip": 3, "dim": 1024, "n_layers": 2, "proj_clip": 3, "projection_dim": 128, "use_skip_connections": true}, "all_clip_norm_val": 10.0, "n_epochs": 10, "n_train_tokens": 768648884, "batch_size": 128, "n_tokens_vocab": 100003, "unroll_steps": 20, "n_negative_samples_batch": 8192}
안녕하세요 기창님!
책에 있는 python 코드를 실행해보려고 합니다.
docker run -it --rm ratsgo/embedding-cpu bash
jupyter notebook --ip 0.0.0.0 --allow-root
이후 나오는 token 값으로 로그인하려고 하는데요.
도커에서 주피터를 띄울 때는 url 창에다가 [ip주소:8888] 을 눌러서
주피터 로그인 창이 나오면 거기에
토큰값을 넣어서 주피터로 접속하는 것으로 알고 있습니다.
하지만 localhost:8888
접속 시에 자꾸 거부당하고 있는데요. 이 부분에 대한 답을 구글링하고 있지만
쉽게 해결이 안되서 질문 드려봅니다 ㅠㅠ (현재 운영체제는 우분투입니다)
우분투에서 docker 실행시 고래 그림이 나오면서 ip 주소가 나오지는 않아서 그냥
원래 ip주소:8888 입력 하고 있습니다. 제 생각에는 ip 주소를 잘못입력했거나 방화벽 문제인거 같은데 경험상 아시는 해결책 있으면 부탁드리겠습니다 ㅠㅠ
해당 내용이 업데이트 된 것을 확인하여서 이슈를 클로즈하였습니다.
개요
임베딩 튜토리얼의 워드 임베딩 평가 모듈을 구축한다
XLNet
embedding/models/tune_utils.py
Line 47 in 2fb1466
Bert
embedding/models/tune_utils.py
Line 170 in 2fb1466
per_example_loss는 Bert코드에도 있는 부분입니다.
Bert는 직접 구현하셨는데, XLNet구현과 레벨을 맞추는게 낫지 않을까요?
page 216 ELMo 모델의
lstm_cell = tf.nn.rnn_cell.LSTMCell(lstm_dim, num_proj=projection_dim, cell_clip=cell_clip, proj_clip=proj_clip)
여기서, cell_clip,proj_clip에 대하여, gradient를 clip한다고 책에서 설명하고 있습니다.
tf.nn.rnn_cell.LSTMCell API의 설명이나, 구현을 찾아보면, gradient를 clip하는 것이 아니고, 값 자체를 clip한다고 되어 있습니다.
https://www.tensorflow.org/api_docs/python/tf/compat/v1/nn/rnn_cell/LSTMCell
확인 부탁드립니다.
개요
임베딩 튜토리얼의 BERT, ELMo 등 pretrain 모델의 파인튜닝 모듈을 개발한다.
개요
임베딩 튜토리얼의 word-level methods들을 정리한다
개요
한국어 임베딩 책에 소개돼 있는 실습 코드 수정 사항을 종합 기록해둔다.
log k에서 k가 무엇인지 궁금합니다.
개요
BERT 모델을 우리 레포에 둔다.
코드 상세는 다음과 같다.
embeddings/models/bert
에 그대로 복사했다.tokenization_test.py
등 일부 코드는 제외개요
임베딩 튜토리얼의 위키피디아 다운로드 및 전처리 모듈을 구축한다
개요
저자-독자의 1대多 소통
이 아닌 불특정 다수의 독자들 사이의 多대多 소통
이 되었으면 좋겠습니다.162p에서 몇가지 질문이 있습니다.
질문1)
수식 4-27에서 f_w(0) 의 0은 vector를 의미하는지 궁금합니다. (혹시 vector를 의미한다면 0를 굵은 글자체로 하는 것이 좋을 것 같습니다.)
질문2) "임의의 상수 C에 대해 max(C+ c g) = g / ||g|| 임이 성립한다고 한다." 에서 식의 좌변은 output이 scalar지만 우변은 vector입니다. 좌변과 우변이 일치해야 될 것 같습니다. 좌변이 max대신에 argmax가 되던가 우변이 C + ||g||가 되어야 될 것 같은데 제 생각이 맞는지 궁금합니다.
질문3) 수식 4-28의 3번째 줄에 보면 argmax안에 c vector가 수식에 포함되어 있지 않은데 argmax에서는 해당 식을 최대화 하는 c vector를 찾는 것처럼 되어 있습니다. invalid한 수식처럼 보이는데 제 생각이 맞는지 궁금합니다. 2번째줄에서 3번째줄의 수식이 어떻게 나오게 되었는지도 궁금합니다.
개요
임베딩 튜토리얼의 도커 환경을 구성한다.
개요
임베딩 튜토리얼의 sentence-level methods들을 정리한다
page 265.
tune_utils.py에서 make_elmo_graph()에서
attention_score = tf.nn.softmax(tf.contrib.layers.fully_connected(inputs=H, num_outputs=1, activation_fn=None))
이렇게 되어 있는데, softmax를 취하면서, 모든 값이 1이 되어 버립니다.
attention_score = tf.nn.softmax(tf.contrib.layers.fully_connected(inputs=H, num_outputs=1, activation_fn=None),axis=1)
이렇게 되어야 될 것 같습니다.
코드 4-4를 실행하면 조금 뒤에 '죽었음'이라는 메시지가 출력되고 제대로 된 결과물이 얻어지지 않습니다.
우분투 16.04, MacOS Catalina, Windows 10 환경에서 모두 해 보았으나 전부 제대로 실행되지 않았습니다.
물론 이전 과정인 전 처리, 형태소 분석을 모두 수행한 이후에 실행을 한 것입니다.
그런데도 자꾸 코드 4-4가 제대로 실행되지 않아서, '죽었음'을 키워드로 구글링을 해 보니 메모리 부족 문제라는 글들이 보이더군요.
딱히 설정을 안 건드려도 실행이 되도록 튜토리얼을 구성하셨으리라고 생각은 됩니다만,
혹시나 하여 도커 설정에서 CPUs:4, Memory: 14848 MB, Swap: 2048MB로 자원을 대폭 늘려 봤습니다. (Windows 10 환경)
그러나 '죽었음' 메시지가 출력되는 시간이 훨씬 늦어질 뿐 여전히 실행되지 않습니다.
무슨 문제인지, 어떻게 해결해야 되는지 궁금합니다.
코드 4-1이 '형태소 분석 완료된' 데이터를 다운로드하는 것이라고 되어 있습니다만, 다운받은 파일을 에디터로 열어 보면 형태소 단위로 토큰화만 되어 있습니다.
형태소 분석을 했다고 하면 형태소 뒤에 태그까지 있어야 되는 거로 이해되는데, 원래 워드 벡터를 만들 때 이런 식으로 태그 없이 토큰화만 해서 만드는 게 일반적인지요?
그러면 동철자인 형태소들끼리 구별이 안 돼서 좀 이상해지는 게 아닌가 싶어서 여쭙습니다.
안녕하세요. 책을 열심히 읽다가 잘못된점이 있는것 같아서 제보드립니다 :)
181페이지의 마지막 문단 "그림 5-3 왼쪽 리스트는 ~" 에서 왼쪽이 아니라, 오른쪽으로 변경해야 할 것 같습니다.
이와 마찬가지로 동일한 문단에서 "그림 5-3의 우측 그림은 실제 ~ "에서 우측을 좌측으로 변경해야 맞을 것 같습니다.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.