Spaces:
Sleeping
Sleeping
Update app.py
Browse files
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([
|
54 |
-
weight_embedding = embedding_layer(torch.tensor([
|
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)
|