waseoke commited on
Commit
95d17d5
·
verified ·
1 Parent(s): 01a3bea

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +21 -2
app.py CHANGED
@@ -15,6 +15,12 @@ user_embedding_collection = db["user_embeddings"] # 사용자 임베딩을 저
15
  tokenizer = BertTokenizer.from_pretrained("klue/bert-base")
16
  model = BertModel.from_pretrained("klue/bert-base")
17
 
 
 
 
 
 
 
18
  # 상품 타워: 데이터 임베딩
19
  def embed_product_data(product_data):
20
  # 상품명과 상세 정보 임베딩 (BERT)
@@ -48,10 +54,23 @@ def embed_user_data(user_data):
48
 
49
  # 예를 들어 성별을 'M'은 0, 'F'는 1로 인코딩
50
  gender_id = 0 if user_data['gender'] == 'M' else 1
 
 
 
 
 
 
 
 
 
 
 
 
 
51
  age_embedding = embedding_layer(torch.tensor([user_data['age']]))
52
  gender_embedding = embedding_layer(torch.tensor([gender_id]))
53
- height_embedding = embedding_layer(torch.tensor([user_data['height']]))
54
- weight_embedding = embedding_layer(torch.tensor([user_data['weight']]))
55
 
56
  # 최종 임베딩 벡터 결합
57
  user_embedding = torch.cat((age_embedding, gender_embedding, height_embedding, weight_embedding), dim=1)
 
15
  tokenizer = BertTokenizer.from_pretrained("klue/bert-base")
16
  model = BertModel.from_pretrained("klue/bert-base")
17
 
18
+ # Height와 Weight 스케일링에 필요한 값 설정
19
+ min_height = 50
20
+ max_height = 250
21
+ min_weight = 30
22
+ max_weight = 200
23
+
24
  # 상품 타워: 데이터 임베딩
25
  def embed_product_data(product_data):
26
  # 상품명과 상세 정보 임베딩 (BERT)
 
54
 
55
  # 예를 들어 성별을 'M'은 0, 'F'는 1로 인코딩
56
  gender_id = 0 if user_data['gender'] == 'M' else 1
57
+
58
+ # 스케일링 적용
59
+ height = user_data['height']
60
+ weight = user_data['weight']
61
+
62
+ if not (min_height <= height <= max_height):
63
+ raise ValueError(f"Invalid height value: {height}. Expected range: {min_height}-{max_height}")
64
+ if not (min_weight <= weight <= max_weight):
65
+ raise ValueError(f"Invalid weight value: {weight}. Expected range: {min_weight}-{max_weight}")
66
+
67
+ scaled_height = (height - min_height) * 99 // (max_height - min_height)
68
+ scaled_weight = (weight - min_weight) * 99 // (max_weight - min_weight)
69
+
70
  age_embedding = embedding_layer(torch.tensor([user_data['age']]))
71
  gender_embedding = embedding_layer(torch.tensor([gender_id]))
72
+ height_embedding = embedding_layer(torch.tensor([scaled_height]))
73
+ weight_embedding = embedding_layer(torch.tensor([scaled_weight]))
74
 
75
  # 최종 임베딩 벡터 결합
76
  user_embedding = torch.cat((age_embedding, gender_embedding, height_embedding, weight_embedding), dim=1)