inflearn logo
강의

Course

Instructor

Tensorflow User Manual

multiple inputs

346

fkid009

21 asked

0

예시에서는 독립변수가 하나밖에 존재하지 않은데 2개 이상일때는 call 메서드에 어떻게 적용시키나요? 참고로 from_tensor_slices로 dataset을 만들었을 때 궁금합니다.

 

아래의 코드는 제가 만든 모델 코드의 일부분 입니다.

다음과 같이 from_tensor_slices로 총 7개의 변수를 가진 tf.dataset을 생성했습니다.

이후 main model의 call 메서드에 인자를 다음과 같이 6개를 지정해서 model을 학습시켰습니다. 이렇게 하는게 맞는지 궁금합니다.

  train_ds = tf.data.Dataset.from_tensor_slices((train_user, train_item, train_user_bert, train_item_bert, train_user_roberta, train_item_roberta, train_rating))

 def call(self, user, item, user_text_bert,item_text_bert, user_text_roberta, item_text_roberta):
        user_vec = self.user_emb(user)
        item_vec = self.item_emb(item)

for epoch in range(Epochs):
    for a, b, c, d, e, f, g in train_ds:
        with tf.GradientTape() as tape:
            predictions = model(a, b, c, d, e, f)
            loss = loss_object(g, predictions)

    gradients = tape.gradient(loss, model.trainable_variables)
    optimizer.apply_gradients(zip(gradients, model.trainable_variables))

    train_loss(loss)

딥러닝 tensorflow

Answer 1

0

communityai8509

안녕하세요, 인프런 AI 인턴이에요.

여러 개의 독립 변수를 가진 경우, 각 변수마다 모델에 필요한 인자를 전달해야 합니다. 예를 들어, 7개의 변수를 가진 경우, call 메서드에서 각 변수에 대한 인자를 따로 전달해야 합니다.

아래는 예시 코드입니다.

def call(self, user, item, user_text_bert, item_text_bert, user_text_roberta, item_text_roberta):
    user_vec = self.user_emb(user)
    item_vec = self.item_emb(item)
    
    # 나머지 변수에 대해서도 필요한 전처리 및 연산 수행
    
    # 예시로 다음과 같이 출력해 볼 수 있습니다.
    print(user_vec, item_vec, user_text_bert, item_text_bert, user_text_roberta, item_text_roberta)
    
    # 모델의 나머지 부분 구현 코드
    

위의 코드에서는 user, item 변수는 따로 처리되고, 나머지 변수들도 필요한 작업을 수행한 후에 모델에 전달됩니다.

그리고 학습하는 코드 부분에서도 인자를 잘 전달하셨습니다.

for a, b, c, d, e, f, g in train_ds:
    with tf.GradientTape() as tape:
        predictions = model(a, b, c, d, e, f)
        loss = loss_object(g, predictions)

    gradients = tape.gradient(loss, model.trainable_variables)
    optimizer.apply_gradients(zip(gradients, model.trainable_variables))

    train_loss(loss)

맞게 구현하셨습니다.

각 변수의 전처리 및 모델에 필요한 연산을 잘 적용하시고 사용하시면 됩니다. 추가적인 질문이 있으시면 언제든지 물어보세요. 즐거운 학습 되세요!

안녕하세요 강사님

0

7

1

[시험 준비] AICE Associate 단기간 합격을 위한 모의고사 활용 방법 문의

1

10

1

19강 감정분석 강의처럼 api 돌렸는데

1

59

1

완독 챌린지 도서 인정 방법에 대한 문의

0

67

2

강사님 강의 자료와 코드를 부탁드리고 싶습니다.

0

57

2

16강에서 코드가 계속 안도길래. ai가 고쳐서 일단 supabase에 preditc 한 주가를

2

58

1

16강 구글 colab 에서 코드 실행이 안돼요.

0

67

1

강의자료, 코드 요청드립니다

0

52

2

강의 자료에 대한 질문입니다.

1

64

2

강의의 난이도 및 속도

1

69

2

20번 강의 LoRA 실습이 에러가 납니다.

0

67

1

강의자료 문의

1

76

2

mmcv 문의 드립니다.

0

92

2

강의 자료 및 코드 수령

0

73

2

기초실습 BERT파인튜닝 예제 오류

0

75

1

130_Transformer.ipynb 오류 대응 부탁드립니다.

0

77

1

동영상 재생오류

0

86

1

epoch 1부터 loss가 너무 낮게 나와 학습이 안되네요

0

581

1

텍스트 데이터일 때의 dtype

0

306

1

12강 data split take와 skip

0

351

1

<tensorflow사용메뉴얼> 강의파일

0

315

0

SyntaxError: keyword can't be an expression

0

537

0

강의 감사합니다. 다섯번째 강의인 Model Implementation가 재생이 안됩니다.

0

192

0

unsupported operand type(s) for *: 'float' and 'NoneType'

0

1993

1