EC2 Default User
commited on
Commit
·
269e36f
1
Parent(s):
b76891e
Update: Model Zoo 3.0.0
Browse files- .gitignore +1 -0
- dash_app.py +12 -28
.gitignore
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
templates/403.html
|
dash_app.py
CHANGED
|
@@ -43,22 +43,6 @@ server = Flask(__name__)
|
|
| 43 |
server.secret_key = os.urandom(24)
|
| 44 |
|
| 45 |
|
| 46 |
-
ORIGINAL_HOST = "stmicroelectronics-stm32-modelzoo-app.hf.space"
|
| 47 |
-
|
| 48 |
-
@server.before_request
|
| 49 |
-
def block_original():
|
| 50 |
-
"""
|
| 51 |
-
Blocks access to the original host.
|
| 52 |
-
If the request is made to the original host, it aborts with a 403 error.
|
| 53 |
-
"""
|
| 54 |
-
if request.host == ORIGINAL_HOST:
|
| 55 |
-
abort(403, description= "❌ This application is exclusively accessible as a replicated Space")
|
| 56 |
-
|
| 57 |
-
@server.errorhandler(403)
|
| 58 |
-
def forbidden(e):
|
| 59 |
-
return render_template("403.html", error=str(e)), 403
|
| 60 |
-
|
| 61 |
-
|
| 62 |
@server.route('/')
|
| 63 |
def welcome_page():
|
| 64 |
"""
|
|
@@ -94,13 +78,13 @@ external_stylesheets = [dbc.themes.LITERA]
|
|
| 94 |
app = dash.Dash(__name__, server=server,external_stylesheets=external_stylesheets, url_base_pathname='/dash_app/', suppress_callback_exceptions=True)
|
| 95 |
|
| 96 |
local_yamls = {
|
| 97 |
-
'image_classification': 'stm32ai-modelzoo-services/image_classification/
|
| 98 |
-
'human_activity_recognition': 'stm32ai-modelzoo-services/human_activity_recognition/
|
| 99 |
-
'hand_posture': 'stm32ai-modelzoo-services/hand_posture/
|
| 100 |
-
'object_detection': 'stm32ai-modelzoo-services/object_detection/
|
| 101 |
-
'audio_event_detection': 'stm32ai-modelzoo-services/audio_event_detection/
|
| 102 |
-
'pose_estimation': 'stm32ai-modelzoo-services/pose_estimation/
|
| 103 |
-
'semantic_segmentation': 'stm32ai-modelzoo-services/semantic_segmentation/
|
| 104 |
}
|
| 105 |
|
| 106 |
def banner():
|
|
@@ -1016,7 +1000,7 @@ def refresh_metrics(n_intervals, nb_clicks, selected_model, devcloud_username, d
|
|
| 1016 |
|
| 1017 |
if button == 'process-button' and nb_clicks:
|
| 1018 |
if devcloud_username and devcloud_password:
|
| 1019 |
-
st_script = f"stm32ai-modelzoo-services/{selected_model}/
|
| 1020 |
execute_async(st_script, devcloud_username, devcloud_password)
|
| 1021 |
new_training = True
|
| 1022 |
logs.append("Starting application ...")
|
|
@@ -1334,7 +1318,7 @@ def process_button_actions(submit_clicks, exec_nb_clicks, form_input_ids, form_i
|
|
| 1334 |
raise PreventUpdate
|
| 1335 |
elif triggered_button == 'process-button':
|
| 1336 |
if exec_nb_clicks:
|
| 1337 |
-
st_script = f"stm32ai-modelzoo-services/{selected_model}/
|
| 1338 |
execute_async(st_script, devcloud_username, devcloud_password)
|
| 1339 |
return "Application is running ..."
|
| 1340 |
else:
|
|
@@ -1400,7 +1384,7 @@ def generate_download_link(n_clicks, selected_model):
|
|
| 1400 |
raise PreventUpdate
|
| 1401 |
|
| 1402 |
|
| 1403 |
-
output_directory = os.path.join(os.getcwd(), "
|
| 1404 |
|
| 1405 |
if not os.path.exists(output_directory ):
|
| 1406 |
raise PreventUpdate
|
|
@@ -1437,13 +1421,13 @@ def download_file(subpath):
|
|
| 1437 |
Route to download a file from the server.
|
| 1438 |
|
| 1439 |
Parameters:
|
| 1440 |
-
- subpath (str): The subpath of the file to be downloaded, relative to the '
|
| 1441 |
|
| 1442 |
Returns:
|
| 1443 |
- Response: A Flask response object to send the file as an attachment if it exists.
|
| 1444 |
- tuple: A tuple containing an error message and a 404 status code if the file is not found.
|
| 1445 |
"""
|
| 1446 |
-
file_path = os.path.join(os.getcwd(), '
|
| 1447 |
if os.path.exists(file_path):
|
| 1448 |
return send_file(file_path, as_attachment=True)
|
| 1449 |
else:
|
|
|
|
| 43 |
server.secret_key = os.urandom(24)
|
| 44 |
|
| 45 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 46 |
@server.route('/')
|
| 47 |
def welcome_page():
|
| 48 |
"""
|
|
|
|
| 78 |
app = dash.Dash(__name__, server=server,external_stylesheets=external_stylesheets, url_base_pathname='/dash_app/', suppress_callback_exceptions=True)
|
| 79 |
|
| 80 |
local_yamls = {
|
| 81 |
+
'image_classification': 'stm32ai-modelzoo-services/image_classification/user_config.yaml',
|
| 82 |
+
'human_activity_recognition': 'stm32ai-modelzoo-services/human_activity_recognition/user_config.yaml',
|
| 83 |
+
'hand_posture': 'stm32ai-modelzoo-services/hand_posture/user_config.yaml',
|
| 84 |
+
'object_detection': 'stm32ai-modelzoo-services/object_detection/user_config.yaml',
|
| 85 |
+
'audio_event_detection': 'stm32ai-modelzoo-services/audio_event_detection/user_config.yaml',
|
| 86 |
+
'pose_estimation': 'stm32ai-modelzoo-services/pose_estimation/user_config.yaml',
|
| 87 |
+
'semantic_segmentation': 'stm32ai-modelzoo-services/semantic_segmentation/user_config.yaml'
|
| 88 |
}
|
| 89 |
|
| 90 |
def banner():
|
|
|
|
| 1000 |
|
| 1001 |
if button == 'process-button' and nb_clicks:
|
| 1002 |
if devcloud_username and devcloud_password:
|
| 1003 |
+
st_script = f"stm32ai-modelzoo-services/{selected_model}/stm32ai_main.py"
|
| 1004 |
execute_async(st_script, devcloud_username, devcloud_password)
|
| 1005 |
new_training = True
|
| 1006 |
logs.append("Starting application ...")
|
|
|
|
| 1318 |
raise PreventUpdate
|
| 1319 |
elif triggered_button == 'process-button':
|
| 1320 |
if exec_nb_clicks:
|
| 1321 |
+
st_script = f"stm32ai-modelzoo-services/{selected_model}/stm32ai_main.py"
|
| 1322 |
execute_async(st_script, devcloud_username, devcloud_password)
|
| 1323 |
return "Application is running ..."
|
| 1324 |
else:
|
|
|
|
| 1384 |
raise PreventUpdate
|
| 1385 |
|
| 1386 |
|
| 1387 |
+
output_directory = os.path.join(os.getcwd(), "src/experiments_outputs")
|
| 1388 |
|
| 1389 |
if not os.path.exists(output_directory ):
|
| 1390 |
raise PreventUpdate
|
|
|
|
| 1421 |
Route to download a file from the server.
|
| 1422 |
|
| 1423 |
Parameters:
|
| 1424 |
+
- subpath (str): The subpath of the file to be downloaded, relative to the 'src/experiments_outputs' directory.
|
| 1425 |
|
| 1426 |
Returns:
|
| 1427 |
- Response: A Flask response object to send the file as an attachment if it exists.
|
| 1428 |
- tuple: A tuple containing an error message and a 404 status code if the file is not found.
|
| 1429 |
"""
|
| 1430 |
+
file_path = os.path.join(os.getcwd(), 'src/experiments_outputs', subpath)
|
| 1431 |
if os.path.exists(file_path):
|
| 1432 |
return send_file(file_path, as_attachment=True)
|
| 1433 |
else:
|