pytorch, tensorflow

pytorch, tensorflow

[PyTorch] Embedding 추가하기

hugginface의 여러 모델들을 사용하다보면 vocab_size가 달라 임베딩 차원이 안맞는 경우가 생긴다. 이때 임베딩 차원을 추가하면 문제를 해결할 수 있다. 1. Embedding 추가하기 torch.nn.Embedding 모델에 새로운 아이템들을 더할 수 있는 방법은 아래와 같다. vocab_size = 10 emb_dim = 128 # 기존에 학습 완료된 임베딩 original_emb = torch.nn.Embedding(vocab_size, emb_dim) # 추가하거나 새로 학습하고자 하는 vocab의 임베딩 new_vocab_size = 2 to_add_emb = torch.nn.Embedding(new_vocab_size, emb_dim) # 각 임베딩의 parameter를 합쳐 임베..

pytorch, tensorflow

[PyTorch] torch.cat(), torch.stack() 비교

1. torch.cat() torch.cat() 기능 정의는 다음과 같다. Concatenates the given sequence of seq tensors in the given dimension. All tensors must either have the same shape (except in the concatenating dimension) 기준 차원에 대해 두 텐서의 요소를 연결하며(list의 extend), 기준 차원을 제외한 shape은 동일해야 한다. import torch t1 = torch.rand((6, 32)) t2 = torch.rand((4, 32)) torch.cat((t1, t2), dim=0).shape >>>> torch.Size([10, 32]) torch.cat((t..

pytorch, tensorflow

[pytorch] torch.reshape에 관하여

torch.reshape()에 대해 궁금했던 부분들을 정리하고자 한다. Emil Bogomolov의 글을 참고하였다. 1. n-차원 텐서는 메모리 공간에서 어떻게 존재하는가?(Contiguous) 다수의 데이터에 접근할 때 데이터가 가까운 메모리 공간에 모여있으면 읽는 효율이 좋아진다. 때문에 배열 데이터도 연속된 공간안에 위치시키는게 좋다. 다차원 공간에서 배열 데이터를 저장하는 방법은 크게 row-major order와 column-major order가 있다(위키). C계열 언어는 row-major order를 따르며 이는 같은 행(row)에 데이터들이 연속된 메모리 공간에 위치해있는 것을 의미한다. PyTorch도 row-major order로 다차원 데이터를 저장하는데 이를 contiguous라..

pytorch, tensorflow

[tensorflow 2.0] model.save, model.save_weights 차이

tensorflow 2.0 버전부터 model, layer subclassing을 지원한다. 이때 custom model을 학습 후 저장할 때 model.save()를 사용하면 아래와 같은 에러 문구가 뜨는 경우가 발생하는 경우가 있다. >>> ValueError: Model cannot be saved because the input shapes have not been set. Usually, input shapes are automatically determined from calling .fit() or .predict(). To manually set the shapes, call model._set_inputs(inputs). 이 경우 model.save_weights()를 사용하면 해결이 된..

pytorch, tensorflow

[pytorch] torch에서 parameter 접근하기

nn.Linear()등으로 정의한 파라미터 접근은 parameters(), named_parameterss()으로 가능하다. 정확히는 layer가 모두 nn.Module()을 상속받으므로 Module에 정의되어 있는 parameter 접근 방법을 사용하면 된다. 1. torch.nn.Module.parameters() parameters()는 layer 이름을 제외한 parameter값에 대한 iterator를 준다. layer = torch.nn.Linear(10,3) layer >> Linear(in_features=10, out_features=3, bias=True) for p in layer.parameters(): print(p) >> Parameter containing: tensor([[-..

Fine애플
'pytorch, tensorflow' 카테고리의 글 목록