Spaces:
Runtime error
Runtime error
frances-dean
commited on
Update app.py
Browse files
app.py
CHANGED
@@ -1,12 +1,11 @@
|
|
1 |
import gradio as gr
|
2 |
-
import os
|
3 |
import matplotlib.pyplot as plt
|
4 |
from scipy.integrate import odeint
|
5 |
import torch
|
6 |
from torch.utils import data
|
7 |
from torch.utils.data import DataLoader, Dataset
|
8 |
from torch import nn, optim
|
9 |
-
import os
|
10 |
from skimage.transform import rescale, resize
|
11 |
from torch import nn, optim
|
12 |
import torch.nn.functional as F
|
@@ -36,8 +35,8 @@ device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu")
|
|
36 |
|
37 |
sequences_all = []
|
38 |
info_data_all = []
|
39 |
-
path = '
|
40 |
-
output_path = '
|
41 |
|
42 |
class Echo(torchvision.datasets.VisionDataset):
|
43 |
"""EchoNet-Dynamic Dataset.
|
@@ -120,10 +119,10 @@ class Echo(torchvision.datasets.VisionDataset):
|
|
120 |
self.fnames, self.outcome = [], []
|
121 |
|
122 |
if self.split == "EXTERNAL_TEST":
|
123 |
-
self.fnames = sorted(os.listdir(self.external_test_location))
|
124 |
else:
|
125 |
# Load video-level labels
|
126 |
-
with open(
|
127 |
data = pandas.read_csv(f)
|
128 |
data["Split"].map(lambda x: x.upper())
|
129 |
|
@@ -132,7 +131,7 @@ class Echo(torchvision.datasets.VisionDataset):
|
|
132 |
|
133 |
self.header = data.columns.tolist()
|
134 |
self.fnames = data["FileName"].tolist()
|
135 |
-
self.fnames = [fn + ".avi" for fn in self.fnames if os.path.splitext(fn)[1] == ""] # Assume avi if no suffix
|
136 |
self.outcome = data.values.tolist()
|
137 |
|
138 |
# Check that files are present
|
@@ -149,7 +148,7 @@ class Echo(torchvision.datasets.VisionDataset):
|
|
149 |
self.frames = collections.defaultdict(list)
|
150 |
self.trace = collections.defaultdict(_defaultdict_of_lists)
|
151 |
|
152 |
-
with open(
|
153 |
header = f.readline().strip().split(",")
|
154 |
assert header == ["FileName", "X1", "Y1", "X2", "Y2", "Frame"]
|
155 |
|
@@ -175,11 +174,11 @@ class Echo(torchvision.datasets.VisionDataset):
|
|
175 |
def __getitem__(self, index):
|
176 |
# Find filename of video
|
177 |
if self.split == "EXTERNAL_TEST":
|
178 |
-
video = os.path.join(self.external_test_location, self.fnames[index])
|
179 |
elif self.split == "CLINICAL_TEST":
|
180 |
-
video = os.path.join(self.root, "ProcessedStrainStudyA4c", self.fnames[index])
|
181 |
else:
|
182 |
-
video = os.path.join(self.root, "Videos", self.fnames[index])
|
183 |
|
184 |
# Load video into np.array
|
185 |
video = echonet.utils.loadvideo(video).astype(np.float32)
|
@@ -379,10 +378,10 @@ class Interpolator(nn.Module):
|
|
379 |
|
380 |
# Initialize the neural network
|
381 |
net = Interpolator()
|
382 |
-
net.load_state_dict(torch.load('
|
383 |
print("Done loading interpolator!")
|
384 |
|
385 |
-
weights_path = '
|
386 |
model = NEW3DCNN(num_parameters = 7)
|
387 |
model.load_state_dict(torch.load(weights_path))
|
388 |
model.to(device)
|
@@ -492,14 +491,14 @@ def pvloop_simulator_plot_only(Rm, Ra, Emax, Emin, Vd, Tc, start_v):
|
|
492 |
|
493 |
def generate_example():
|
494 |
# get random input
|
495 |
-
data_path = '
|
496 |
image_data = Echo(root = data_path, split = 'all', target_type=['Filename','LargeIndex','SmallIndex'])
|
497 |
image_loaded_data = DataLoader(image_data, batch_size=1, shuffle=True)
|
498 |
val_data = next(iter(image_loaded_data))
|
499 |
#create_echo_clip(val_data,'test')
|
500 |
val_seq = val_data[0]
|
501 |
filename = val_data[1][0][0]
|
502 |
-
video =
|
503 |
val_tensor = torch.tensor(val_seq, dtype=torch.float32)
|
504 |
results = model(val_tensor)
|
505 |
|
|
|
1 |
import gradio as gr
|
2 |
+
#import os
|
3 |
import matplotlib.pyplot as plt
|
4 |
from scipy.integrate import odeint
|
5 |
import torch
|
6 |
from torch.utils import data
|
7 |
from torch.utils.data import DataLoader, Dataset
|
8 |
from torch import nn, optim
|
|
|
9 |
from skimage.transform import rescale, resize
|
10 |
from torch import nn, optim
|
11 |
import torch.nn.functional as F
|
|
|
35 |
|
36 |
sequences_all = []
|
37 |
info_data_all = []
|
38 |
+
path = 'EchoNet-Dynamic'
|
39 |
+
output_path = ''
|
40 |
|
41 |
class Echo(torchvision.datasets.VisionDataset):
|
42 |
"""EchoNet-Dynamic Dataset.
|
|
|
119 |
self.fnames, self.outcome = [], []
|
120 |
|
121 |
if self.split == "EXTERNAL_TEST":
|
122 |
+
# self.fnames = sorted(os.listdir(self.external_test_location))
|
123 |
else:
|
124 |
# Load video-level labels
|
125 |
+
with open(f"{self.root}FileList.csv")) as f:
|
126 |
data = pandas.read_csv(f)
|
127 |
data["Split"].map(lambda x: x.upper())
|
128 |
|
|
|
131 |
|
132 |
self.header = data.columns.tolist()
|
133 |
self.fnames = data["FileName"].tolist()
|
134 |
+
# self.fnames = [fn + ".avi" for fn in self.fnames if os.path.splitext(fn)[1] == ""] # Assume avi if no suffix
|
135 |
self.outcome = data.values.tolist()
|
136 |
|
137 |
# Check that files are present
|
|
|
148 |
self.frames = collections.defaultdict(list)
|
149 |
self.trace = collections.defaultdict(_defaultdict_of_lists)
|
150 |
|
151 |
+
with open(f"{self.root}VolumeTracings.csv")) as f:
|
152 |
header = f.readline().strip().split(",")
|
153 |
assert header == ["FileName", "X1", "Y1", "X2", "Y2", "Frame"]
|
154 |
|
|
|
174 |
def __getitem__(self, index):
|
175 |
# Find filename of video
|
176 |
if self.split == "EXTERNAL_TEST":
|
177 |
+
# video = os.path.join(self.external_test_location, self.fnames[index])
|
178 |
elif self.split == "CLINICAL_TEST":
|
179 |
+
# video = os.path.join(self.root, "ProcessedStrainStudyA4c", self.fnames[index])
|
180 |
else:
|
181 |
+
# video = os.path.join(self.root, "Videos", self.fnames[index])
|
182 |
|
183 |
# Load video into np.array
|
184 |
video = echonet.utils.loadvideo(video).astype(np.float32)
|
|
|
378 |
|
379 |
# Initialize the neural network
|
380 |
net = Interpolator()
|
381 |
+
net.load_state_dict(torch.load('final_model_weights/interp6_7param_weight.pt'))
|
382 |
print("Done loading interpolator!")
|
383 |
|
384 |
+
weights_path = 'final_model_weights/202_full_echonet_7param_Vloss_epoch_200_lr_0.001_weight_best_model.pt'
|
385 |
model = NEW3DCNN(num_parameters = 7)
|
386 |
model.load_state_dict(torch.load(weights_path))
|
387 |
model.to(device)
|
|
|
491 |
|
492 |
def generate_example():
|
493 |
# get random input
|
494 |
+
data_path = 'EchoNet-Dynamic'
|
495 |
image_data = Echo(root = data_path, split = 'all', target_type=['Filename','LargeIndex','SmallIndex'])
|
496 |
image_loaded_data = DataLoader(image_data, batch_size=1, shuffle=True)
|
497 |
val_data = next(iter(image_loaded_data))
|
498 |
#create_echo_clip(val_data,'test')
|
499 |
val_seq = val_data[0]
|
500 |
filename = val_data[1][0][0]
|
501 |
+
video = f"EchoNet-Dynamic/Videos/{filename}"
|
502 |
val_tensor = torch.tensor(val_seq, dtype=torch.float32)
|
503 |
results = model(val_tensor)
|
504 |
|