| import streamlit as st | |
| import wfdb | |
| from datasets import load_dataset | |
| from load_wave import load_wave | |
| from tensorflow.keras.models import Sequential | |
| from tensorflow.keras.layers import Dense | |
| import tensorflow as tf | |
| import os | |
| import numpy as np | |
| dataset = load_dataset("lhoestq/demo1") | |
| st.set_page_config("銘傳大學生物醫學工程學系ECG分析網站") | |
| st.sidebar.markdown(""" # **Step 1: 修改load_wave中,取得PhysioNet分析資料**""") | |
| st.sidebar.markdown(""" # **Step 2: 開始分析**""") | |
| def callback(): | |
| data = load_wave() | |
| st.line_chart(data) | |
| data = np.array(data.T[1].reshape(1,4000)) | |
| path = "./" | |
| checkpoint_path = os.path.join(path,"model.ckpt") | |
| model = Sequential() | |
| model.add(Dense(64, input_shape=(4000,), activation='relu')) | |
| model.add(Dense(8, activation='relu')) | |
| model.add(Dense(1, activation='sigmoid')) | |
| model.load_weights(checkpoint_path) | |
| out = np.array(tf.round(model.predict(data)).cpu())[0][0] | |
| if out == 0: | |
| st.text("測試者狀態是 Relax") | |
| else: | |
| st.text("測試者狀態是 Activate") | |
| bt1 = st.button( | |
| "分析", | |
| on_click=callback, | |
| disabled=False, | |
| ) |