DHEIVER jflo commited on
Commit
bce6d67
·
0 Parent(s):

Duplicate from jflo/CancerClassification

Browse files

Co-authored-by: Jesus Flores <jflo@users.noreply.huggingface.co>

Files changed (6) hide show
  1. .gitattributes +34 -0
  2. Cancer_Data.csv +0 -0
  3. README.md +13 -0
  4. app.py +49 -0
  5. cancer_classifier.ptl +0 -0
  6. requirements.txt +1 -0
.gitattributes ADDED
@@ -0,0 +1,34 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ *.7z filter=lfs diff=lfs merge=lfs -text
2
+ *.arrow filter=lfs diff=lfs merge=lfs -text
3
+ *.bin filter=lfs diff=lfs merge=lfs -text
4
+ *.bz2 filter=lfs diff=lfs merge=lfs -text
5
+ *.ckpt filter=lfs diff=lfs merge=lfs -text
6
+ *.ftz filter=lfs diff=lfs merge=lfs -text
7
+ *.gz filter=lfs diff=lfs merge=lfs -text
8
+ *.h5 filter=lfs diff=lfs merge=lfs -text
9
+ *.joblib filter=lfs diff=lfs merge=lfs -text
10
+ *.lfs.* filter=lfs diff=lfs merge=lfs -text
11
+ *.mlmodel filter=lfs diff=lfs merge=lfs -text
12
+ *.model filter=lfs diff=lfs merge=lfs -text
13
+ *.msgpack filter=lfs diff=lfs merge=lfs -text
14
+ *.npy filter=lfs diff=lfs merge=lfs -text
15
+ *.npz filter=lfs diff=lfs merge=lfs -text
16
+ *.onnx filter=lfs diff=lfs merge=lfs -text
17
+ *.ot filter=lfs diff=lfs merge=lfs -text
18
+ *.parquet filter=lfs diff=lfs merge=lfs -text
19
+ *.pb filter=lfs diff=lfs merge=lfs -text
20
+ *.pickle filter=lfs diff=lfs merge=lfs -text
21
+ *.pkl filter=lfs diff=lfs merge=lfs -text
22
+ *.pt filter=lfs diff=lfs merge=lfs -text
23
+ *.pth filter=lfs diff=lfs merge=lfs -text
24
+ *.rar filter=lfs diff=lfs merge=lfs -text
25
+ *.safetensors filter=lfs diff=lfs merge=lfs -text
26
+ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
27
+ *.tar.* filter=lfs diff=lfs merge=lfs -text
28
+ *.tflite filter=lfs diff=lfs merge=lfs -text
29
+ *.tgz filter=lfs diff=lfs merge=lfs -text
30
+ *.wasm filter=lfs diff=lfs merge=lfs -text
31
+ *.xz filter=lfs diff=lfs merge=lfs -text
32
+ *.zip filter=lfs diff=lfs merge=lfs -text
33
+ *.zst filter=lfs diff=lfs merge=lfs -text
34
+ *tfevents* filter=lfs diff=lfs merge=lfs -text
Cancer_Data.csv ADDED
The diff for this file is too large to render. See raw diff
 
README.md ADDED
@@ -0,0 +1,13 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ title: CancerClassification
3
+ emoji: 🐠
4
+ colorFrom: yellow
5
+ colorTo: indigo
6
+ sdk: gradio
7
+ sdk_version: 3.27.0
8
+ app_file: app.py
9
+ pinned: false
10
+ duplicated_from: jflo/CancerClassification
11
+ ---
12
+
13
+ Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
app.py ADDED
@@ -0,0 +1,49 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import torch
2
+ import gradio as gr
3
+ import torch.nn.functional as F
4
+ import pandas as pd
5
+
6
+ df = pd.read_csv("Cancer_Data.csv")
7
+ df = df.dropna(axis='columns')
8
+ df = df.drop(['id'],axis=1)
9
+
10
+ headers = ["diagnosis","radius_mean","texture_mean","perimeter_mean","area_mean","smoothness_mean","compactness_mean","concavity_mean","concave points_mean","symmetry_mean","fractal_dimension_mean","radius_se","texture_se","perimeter_se","area_se","smoothness_se","compactness_se","concavity_se","concave points_se","symmetry_se","fractal_dimension_se","radius_worst","texture_worst","perimeter_worst","area_worst","smoothness_worst","compactness_worst","concavity_worst","concave points_worst","symmetry_worst","fractal_dimension_worst"]
11
+ inputs = [gr.Dataframe(headers = headers, row_count = (2, "dynamic"), col_count=(31,"dynamic"), label="Input Data", interactive=False)]
12
+ outputs = [gr.Dataframe(row_count = (2, "dynamic"), col_count=(1, "fixed"), label="Predictions", headers=["results"])]
13
+
14
+ def classify_cell(df_input):
15
+ # Dropping diagnosis
16
+ cells = df_input.drop(['diagnosis'],axis=1).values
17
+
18
+ # Classes
19
+ cancer_classes = ['Benign','Malignant']
20
+ # Loading model
21
+ cell_model = torch.jit.load('cancer_classifier.ptl')
22
+ # List I will pass into a dataframe as the return object
23
+ cell_results = []
24
+
25
+ # Converting to tensor and casting it as float32
26
+ cell = torch.tensor(cells)
27
+ cell = cell.to(torch.float)
28
+
29
+ # Running through model and applying softmax to output
30
+ cell_pred = cell_model(cell)
31
+ cell_pred = F.softmax(cell_pred,dim=1)
32
+ # Looping through model output to format string for each cell
33
+ for i in range(len(cell_pred)):
34
+ cell_prob = round(cell_pred[i][cell_pred[i].argmax()].item()*100,2)
35
+ output_string = f"{cancer_classes[cell_pred[i].argmax()]} Cancer Cell : {cell_prob}% confident"
36
+ # Appending formatted string for a cell to cell results list
37
+ cell_results.append(output_string)
38
+ return pd.DataFrame(cell_results,columns=["results"])
39
+
40
+ demo = gr.Interface(classify_cell,
41
+ inputs = inputs,
42
+ outputs = outputs,
43
+ title = "Classify Cancer Cell",
44
+ description="Classifies Cancer Cell into <b>Malignant</b> or <b>Benign</b> based on its features. Click on the example to classify 5 cells! </br> First Column shows what the cell should be classified as",
45
+ examples=[df.iloc[17:22]],
46
+ cache_examples=False
47
+ )
48
+
49
+ demo.launch(inline=False)
cancer_classifier.ptl ADDED
Binary file (10.6 kB). View file
 
requirements.txt ADDED
@@ -0,0 +1 @@
 
 
1
+ torch