AyusmanSamasi commited on
Commit
48e8017
Β·
verified Β·
1 Parent(s): b4f7e94

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +49 -106
app.py CHANGED
@@ -14,6 +14,7 @@ model.load_state_dict(state)
14
  model.eval()
15
 
16
 
 
17
  def predict(text):
18
  if not text.strip():
19
  return {"error": "Please enter text."}
@@ -23,7 +24,7 @@ def predict(text):
23
  truncation=True,
24
  padding="max_length",
25
  max_length=128,
26
- return_tensors="pt",
27
  )
28
 
29
  with torch.no_grad():
@@ -47,105 +48,48 @@ def predict(text):
47
  }
48
 
49
 
50
- with gr.Blocks(title="Sentimental Analysis - DeBERTa") as demo:
 
51
 
52
- gr.Markdown(
53
- """
54
  <div style="text-align:center;">
55
- <h1>🎭 Emotion Detection with DeBERTa-v3</h1>
56
- <p style="font-size:16px; color:#555;">
57
- Multi-label emotion classification based on IIT Madras DLGenAI Project (2025)
 
58
  </p>
59
  </div>
60
  <br>
61
- """
62
- )
63
-
64
- with gr.Row():
65
-
66
-
67
-
68
- with gr.Column(scale=1):
69
-
70
- gr.HTML("""
71
- <div style="
72
- background:white; padding:20px; border-radius:12px;
73
- box-shadow:0 2px 12px rgba(0,0,0,0.08); margin-bottom:20px;
74
- ">
75
- <h2>πŸ“Œ Model Overview</h2>
76
- <ul style="line-height:1.6;">
77
- <li><b>Architecture:</b> DeBERTa-v3 Base</li>
78
- <li><b>Task:</b> Multi-label Emotion Detection</li>
79
- <li><b>Labels:</b> Anger, Fear, Joy, Sadness, Surprise</li>
80
- <li><b>Training:</b> BCEWithLogitsLoss + AdamW</li>
81
- <li><b>Dataset:</b> IIT Madras DLGenAI Project</li>
82
- <li><b>Rank:</b> 27 / 200 participants</li>
83
- </ul>
84
- </div>
85
  """)
86
 
87
- gr.HTML("""
88
- <div style="
89
- background:white; padding:20px; border-radius:12px;
90
- box-shadow:0 2px 12px rgba(0,0,0,0.08); margin-bottom:20px;
91
- ">
92
- <h2>πŸ“š Dataset Details</h2>
93
- <p>Multi-label emotion dataset with 5 categories:</p>
94
- <ul>
95
- <li>😠 Anger</li>
96
- <li>😨 Fear</li>
97
- <li>😊 Joy</li>
98
- <li>😒 Sadness</li>
99
- <li>😲 Surprise</li>
100
- </ul>
101
- <p><b>Evaluation Metric:</b> Macro F1-Score</p>
102
- </div>
103
- """)
104
-
105
- gr.HTML("""
106
- <div style="
107
- background:white; padding:20px; border-radius:12px;
108
- box-shadow:0 2px 12px rgba(0,0,0,0.08);
109
- ">
110
- <h2>πŸ† Competition Info</h2>
111
- <ul style="line-height:1.6;">
112
- <li><b>Course:</b> IIT Madras – Deep Learning & GenAI (2025)</li>
113
- <li><b>Public LB Score:</b> 87.8%</li>
114
- <li><b>Private LB Score:</b> 87.0%</li>
115
- <li><b>Final Rank:</b> 27 / 200</li>
116
- <li><b>Models Used:</b> CNN, GRU, BiLSTM, DistilBERT, DeBERTa</li>
117
- </ul>
118
- </div>
119
- """)
120
 
121
-
122
- # LEFT: Dataset + Model Info
123
  with gr.Column(scale=1):
124
- gr.Markdown(
125
- """
126
- <div style="background:#fff; padding:20px; border-radius:12px;
127
- box-shadow:0 2px 12px rgba(0,0,0,0.08);">
128
 
 
 
 
 
 
129
  <h2>πŸ“Œ Model Overview</h2>
130
- <ul>
131
  <li><b>Architecture:</b> DeBERTa-v3 Base</li>
132
  <li><b>Task:</b> Multi-label Emotion Detection</li>
133
  <li><b>Labels:</b> Anger, Fear, Joy, Sadness, Surprise</li>
134
- <li><b>Training:</b> BCEWithLogitsLoss + AdamW</li>
135
- <li><b>Dataset:</b> IIT Madras DLGenAI Project</li>
136
- <li><b>Rank:</b> 27 / 200 participants</li>
137
  </ul>
138
  </div>
 
139
 
140
- <br>
141
-
142
- <div style="background:#fff; padding:20px; border-radius:12px;
143
- box-shadow:0 2px 12px rgba(0,0,0,0.08);">
144
-
145
  <h2>πŸ“š Dataset Details</h2>
146
- <p>
147
- Multi-label text emotion dataset with 5 emotion categories:
148
- </p>
149
  <ul>
150
  <li>😠 Anger</li>
151
  <li>😨 Fear</li>
@@ -153,27 +97,27 @@ with gr.Blocks(title="Sentimental Analysis - DeBERTa") as demo:
153
  <li>😒 Sadness</li>
154
  <li>😲 Surprise</li>
155
  </ul>
156
-
157
- <p><b>Evaluation Metric:</b> Macro F1-Score</p>
158
  </div>
159
-
160
- <br>
161
-
162
- <div style="background:#fff; padding:20px; border-radius:12px;
163
- box-shadow:0 2px 12px rgba(0,0,0,0.08);">
164
-
165
- <h2>πŸ† Competition Info</h2>
166
- <ul>
167
- <li><b>Course:</b> IIT Madras – Deep Learning & GenAI</li>
168
- <li><b>Leaderboard:</b> 87.8% Public F1</li>
169
- <li><b>Final Rank:</b> 27 / 200</li>
170
- <li><b>Models Tested:</b> CNN, GRU, BiLSTM, DistilBERT, DeBERTa</li>
 
 
 
171
  </ul>
172
  </div>
173
- """
174
- )
175
 
176
- # RIGHT: Text Input + Output
177
  with gr.Column(scale=2):
178
 
179
  input_box = gr.Textbox(
@@ -182,18 +126,17 @@ with gr.Blocks(title="Sentimental Analysis - DeBERTa") as demo:
182
  lines=4,
183
  )
184
 
185
- btn = gr.Button("🎯 Analyze Emotion")
186
 
187
  output = gr.JSON(label="Model Output")
188
 
189
  btn.click(predict, inputs=input_box, outputs=output)
190
 
191
- gr.Markdown(
192
- """
193
- <br><p style="text-align:center; color:#777;">
194
- Built by <b>Ayusman Samasi</b> β€” IIT Madras Deep Learning & GenAI 2025
195
  </p>
196
- """
197
- )
198
 
199
  demo.launch()
 
14
  model.eval()
15
 
16
 
17
+ # ---------------- PREDICTION FUNCTION ---------------- #
18
  def predict(text):
19
  if not text.strip():
20
  return {"error": "Please enter text."}
 
24
  truncation=True,
25
  padding="max_length",
26
  max_length=128,
27
+ return_tensors="pt"
28
  )
29
 
30
  with torch.no_grad():
 
48
  }
49
 
50
 
51
+ # ---------------- UI LAYOUT ---------------- #
52
+ with gr.Blocks(title="Mood Detection of the User - DeBERTa") as demo:
53
 
54
+ gr.Markdown("""
 
55
  <div style="text-align:center;">
56
+ <h1 style="font-size:3rem;">🎭 Emotion Detection with DeBERTa-v3</h1>
57
+ <p style="font-size:1.1rem; color:#555;">
58
+ Multi-label emotion classification powered by DeBERTa-v3 <br>
59
+ Trained on IIT Madras Deep Learning & GenAI Dataset (2025)
60
  </p>
61
  </div>
62
  <br>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
63
  """)
64
 
65
+ with gr.Row():
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
66
 
 
 
67
  with gr.Column(scale=1):
 
 
 
 
68
 
69
+ gr.HTML("""
70
+ <div style="
71
+ background:white; padding:20px; border-radius:14px;
72
+ box-shadow:0 2px 12px rgba(0,0,0,0.08); margin-bottom:20px;
73
+ ">
74
  <h2>πŸ“Œ Model Overview</h2>
75
+ <ul style="line-height:1.6;">
76
  <li><b>Architecture:</b> DeBERTa-v3 Base</li>
77
  <li><b>Task:</b> Multi-label Emotion Detection</li>
78
  <li><b>Labels:</b> Anger, Fear, Joy, Sadness, Surprise</li>
79
+ <li><b>Training:</b> AdamW + BCEWithLogitsLoss</li>
80
+ <li><b>Sequence Length:</b> 128 tokens</li>
81
+ <li><b>Framework:</b> PyTorch + Transformers</li>
82
  </ul>
83
  </div>
84
+ """)
85
 
86
+ gr.HTML("""
87
+ <div style="
88
+ background:white; padding:20px; border-radius:14px;
89
+ box-shadow:0 2px 12px rgba(0,0,0,0.08); margin-bottom:20px;
90
+ ">
91
  <h2>πŸ“š Dataset Details</h2>
92
+ <p>Dataset: IIT Madras DL-GenAI Multi-Label Emotion Dataset</p>
 
 
93
  <ul>
94
  <li>😠 Anger</li>
95
  <li>😨 Fear</li>
 
97
  <li>😒 Sadness</li>
98
  <li>😲 Surprise</li>
99
  </ul>
100
+ <p><b>Metric:</b> Macro F1 Score</p>
 
101
  </div>
102
+ """)
103
+
104
+ gr.HTML("""
105
+ <div style="
106
+ background:white; padding:20px; border-radius:14px;
107
+ box-shadow:0 2px 12px rgba(0,0,0,0.08);
108
+ ">
109
+ <h2>πŸ† Competition Summary</h2>
110
+ <ul style="line-height:1.6;">
111
+ <li><b>Platform:</b> Kaggle Private Competition</li>
112
+ <li><b>Course:</b> IIT Madras - Deep Learning & GenAI</li>
113
+ <li><b>Final Rank:</b> 27 / 200 Participants</li>
114
+ <li><b>Public LB:</b> 87.8% Macro F1</li>
115
+ <li><b>Private LB:</b> 87.0% Macro F1</li>
116
+ <li><b>Models Attempted:</b> CNN | GRU | BiLSTM | DistilBERT | DeBERTa</li>
117
  </ul>
118
  </div>
119
+ """)
 
120
 
 
121
  with gr.Column(scale=2):
122
 
123
  input_box = gr.Textbox(
 
126
  lines=4,
127
  )
128
 
129
+ btn = gr.Button("🎯 Analyze Emotion", elem_id="analyze-button")
130
 
131
  output = gr.JSON(label="Model Output")
132
 
133
  btn.click(predict, inputs=input_box, outputs=output)
134
 
135
+ gr.Markdown("""
136
+ <br>
137
+ <p style="text-align:center; color:#777;">
138
+ Built by <b>Ayusman Samasi</b> β€’ IIT Madras Deep Learning & GenAI
139
  </p>
140
+ """)
 
141
 
142
  demo.launch()