PSstark commited on
Commit
ad9339f
·
verified ·
1 Parent(s): 46c0bd3

Upload folder using huggingface_hub

Browse files
Files changed (5) hide show
  1. .gitattributes +1 -0
  2. Dockerfile +4 -13
  3. app.py +35 -0
  4. chexnet_pneumonia_model_v1.keras +3 -0
  5. requirements.txt +4 -3
.gitattributes CHANGED
@@ -33,3 +33,4 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
33
  *.zip filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
 
 
33
  *.zip filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
36
+ chexnet_pneumonia_model_v1.keras filter=lfs diff=lfs merge=lfs -text
Dockerfile CHANGED
@@ -1,20 +1,11 @@
1
- FROM python:3.13.5-slim
2
 
3
  WORKDIR /app
4
 
5
- RUN apt-get update && apt-get install -y \
6
- build-essential \
7
- curl \
8
- git \
9
- && rm -rf /var/lib/apt/lists/*
10
 
11
- COPY requirements.txt ./
12
- COPY src/ ./src/
13
-
14
- RUN pip3 install -r requirements.txt
15
 
16
  EXPOSE 8501
17
 
18
- HEALTHCHECK CMD curl --fail http://localhost:8501/_stcore/health
19
-
20
- ENTRYPOINT ["streamlit", "run", "src/streamlit_app.py", "--server.port=8501", "--server.address=0.0.0.0"]
 
1
+ FROM python:3.9-slim
2
 
3
  WORKDIR /app
4
 
5
+ COPY . .
 
 
 
 
6
 
7
+ RUN pip install --no-cache-dir -r requirements.txt
 
 
 
8
 
9
  EXPOSE 8501
10
 
11
+ CMD ["streamlit", "run", "app.py", "--server.port=8501", "--server.address=0.0.0.0"]
 
 
app.py ADDED
@@ -0,0 +1,35 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import streamlit as st
2
+ import tensorflow as tf
3
+ import numpy as np
4
+ from PIL import Image
5
+
6
+ st.title("🩺 Pneumonia Detection from Chest X-ray")
7
+
8
+ @st.cache_resource
9
+ def load_model():
10
+ return tf.keras.models.load_model("chexnet_pneumonia_model_v1.keras")
11
+
12
+ model = load_model()
13
+
14
+ def preprocess_image(img):
15
+ img = img.convert("L")
16
+ img = img.resize((200, 200))
17
+ img = np.array(img) / 255.0
18
+ img = img.reshape(1, 200, 200, 1)
19
+ return img
20
+
21
+ uploaded_file = st.file_uploader("Upload Chest X-ray", type=["jpg","png","jpeg"])
22
+
23
+ if uploaded_file:
24
+ image = Image.open(uploaded_file)
25
+ st.image(image, caption="Uploaded Image", use_column_width=True)
26
+
27
+ if st.button("Predict"):
28
+ img_input = preprocess_image(image)
29
+ prob = model.predict(img_input)[0][0]
30
+ pred = 1 if prob >= 0.5 else 0
31
+
32
+ if pred == 1:
33
+ st.error(f"Pneumonia Detected (Probability: {prob:.2f})")
34
+ else:
35
+ st.success(f"No Pneumonia Detected (Probability: {1-prob:.2f})")
chexnet_pneumonia_model_v1.keras ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:2c837953b7f9a74b0767881c328207b177fcab4074f9757f1f99ab31832b607e
3
+ size 31245914
requirements.txt CHANGED
@@ -1,3 +1,4 @@
1
- altair
2
- pandas
3
- streamlit
 
 
1
+ tensorflow==2.15.0
2
+ streamlit
3
+ numpy
4
+ pillow