Spaces:
Sleeping
Sleeping
Commit
·
2f42d70
1
Parent(s):
5bd9951
update
Browse files- app.py +14 -14
- app_utils.py +9 -9
app.py
CHANGED
@@ -326,7 +326,7 @@ with gr.Blocks() as demo:
|
|
326 |
"unassignedInputs" : None,
|
327 |
"missingTemplates" : None,
|
328 |
"batchNum" : None,
|
329 |
-
"
|
330 |
{
|
331 |
"newOrder" : None,
|
332 |
"fillFlags" : None
|
@@ -487,8 +487,8 @@ with gr.Blocks() as demo:
|
|
487 |
prev_target_idx = channel_info["templateDict"][prev_target_name]["index"]
|
488 |
selected_idx = channel_info["inputDict"][selected_radio]["index"]
|
489 |
|
490 |
-
stage1_info["
|
491 |
-
stage1_info["
|
492 |
channel_info["templateDict"][prev_target_name]["matched"] = True
|
493 |
channel_info["inputDict"][selected_radio]["assigned"] = True
|
494 |
#print(prev_target_name, '<-', selected_radio)
|
@@ -563,10 +563,10 @@ with gr.Blocks() as demo:
|
|
563 |
value of the data from the selected channels. (By default, the 4 nearest channels are pre-selected.)
|
564 |
"""
|
565 |
# find the 4 nearest in_channels for each unmatched tpl_channels
|
566 |
-
stage1_info["
|
567 |
channel_info,
|
568 |
stage1_info["missingTemplates"],
|
569 |
-
stage1_info["
|
570 |
# initialize the progress indication label
|
571 |
step3 = {
|
572 |
"count" : 1,
|
@@ -576,7 +576,7 @@ with gr.Blocks() as demo:
|
|
576 |
chkbox_label = '{} (1/{})'.format(target_name, step3["totalNum"])
|
577 |
|
578 |
target_idx = channel_info["templateDict"][target_name]["index"]
|
579 |
-
chkbox_value = stage1_info["
|
580 |
chkbox_value = [channel_info["inputOrder"][i] for i in chkbox_value]
|
581 |
|
582 |
stage1_info["step3"] = step3
|
@@ -607,7 +607,7 @@ with gr.Blocks() as demo:
|
|
607 |
prev_target_name = stage1_info["missingTemplates"][step3["count"]-1]
|
608 |
prev_target_idx = channel_info["templateDict"][prev_target_name]["index"]
|
609 |
selected_indices = [channel_info["inputDict"][channel]["index"] for channel in selected_chkbox]
|
610 |
-
stage1_info["
|
611 |
#print(f'{prev_target_name}({prev_target_idx}): {selected_indices}')
|
612 |
# ----------------------------------------------------------------------------------
|
613 |
md = """
|
@@ -686,8 +686,8 @@ with gr.Blocks() as demo:
|
|
686 |
prev_target_idx = channel_info["templateDict"][prev_target_name]["index"]
|
687 |
selected_idx = channel_info["inputDict"][selected]["index"]
|
688 |
|
689 |
-
stage1_info["
|
690 |
-
stage1_info["
|
691 |
channel_info["templateDict"][prev_target_name]["matched"] = True
|
692 |
channel_info["inputDict"][selected]["assigned"] = True
|
693 |
#print(prev_target_name, '<-', selected)
|
@@ -737,7 +737,7 @@ with gr.Blocks() as demo:
|
|
737 |
prev_target_name = stage1_info["missingTemplates"][step3["count"]-1]
|
738 |
prev_target_idx = channel_info["templateDict"][prev_target_name]["index"]
|
739 |
selected_indices = [channel_info["inputDict"][channel]["index"] for channel in selected]
|
740 |
-
stage1_info["
|
741 |
#print(f'{prev_target_name}({prev_target_idx}): {selected_indices}')
|
742 |
|
743 |
# ------------------------update information for the new round--------------------------
|
@@ -747,7 +747,7 @@ with gr.Blocks() as demo:
|
|
747 |
chkbox_label = '{} ({}/{})'.format(target_name, step3["count"], step3["totalNum"])
|
748 |
|
749 |
target_idx = channel_info["templateDict"][target_name]["index"]
|
750 |
-
chkbox_value = stage1_info["
|
751 |
chkbox_value = [channel_info["inputOrder"][i] for i in chkbox_value]
|
752 |
|
753 |
stage1_info["step3"] = step3
|
@@ -834,7 +834,7 @@ with gr.Blocks() as demo:
|
|
834 |
|
835 |
def run_model(stage1_info, stage2_info, modelname):
|
836 |
batch_num = stage1_info["batchNum"]
|
837 |
-
|
838 |
samplerate = stage2_info["sampleRate"]
|
839 |
filepath = stage2_info["filePath"]
|
840 |
filename = stage2_info["fileNames"]["inputData"]
|
@@ -844,8 +844,8 @@ with gr.Blocks() as demo:
|
|
844 |
for i in range(batch_num):
|
845 |
yield {batch_md : gr.Markdown('Running model({}/{})...'.format(i+1, batch_num))}
|
846 |
|
847 |
-
new_idx =
|
848 |
-
fill_flags =
|
849 |
m_filename = 'mapped_{:02d}.csv'.format(i+1)
|
850 |
d_filename = 'denoised_{:02d}.csv'.format(i+1)
|
851 |
try:
|
|
|
326 |
"unassignedInputs" : None,
|
327 |
"missingTemplates" : None,
|
328 |
"batchNum" : None,
|
329 |
+
"mappingResults" : [
|
330 |
{
|
331 |
"newOrder" : None,
|
332 |
"fillFlags" : None
|
|
|
487 |
prev_target_idx = channel_info["templateDict"][prev_target_name]["index"]
|
488 |
selected_idx = channel_info["inputDict"][selected_radio]["index"]
|
489 |
|
490 |
+
stage1_info["mappingResults"][0]["newOrder"][prev_target_idx] = [selected_idx]
|
491 |
+
stage1_info["mappingResults"][0]["fillFlags"][prev_target_idx] = False
|
492 |
channel_info["templateDict"][prev_target_name]["matched"] = True
|
493 |
channel_info["inputDict"][selected_radio]["assigned"] = True
|
494 |
#print(prev_target_name, '<-', selected_radio)
|
|
|
563 |
value of the data from the selected channels. (By default, the 4 nearest channels are pre-selected.)
|
564 |
"""
|
565 |
# find the 4 nearest in_channels for each unmatched tpl_channels
|
566 |
+
stage1_info["mappingResults"][0]["newOrder"] = app_utils.find_neighbors(
|
567 |
channel_info,
|
568 |
stage1_info["missingTemplates"],
|
569 |
+
stage1_info["mappingResults"][0]["newOrder"])
|
570 |
# initialize the progress indication label
|
571 |
step3 = {
|
572 |
"count" : 1,
|
|
|
576 |
chkbox_label = '{} (1/{})'.format(target_name, step3["totalNum"])
|
577 |
|
578 |
target_idx = channel_info["templateDict"][target_name]["index"]
|
579 |
+
chkbox_value = stage1_info["mappingResults"][0]["newOrder"][target_idx]
|
580 |
chkbox_value = [channel_info["inputOrder"][i] for i in chkbox_value]
|
581 |
|
582 |
stage1_info["step3"] = step3
|
|
|
607 |
prev_target_name = stage1_info["missingTemplates"][step3["count"]-1]
|
608 |
prev_target_idx = channel_info["templateDict"][prev_target_name]["index"]
|
609 |
selected_indices = [channel_info["inputDict"][channel]["index"] for channel in selected_chkbox]
|
610 |
+
stage1_info["mappingResults"][0]["newOrder"][prev_target_idx] = selected_indices
|
611 |
#print(f'{prev_target_name}({prev_target_idx}): {selected_indices}')
|
612 |
# ----------------------------------------------------------------------------------
|
613 |
md = """
|
|
|
686 |
prev_target_idx = channel_info["templateDict"][prev_target_name]["index"]
|
687 |
selected_idx = channel_info["inputDict"][selected]["index"]
|
688 |
|
689 |
+
stage1_info["mappingResults"][0]["newOrder"][prev_target_idx] = [selected_idx]
|
690 |
+
stage1_info["mappingResults"][0]["fillFlags"][prev_target_idx] = False
|
691 |
channel_info["templateDict"][prev_target_name]["matched"] = True
|
692 |
channel_info["inputDict"][selected]["assigned"] = True
|
693 |
#print(prev_target_name, '<-', selected)
|
|
|
737 |
prev_target_name = stage1_info["missingTemplates"][step3["count"]-1]
|
738 |
prev_target_idx = channel_info["templateDict"][prev_target_name]["index"]
|
739 |
selected_indices = [channel_info["inputDict"][channel]["index"] for channel in selected]
|
740 |
+
stage1_info["mappingResults"][0]["newOrder"][prev_target_idx] = selected_indices
|
741 |
#print(f'{prev_target_name}({prev_target_idx}): {selected_indices}')
|
742 |
|
743 |
# ------------------------update information for the new round--------------------------
|
|
|
747 |
chkbox_label = '{} ({}/{})'.format(target_name, step3["count"], step3["totalNum"])
|
748 |
|
749 |
target_idx = channel_info["templateDict"][target_name]["index"]
|
750 |
+
chkbox_value = stage1_info["mappingResults"][0]["newOrder"][target_idx]
|
751 |
chkbox_value = [channel_info["inputOrder"][i] for i in chkbox_value]
|
752 |
|
753 |
stage1_info["step3"] = step3
|
|
|
834 |
|
835 |
def run_model(stage1_info, stage2_info, modelname):
|
836 |
batch_num = stage1_info["batchNum"]
|
837 |
+
mapping_results = stage1_info["mappingResults"]
|
838 |
samplerate = stage2_info["sampleRate"]
|
839 |
filepath = stage2_info["filePath"]
|
840 |
filename = stage2_info["fileNames"]["inputData"]
|
|
|
844 |
for i in range(batch_num):
|
845 |
yield {batch_md : gr.Markdown('Running model({}/{})...'.format(i+1, batch_num))}
|
846 |
|
847 |
+
new_idx = mapping_results[i]["newOrder"]
|
848 |
+
fill_flags = mapping_results[i]["fillFlags"]
|
849 |
m_filename = 'mapped_{:02d}.csv'.format(i+1)
|
850 |
d_filename = 'denoised_{:02d}.csv'.format(i+1)
|
851 |
try:
|
app_utils.py
CHANGED
@@ -321,7 +321,7 @@ def optimal_mapping(channel_info):
|
|
321 |
if missing_channels != []:
|
322 |
new_idx = find_neighbors(channel_info, missing_channels, new_idx)
|
323 |
|
324 |
-
|
325 |
"newOrder" : new_idx,
|
326 |
"fillFlags" : fill_flags
|
327 |
}
|
@@ -329,31 +329,31 @@ def optimal_mapping(channel_info):
|
|
329 |
"templateDict" : tpl_dict,
|
330 |
"inputDict" : in_dict
|
331 |
})
|
332 |
-
return
|
333 |
|
334 |
def mapping_result(stage1_info, channel_info, filename):
|
335 |
unassigned_num = len(stage1_info["unassignedInputs"])
|
336 |
batch_num = math.ceil(unassigned_num/30) + 1
|
337 |
|
338 |
# map the remaining in_channels
|
339 |
-
|
340 |
for i in range(1, batch_num):
|
341 |
# optimally select 30 in_channels to map to the tpl_channels based on proximity
|
342 |
-
|
343 |
-
|
344 |
|
345 |
-
|
346 |
#"templateOrder" : channel_info["templateOrder"],
|
347 |
#"inputOrder" : channel_info["inputOrder"],
|
348 |
"batchNum" : batch_num,
|
349 |
-
"
|
350 |
}
|
351 |
with open(filename, 'w') as jsonfile:
|
352 |
-
jsonfile.write(json.dumps(
|
353 |
|
354 |
stage1_info.update({
|
355 |
"batchNum" : batch_num,
|
356 |
-
"
|
357 |
})
|
358 |
return stage1_info, channel_info
|
359 |
|
|
|
321 |
if missing_channels != []:
|
322 |
new_idx = find_neighbors(channel_info, missing_channels, new_idx)
|
323 |
|
324 |
+
result = {
|
325 |
"newOrder" : new_idx,
|
326 |
"fillFlags" : fill_flags
|
327 |
}
|
|
|
329 |
"templateDict" : tpl_dict,
|
330 |
"inputDict" : in_dict
|
331 |
})
|
332 |
+
return result, channel_info
|
333 |
|
334 |
def mapping_result(stage1_info, channel_info, filename):
|
335 |
unassigned_num = len(stage1_info["unassignedInputs"])
|
336 |
batch_num = math.ceil(unassigned_num/30) + 1
|
337 |
|
338 |
# map the remaining in_channels
|
339 |
+
results = stage1_info["mappingResults"]
|
340 |
for i in range(1, batch_num):
|
341 |
# optimally select 30 in_channels to map to the tpl_channels based on proximity
|
342 |
+
result, channel_info = optimal_mapping(channel_info)
|
343 |
+
results += [result]
|
344 |
|
345 |
+
data = {
|
346 |
#"templateOrder" : channel_info["templateOrder"],
|
347 |
#"inputOrder" : channel_info["inputOrder"],
|
348 |
"batchNum" : batch_num,
|
349 |
+
"mappingResults" : stage1_info["mappingResults"]
|
350 |
}
|
351 |
with open(filename, 'w') as jsonfile:
|
352 |
+
jsonfile.write(json.dumps(data))
|
353 |
|
354 |
stage1_info.update({
|
355 |
"batchNum" : batch_num,
|
356 |
+
"mappingResults" : results
|
357 |
})
|
358 |
return stage1_info, channel_info
|
359 |
|