xinchen9 commited on
Commit
5141c76
·
verified ·
1 Parent(s): 84a1446

[Update]Change table

Browse files
Files changed (1) hide show
  1. app.py +108 -60
app.py CHANGED
@@ -33,6 +33,20 @@ from PIL import Image
33
  from dummydatagen import dummy_data_for_plot, create_metric_plot_obj_1, dummydf
34
  import copy
35
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
36
 
37
  def restart_space():
38
  API.restart_space(repo_id=REPO_ID)
@@ -61,57 +75,62 @@ def restart_space():
61
  # running_eval_queue_df,
62
  # pending_eval_queue_df,
63
  # ) = get_evaluation_queue_df(EVAL_REQUESTS_PATH, EVAL_COLS)
 
 
 
 
 
 
64
 
65
- raw_data = dummydf()
66
- methods = list(set(raw_data['Unlearned Methods']))
67
- metrics = ["Pre-ASR","Post-ASR", "FID"]
68
 
69
  def update_table(
70
  hidden_df: pd.DataFrame,
71
- columns_1: list,
72
- columns_2: list,
73
- columns_3: list,
74
- model1: list,
 
 
 
75
  ):
76
-
77
- filtered_df = select_columns(hidden_df, columns_1, columns_2, columns_3)
78
-
79
- filtered_df = filter_model1(filtered_df, model1)
80
-
81
- return filtered_df
82
-
83
-
84
- def select_columns(df: pd.DataFrame, columns_1: list, columns_2: list, columns_3: list) -> pd.DataFrame:
85
- always_here_cols = ["Unlearned Methods"]
86
 
87
- # We use COLS to maintain sorting
88
- all_columns = metrics
89
-
90
- if (len(columns_1)+len(columns_2) + len(columns_3)) == 0:
91
- filtered_df = df[
92
- always_here_cols +
93
- [c for c in all_columns if c in df.columns]
94
- ]
95
-
96
- else:
97
- filtered_df = df[
98
- always_here_cols +
99
- [c for c in all_columns if c in df.columns and (c in columns_1 or c in columns_2 or c in columns_3 ) ]
100
- ]
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
101
 
102
  return filtered_df
103
 
104
-
105
- def filter_model1(df: pd.DataFrame, model_query: list) -> pd.DataFrame:
106
- # Show all models
107
- if len(model_query) == 0:
108
- return df
109
-
110
- filtered_df = df
111
- filtered_df = filtered_df[filtered_df["Method"].isin(model_query)]
112
- return filtered_df
113
-
114
-
115
  demo = gr.Blocks(css=custom_css)
116
  with demo:
117
  gr.HTML(TITLE)
@@ -135,13 +154,14 @@ with demo:
135
  interactive=True,
136
  elem_id="column-select",
137
  )
138
- # with gr.Row():
139
- # method_column = gr.CheckboxGroup(
140
- # label="Unlearning Methods",
141
- # choices=["ESD","FMN", "AC", "UCE", "SLD"],
142
- # interactive=True,
143
- # elem_id="column-select",
144
- # )
 
145
  # with gr.Column(min_width=320):
146
  # with gr.Row():
147
  # shown_columns_1 = gr.CheckboxGroup(
@@ -171,30 +191,58 @@ with demo:
171
  # interactive=True,)
172
  gr.Markdown("### Unlearned Concepts Parachute")
173
  leaderboard_table = gr.components.Dataframe(
174
- value= raw_data,
175
- elem_id="leaderboard-table",
176
- interactive=False,
 
177
  visible=True,
 
178
  )
179
 
180
- game_bench_df_for_search = gr.components.Dataframe(
181
- value= raw_data,
182
- elem_id="leaderboard-table",
 
 
183
  interactive=False,
184
  visible=False,
185
  )
186
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
187
 
188
- for selector in [model1_column]:
 
189
  selector.change(
190
  update_table,
191
  [
192
- game_bench_df_for_search,
193
- model1_column,
 
 
 
 
 
 
 
 
194
  ],
195
  leaderboard_table,
196
- queue=True,
197
- )
198
  # with gr.Row():
199
  # shown_columns = gr.CheckboxGroup(
200
  # choices=[
 
33
  from dummydatagen import dummy_data_for_plot, create_metric_plot_obj_1, dummydf
34
  import copy
35
 
36
+ def load_data(data_path):
37
+ columns = ['Unlearned Methods', 'Source', 'Diffusion Models', 'Pre-ASR', 'Post-ASR','FID']
38
+ columns_sorted = ['Unlearned Methods', 'Source', 'Diffusion Models', 'Pre-ASR', 'Post-ASR','FID']
39
+
40
+ df = pd.read_csv(data_path, usecols=columns).dropna()
41
+ df['Post-ASR'] = df['Post-ASR'].round(0)
42
+
43
+ # rank according to the Score column
44
+ df = df.sort_values(by='Score', ascending=False)
45
+ # reorder the columns
46
+ df = df[columns_sorted]
47
+
48
+
49
+ return df
50
 
51
  def restart_space():
52
  API.restart_space(repo_id=REPO_ID)
 
75
  # running_eval_queue_df,
76
  # pending_eval_queue_df,
77
  # ) = get_evaluation_queue_df(EVAL_REQUESTS_PATH, EVAL_COLS)
78
+ csv_path='./assets/object_parachute.csv'
79
+ df_results = load_data(csv_path)
80
+ methods = list(set(df_results['Unlearned Methods']))
81
+ all_columns = ['Unlearned Methods', 'Source', 'Diffusion Models', 'Pre-ASR', 'Post-ASR','FID']
82
+ show_columns = ['Unlearned Methods', 'Source', 'Diffusion Models', 'Pre-ASR', 'Post-ASR','FID']
83
+ TYPES = ['str', 'markdown', 'str', 'number', 'number', 'number']
84
 
85
+ df_results_init = df_results.copy()[show_columns]
 
 
86
 
87
  def update_table(
88
  hidden_df: pd.DataFrame,
89
+ # columns: list,
90
+ #type_query: list,
91
+ open_query: list,
92
+ # precision_query: str,
93
+ # size_query: list,
94
+ # show_deleted: bool,
95
+ query: str,
96
  ):
97
+ # filtered_df = filter_models(hidden_df, type_query, size_query, precision_query, show_deleted)
98
+ # filtered_df = filter_queries(query, filtered_df)
99
+ # df = select_columns(filtered_df, columns)
100
+ filtered_df = hidden_df.copy()
 
 
 
 
 
 
101
 
102
+ filtered_df = filtered_df[filtered_df['Models'].isin(open_query)]
103
+ # map_open = {'open': 'Yes', 'closed': 'No'}
104
+ # filtered_df = filtered_df[filtered_df['Open?'].isin([map_open[o] for o in open_query])]
105
+
106
+ filtered_df = filter_queries(query, filtered_df)
107
+ # filtered_df = filtered_df[[map_columns[k] for k in columns]]
108
+ # deduplication
109
+ # df = df.drop_duplicates(subset=["Model"])
110
+ df = filtered_df.drop_duplicates()
111
+ df = df[show_columns]
112
+ return df
113
+
114
+
115
+ def search_table(df: pd.DataFrame, query: str) -> pd.DataFrame:
116
+ return df[(df['Model'].str.contains(query, case=False))]
117
+
118
+
119
+ def filter_queries(query: str, filtered_df: pd.DataFrame) -> pd.DataFrame:
120
+ final_df = []
121
+ if query != "":
122
+ queries = [q.strip() for q in query.split(";")]
123
+ for _q in queries:
124
+ _q = _q.strip()
125
+ if _q != "":
126
+ temp_filtered_df = search_table(filtered_df, _q)
127
+ if len(temp_filtered_df) > 0:
128
+ final_df.append(temp_filtered_df)
129
+ if len(final_df) > 0:
130
+ filtered_df = pd.concat(final_df)
131
 
132
  return filtered_df
133
 
 
 
 
 
 
 
 
 
 
 
 
134
  demo = gr.Blocks(css=custom_css)
135
  with demo:
136
  gr.HTML(TITLE)
 
154
  interactive=True,
155
  elem_id="column-select",
156
  )
157
+ with gr.Row():
158
+ open_query = gr.CheckboxGroup(
159
+ label="Model",
160
+ choices=["SD V1.4","SD V1.5", "SD V2.0"],
161
+ values =["SD V1.4","SD V1.5", "SD V2.0"]
162
+ interactive=True,
163
+ elem_id="column-select",
164
+ )
165
  # with gr.Column(min_width=320):
166
  # with gr.Row():
167
  # shown_columns_1 = gr.CheckboxGroup(
 
191
  # interactive=True,)
192
  gr.Markdown("### Unlearned Concepts Parachute")
193
  leaderboard_table = gr.components.Dataframe(
194
+ value = df_results,
195
+ datatype = TYPES,
196
+ elem_id = "leaderboard-table",
197
+ interactive = False,
198
  visible=True,
199
+ # column_widths=["20%", "6%", "8%", "6%", "8%", "8%", "6%", "6%", "6%", "6%", "6%"],
200
  )
201
 
202
+ # gr.Markdown("The \"Cost\" column is calculated as USD / Million tokens of output.")
203
+
204
+ hidden_leaderboard_table_for_search = gr.components.Dataframe(
205
+ value=df_results_init,
206
+ # elem_id="leaderboard-table",
207
  interactive=False,
208
  visible=False,
209
  )
210
 
211
+ search_bar.submit(
212
+ update_table,
213
+ [
214
+ # df_avg,
215
+ hidden_leaderboard_table_for_search,
216
+ # shown_columns,
217
+ #type_query,
218
+ open_query,
219
+ # filter_columns_type,
220
+ # filter_columns_precision,
221
+ # filter_columns_size,
222
+ # deleted_models_visibility,
223
+ search_bar,
224
+ ],
225
+ leaderboard_table,
226
+ )
227
 
228
+ #for selector in [type_query, open_query]:
229
+ for selector in [open_query]:
230
  selector.change(
231
  update_table,
232
  [
233
+ # df_avg,
234
+ hidden_leaderboard_table_for_search,
235
+ # shown_columns,
236
+ #type_query,
237
+ open_query,
238
+ # filter_columns_type,
239
+ # filter_columns_precision,
240
+ # filter_columns_size,
241
+ # deleted_models_visibility,
242
+ search_bar,
243
  ],
244
  leaderboard_table,
245
+ )
 
246
  # with gr.Row():
247
  # shown_columns = gr.CheckboxGroup(
248
  # choices=[