| 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(""" **Developed by** [吳允翔](https://www.linkedin.com/in/yjc-86941b101/) |
| """) |
| 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, |
| ) |
|
|