Sahil
commited on
Commit
·
aaf9c6c
1
Parent(s):
a3ae2f6
Add application file
Browse files- test.py +30 -0
- utils.py +101 -0
- video_classfication/checkpoints/epoch=99-step=1000.ckpt +3 -0
- video_classfication/events.out.tfevents.1712128751.DESKTOP-SPBG53I.34764.0 +3 -0
- video_classfication/hparams.yaml +205 -0
- video_classfication/version_11/checkpoints/epoch=99-step=1000.ckpt +3 -0
- video_classfication/version_11/events.out.tfevents.1712128751.DESKTOP-SPBG53I.34764.0 +3 -0
- video_classfication/version_11/hparams.yaml +205 -0
test.py
ADDED
@@ -0,0 +1,30 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import gradio as gr
|
2 |
+
import os
|
3 |
+
from utils import classfication
|
4 |
+
source_video = "videos/main.mp4"
|
5 |
+
def video_identity(video):
|
6 |
+
print(type(video))
|
7 |
+
try:
|
8 |
+
os.makedirs(os.path.dirname(source_video ), exist_ok=True)
|
9 |
+
os.replace(video, source_video )
|
10 |
+
except Exception as e:
|
11 |
+
print(f"Error: {e}")
|
12 |
+
predection =classfication()
|
13 |
+
files = os.listdir(source_video)
|
14 |
+
|
15 |
+
# Iterate through each file and delete
|
16 |
+
for file in files:
|
17 |
+
file_path = os.path.join(source_video, file)
|
18 |
+
if os.path.isfile(file_path):
|
19 |
+
os.remove(file_path)
|
20 |
+
|
21 |
+
return predection
|
22 |
+
|
23 |
+
|
24 |
+
demo = gr.Interface(video_identity,
|
25 |
+
gr.Video(),
|
26 |
+
outputs="text"
|
27 |
+
)
|
28 |
+
|
29 |
+
if __name__ == "__main__":
|
30 |
+
demo.launch(share=True)
|
utils.py
ADDED
@@ -0,0 +1,101 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import flash
|
2 |
+
from flash.core.data.utils import download_data
|
3 |
+
from flash.video import VideoClassificationData, VideoClassifier
|
4 |
+
import torch
|
5 |
+
from flash.video.classification.input_transform import VideoClassificationInputTransform
|
6 |
+
from pytorchvideo.transforms import (
|
7 |
+
ApplyTransformToKey,
|
8 |
+
ShortSideScale,
|
9 |
+
UniformTemporalSubsample,
|
10 |
+
UniformCropVideo,
|
11 |
+
)
|
12 |
+
from dataclasses import dataclass
|
13 |
+
from typing import Callable
|
14 |
+
|
15 |
+
import torch
|
16 |
+
from torch import Tensor
|
17 |
+
|
18 |
+
from flash.core.data.io.input import DataKeys
|
19 |
+
from flash.core.data.io.input_transform import InputTransform
|
20 |
+
from flash.core.data.transforms import ApplyToKeys
|
21 |
+
from flash.core.utilities.imports import (
|
22 |
+
_KORNIA_AVAILABLE,
|
23 |
+
_PYTORCHVIDEO_AVAILABLE,
|
24 |
+
requires,
|
25 |
+
)
|
26 |
+
from torchvision.transforms import Compose, CenterCrop
|
27 |
+
from torchvision.transforms import RandomCrop
|
28 |
+
from torch import nn
|
29 |
+
import kornia.augmentation as K
|
30 |
+
from torchvision import transforms as T
|
31 |
+
torch.set_float32_matmul_precision('high')
|
32 |
+
|
33 |
+
def normalize(x: Tensor) -> Tensor:
|
34 |
+
return x / 255.0
|
35 |
+
|
36 |
+
class TransformDataModule(InputTransform):
|
37 |
+
image_size: int = 256
|
38 |
+
temporal_sub_sample: int = 16 # This is the only change in our custom transform
|
39 |
+
mean: Tensor = torch.tensor([0.45, 0.45, 0.45])
|
40 |
+
std: Tensor = torch.tensor([0.225, 0.225, 0.225])
|
41 |
+
data_format: str = "BCTHW"
|
42 |
+
same_on_frame: bool = False
|
43 |
+
|
44 |
+
def per_sample_transform(self) -> Callable:
|
45 |
+
per_sample_transform = [CenterCrop(self.image_size)]
|
46 |
+
|
47 |
+
return Compose(
|
48 |
+
[
|
49 |
+
ApplyToKeys(
|
50 |
+
DataKeys.INPUT,
|
51 |
+
Compose(
|
52 |
+
[UniformTemporalSubsample(self.temporal_sub_sample), normalize]
|
53 |
+
+ per_sample_transform
|
54 |
+
),
|
55 |
+
),
|
56 |
+
ApplyToKeys(DataKeys.TARGET, torch.as_tensor),
|
57 |
+
]
|
58 |
+
)
|
59 |
+
|
60 |
+
def train_per_sample_transform(self) -> Callable:
|
61 |
+
per_sample_transform = [RandomCrop(self.image_size, pad_if_needed=True)]
|
62 |
+
|
63 |
+
return Compose(
|
64 |
+
[
|
65 |
+
ApplyToKeys(
|
66 |
+
DataKeys.INPUT,
|
67 |
+
Compose(
|
68 |
+
[UniformTemporalSubsample(self.temporal_sub_sample), normalize]
|
69 |
+
+ per_sample_transform
|
70 |
+
),
|
71 |
+
),
|
72 |
+
ApplyToKeys(DataKeys.TARGET, torch.as_tensor),
|
73 |
+
]
|
74 |
+
)
|
75 |
+
|
76 |
+
def per_batch_transform_on_device(self) -> Callable:
|
77 |
+
return ApplyToKeys(
|
78 |
+
DataKeys.INPUT,
|
79 |
+
K.VideoSequential(
|
80 |
+
K.Normalize(self.mean, self.std),
|
81 |
+
data_format=self.data_format,
|
82 |
+
same_on_frame=self.same_on_frame,
|
83 |
+
),
|
84 |
+
)
|
85 |
+
|
86 |
+
|
87 |
+
|
88 |
+
model = VideoClassifier.load_from_checkpoint("video_classfication/checkpoints/epoch=99-step=1000.ckpt")
|
89 |
+
|
90 |
+
|
91 |
+
datamodule_p = VideoClassificationData.from_folders(
|
92 |
+
predict_folder="videos",
|
93 |
+
batch_size=1,
|
94 |
+
transform=TransformDataModule()
|
95 |
+
)
|
96 |
+
trainer = flash.Trainer(
|
97 |
+
max_epochs=5,
|
98 |
+
)
|
99 |
+
def classfication():
|
100 |
+
predictions = trainer.predict(model, datamodule=datamodule_p, output="labels")
|
101 |
+
return predictions[0][0]
|
video_classfication/checkpoints/epoch=99-step=1000.ckpt
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:964aa411fb1cc4826d79977b5420c8cb69858fe59fe4084585a47ea219c15319
|
3 |
+
size 15982674
|
video_classfication/events.out.tfevents.1712128751.DESKTOP-SPBG53I.34764.0
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:883e34ebeb24be50e42c8786c01702f449baddb15504417ae3fd7dc62c3dd77d
|
3 |
+
size 35983
|
video_classfication/hparams.yaml
ADDED
@@ -0,0 +1,205 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
backbone: x3d_m
|
2 |
+
backbone_kwargs: null
|
3 |
+
head: null
|
4 |
+
labels:
|
5 |
+
- Cloud
|
6 |
+
- able
|
7 |
+
- accept
|
8 |
+
- active
|
9 |
+
- add
|
10 |
+
- admit
|
11 |
+
- classroom
|
12 |
+
- college
|
13 |
+
- computer
|
14 |
+
- engineer
|
15 |
+
- information
|
16 |
+
- internet
|
17 |
+
learning_rate: null
|
18 |
+
loss_fn: !!python/name:torch.nn.functional.cross_entropy ''
|
19 |
+
lr_scheduler: null
|
20 |
+
metrics: !!python/object/new:torchmetrics.classification.accuracy.Accuracy
|
21 |
+
args:
|
22 |
+
- Accuracy()
|
23 |
+
state:
|
24 |
+
_backward_hooks: !!python/object/apply:collections.OrderedDict
|
25 |
+
- []
|
26 |
+
_backward_pre_hooks: !!python/object/apply:collections.OrderedDict
|
27 |
+
- []
|
28 |
+
_buffers: !!python/object/apply:collections.OrderedDict
|
29 |
+
- []
|
30 |
+
_cache: null
|
31 |
+
_computed: null
|
32 |
+
_defaults:
|
33 |
+
fn: !!python/object/apply:torch._utils._rebuild_tensor_v2
|
34 |
+
- !!python/object/apply:torch.storage._load_from_bytes
|
35 |
+
- !!binary |
|
36 |
+
gAKKCmz8nEb5IGqoUBkugAJN6QMugAJ9cQAoWBAAAABwcm90b2NvbF92ZXJzaW9ucQFN6QNYDQAA
|
37 |
+
AGxpdHRsZV9lbmRpYW5xAohYCgAAAHR5cGVfc2l6ZXNxA31xBChYBQAAAHNob3J0cQVLAlgDAAAA
|
38 |
+
aW50cQZLBFgEAAAAbG9uZ3EHSwR1dS6AAihYBwAAAHN0b3JhZ2VxAGN0b3JjaApMb25nU3RvcmFn
|
39 |
+
ZQpxAVgNAAAAMjE1OTMyNDY5NzY2NHECWAMAAABjcHVxA0sBTnRxBFEugAJdcQBYDQAAADIxNTkz
|
40 |
+
MjQ2OTc2NjRxAWEuAQAAAAAAAAAAAAAAAAAAAA==
|
41 |
+
- 0
|
42 |
+
- !!python/tuple []
|
43 |
+
- !!python/tuple []
|
44 |
+
- false
|
45 |
+
- !!python/object/apply:collections.OrderedDict
|
46 |
+
- []
|
47 |
+
fp: !!python/object/apply:torch._utils._rebuild_tensor_v2
|
48 |
+
- !!python/object/apply:torch.storage._load_from_bytes
|
49 |
+
- !!binary |
|
50 |
+
gAKKCmz8nEb5IGqoUBkugAJN6QMugAJ9cQAoWBAAAABwcm90b2NvbF92ZXJzaW9ucQFN6QNYDQAA
|
51 |
+
AGxpdHRsZV9lbmRpYW5xAohYCgAAAHR5cGVfc2l6ZXNxA31xBChYBQAAAHNob3J0cQVLAlgDAAAA
|
52 |
+
aW50cQZLBFgEAAAAbG9uZ3EHSwR1dS6AAihYBwAAAHN0b3JhZ2VxAGN0b3JjaApMb25nU3RvcmFn
|
53 |
+
ZQpxAVgNAAAAMjE1OTMyNDY5NDc1MnECWAMAAABjcHVxA0sBTnRxBFEugAJdcQBYDQAAADIxNTkz
|
54 |
+
MjQ2OTQ3NTJxAWEuAQAAAAAAAAAAAAAAAAAAAA==
|
55 |
+
- 0
|
56 |
+
- !!python/tuple []
|
57 |
+
- !!python/tuple []
|
58 |
+
- false
|
59 |
+
- !!python/object/apply:collections.OrderedDict
|
60 |
+
- []
|
61 |
+
tn: !!python/object/apply:torch._utils._rebuild_tensor_v2
|
62 |
+
- !!python/object/apply:torch.storage._load_from_bytes
|
63 |
+
- !!binary |
|
64 |
+
gAKKCmz8nEb5IGqoUBkugAJN6QMugAJ9cQAoWBAAAABwcm90b2NvbF92ZXJzaW9ucQFN6QNYDQAA
|
65 |
+
AGxpdHRsZV9lbmRpYW5xAohYCgAAAHR5cGVfc2l6ZXNxA31xBChYBQAAAHNob3J0cQVLAlgDAAAA
|
66 |
+
aW50cQZLBFgEAAAAbG9uZ3EHSwR1dS6AAihYBwAAAHN0b3JhZ2VxAGN0b3JjaApMb25nU3RvcmFn
|
67 |
+
ZQpxAVgNAAAAMjE1OTMyNDY5Nzc3NnECWAMAAABjcHVxA0sBTnRxBFEugAJdcQBYDQAAADIxNTkz
|
68 |
+
MjQ2OTc3NzZxAWEuAQAAAAAAAAAAAAAAAAAAAA==
|
69 |
+
- 0
|
70 |
+
- !!python/tuple []
|
71 |
+
- !!python/tuple []
|
72 |
+
- false
|
73 |
+
- !!python/object/apply:collections.OrderedDict
|
74 |
+
- []
|
75 |
+
tp: !!python/object/apply:torch._utils._rebuild_tensor_v2
|
76 |
+
- !!python/object/apply:torch.storage._load_from_bytes
|
77 |
+
- !!binary |
|
78 |
+
gAKKCmz8nEb5IGqoUBkugAJN6QMugAJ9cQAoWBAAAABwcm90b2NvbF92ZXJzaW9ucQFN6QNYDQAA
|
79 |
+
AGxpdHRsZV9lbmRpYW5xAohYCgAAAHR5cGVfc2l6ZXNxA31xBChYBQAAAHNob3J0cQVLAlgDAAAA
|
80 |
+
aW50cQZLBFgEAAAAbG9uZ3EHSwR1dS6AAihYBwAAAHN0b3JhZ2VxAGN0b3JjaApMb25nU3RvcmFn
|
81 |
+
ZQpxAVgNAAAAMjE1OTMyNDY5ODg5NnECWAMAAABjcHVxA0sBTnRxBFEugAJdcQBYDQAAADIxNTkz
|
82 |
+
MjQ2OTg4OTZxAWEuAQAAAAAAAAAAAAAAAAAAAA==
|
83 |
+
- 0
|
84 |
+
- !!python/tuple []
|
85 |
+
- !!python/tuple []
|
86 |
+
- false
|
87 |
+
- !!python/object/apply:collections.OrderedDict
|
88 |
+
- []
|
89 |
+
_device: !!python/object/apply:torch.device
|
90 |
+
- cpu
|
91 |
+
_enable_grad: false
|
92 |
+
_forward_cache: null
|
93 |
+
_forward_hooks: !!python/object/apply:collections.OrderedDict
|
94 |
+
- []
|
95 |
+
_forward_hooks_always_called: !!python/object/apply:collections.OrderedDict
|
96 |
+
- []
|
97 |
+
_forward_hooks_with_kwargs: !!python/object/apply:collections.OrderedDict
|
98 |
+
- []
|
99 |
+
_forward_pre_hooks: !!python/object/apply:collections.OrderedDict
|
100 |
+
- []
|
101 |
+
_forward_pre_hooks_with_kwargs: !!python/object/apply:collections.OrderedDict
|
102 |
+
- []
|
103 |
+
_is_full_backward_hook: null
|
104 |
+
_is_synced: false
|
105 |
+
_load_state_dict_post_hooks: !!python/object/apply:collections.OrderedDict
|
106 |
+
- []
|
107 |
+
_load_state_dict_pre_hooks: !!python/object/apply:collections.OrderedDict
|
108 |
+
- []
|
109 |
+
_modules: !!python/object/apply:collections.OrderedDict
|
110 |
+
- []
|
111 |
+
_non_persistent_buffers_set: !!set {}
|
112 |
+
_parameters: !!python/object/apply:collections.OrderedDict
|
113 |
+
- []
|
114 |
+
_persistent:
|
115 |
+
fn: false
|
116 |
+
fp: false
|
117 |
+
tn: false
|
118 |
+
tp: false
|
119 |
+
_reductions:
|
120 |
+
fn: &id001 !!python/name:torchmetrics.utilities.data.dim_zero_sum ''
|
121 |
+
fp: *id001
|
122 |
+
tn: *id001
|
123 |
+
tp: *id001
|
124 |
+
_should_unsync: true
|
125 |
+
_state_dict_hooks: !!python/object/apply:collections.OrderedDict
|
126 |
+
- []
|
127 |
+
_state_dict_pre_hooks: !!python/object/apply:collections.OrderedDict
|
128 |
+
- []
|
129 |
+
_to_sync: true
|
130 |
+
_update_count: 0
|
131 |
+
average: micro
|
132 |
+
compute_on_cpu: false
|
133 |
+
dist_sync_fn: null
|
134 |
+
dist_sync_on_step: false
|
135 |
+
fn: !!python/object/apply:torch._utils._rebuild_tensor_v2
|
136 |
+
- !!python/object/apply:torch.storage._load_from_bytes
|
137 |
+
- !!binary |
|
138 |
+
gAKKCmz8nEb5IGqoUBkugAJN6QMugAJ9cQAoWBAAAABwcm90b2NvbF92ZXJzaW9ucQFN6QNYDQAA
|
139 |
+
AGxpdHRsZV9lbmRpYW5xAohYCgAAAHR5cGVfc2l6ZXNxA31xBChYBQAAAHNob3J0cQVLAlgDAAAA
|
140 |
+
aW50cQZLBFgEAAAAbG9uZ3EHSwR1dS6AAihYBwAAAHN0b3JhZ2VxAGN0b3JjaApMb25nU3RvcmFn
|
141 |
+
ZQpxAVgNAAAAMjE1OTMyNDY5MzUyMHECWAMAAABjcHVxA0sBTnRxBFEugAJdcQBYDQAAADIxNTkz
|
142 |
+
MjQ2OTM1MjBxAWEuAQAAAAAAAAAAAAAAAAAAAA==
|
143 |
+
- 0
|
144 |
+
- !!python/tuple []
|
145 |
+
- !!python/tuple []
|
146 |
+
- false
|
147 |
+
- !!python/object/apply:collections.OrderedDict
|
148 |
+
- []
|
149 |
+
fp: !!python/object/apply:torch._utils._rebuild_tensor_v2
|
150 |
+
- !!python/object/apply:torch.storage._load_from_bytes
|
151 |
+
- !!binary |
|
152 |
+
gAKKCmz8nEb5IGqoUBkugAJN6QMugAJ9cQAoWBAAAABwcm90b2NvbF92ZXJzaW9ucQFN6QNYDQAA
|
153 |
+
AGxpdHRsZV9lbmRpYW5xAohYCgAAAHR5cGVfc2l6ZXNxA31xBChYBQAAAHNob3J0cQVLAlgDAAAA
|
154 |
+
aW50cQZLBFgEAAAAbG9uZ3EHSwR1dS6AAihYBwAAAHN0b3JhZ2VxAGN0b3JjaApMb25nU3RvcmFn
|
155 |
+
ZQpxAVgNAAAAMjE1OTMyNDY5NTQyNHECWAMAAABjcHVxA0sBTnRxBFEugAJdcQBYDQAAADIxNTkz
|
156 |
+
MjQ2OTU0MjRxAWEuAQAAAAAAAAAAAAAAAAAAAA==
|
157 |
+
- 0
|
158 |
+
- !!python/tuple []
|
159 |
+
- !!python/tuple []
|
160 |
+
- false
|
161 |
+
- !!python/object/apply:collections.OrderedDict
|
162 |
+
- []
|
163 |
+
ignore_index: null
|
164 |
+
mdmc_reduce: null
|
165 |
+
mode: null
|
166 |
+
multiclass: null
|
167 |
+
num_classes: null
|
168 |
+
process_group: null
|
169 |
+
reduce: micro
|
170 |
+
subset_accuracy: false
|
171 |
+
sync_on_compute: true
|
172 |
+
threshold: 0.5
|
173 |
+
tn: !!python/object/apply:torch._utils._rebuild_tensor_v2
|
174 |
+
- !!python/object/apply:torch.storage._load_from_bytes
|
175 |
+
- !!binary |
|
176 |
+
gAKKCmz8nEb5IGqoUBkugAJN6QMugAJ9cQAoWBAAAABwcm90b2NvbF92ZXJzaW9ucQFN6QNYDQAA
|
177 |
+
AGxpdHRsZV9lbmRpYW5xAohYCgAAAHR5cGVfc2l6ZXNxA31xBChYBQAAAHNob3J0cQVLAlgDAAAA
|
178 |
+
aW50cQZLBFgEAAAAbG9uZ3EHSwR1dS6AAihYBwAAAHN0b3JhZ2VxAGN0b3JjaApMb25nU3RvcmFn
|
179 |
+
ZQpxAVgNAAAAMjE1OTMyNDY5Nzg4OHECWAMAAABjcHVxA0sBTnRxBFEugAJdcQBYDQAAADIxNTkz
|
180 |
+
MjQ2OTc4ODhxAWEuAQAAAAAAAAAAAAAAAAAAAA==
|
181 |
+
- 0
|
182 |
+
- !!python/tuple []
|
183 |
+
- !!python/tuple []
|
184 |
+
- false
|
185 |
+
- !!python/object/apply:collections.OrderedDict
|
186 |
+
- []
|
187 |
+
top_k: null
|
188 |
+
tp: !!python/object/apply:torch._utils._rebuild_tensor_v2
|
189 |
+
- !!python/object/apply:torch.storage._load_from_bytes
|
190 |
+
- !!binary |
|
191 |
+
gAKKCmz8nEb5IGqoUBkugAJN6QMugAJ9cQAoWBAAAABwcm90b2NvbF92ZXJzaW9ucQFN6QNYDQAA
|
192 |
+
AGxpdHRsZV9lbmRpYW5xAohYCgAAAHR5cGVfc2l6ZXNxA31xBChYBQAAAHNob3J0cQVLAlgDAAAA
|
193 |
+
aW50cQZLBFgEAAAAbG9uZ3EHSwR1dS6AAihYBwAAAHN0b3JhZ2VxAGN0b3JjaApMb25nU3RvcmFn
|
194 |
+
ZQpxAVgNAAAAMjE1OTMyNDY5Mzg1NnECWAMAAABjcHVxA0sBTnRxBFEugAJdcQBYDQAAADIxNTkz
|
195 |
+
MjQ2OTM4NTZxAWEuAQAAAAAAAAAAAAAAAAAAAA==
|
196 |
+
- 0
|
197 |
+
- !!python/tuple []
|
198 |
+
- !!python/tuple []
|
199 |
+
- false
|
200 |
+
- !!python/object/apply:collections.OrderedDict
|
201 |
+
- []
|
202 |
+
training: true
|
203 |
+
num_classes: null
|
204 |
+
optimizer: Adam
|
205 |
+
pretrained: true
|
video_classfication/version_11/checkpoints/epoch=99-step=1000.ckpt
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:964aa411fb1cc4826d79977b5420c8cb69858fe59fe4084585a47ea219c15319
|
3 |
+
size 15982674
|
video_classfication/version_11/events.out.tfevents.1712128751.DESKTOP-SPBG53I.34764.0
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:883e34ebeb24be50e42c8786c01702f449baddb15504417ae3fd7dc62c3dd77d
|
3 |
+
size 35983
|
video_classfication/version_11/hparams.yaml
ADDED
@@ -0,0 +1,205 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
backbone: x3d_m
|
2 |
+
backbone_kwargs: null
|
3 |
+
head: null
|
4 |
+
labels:
|
5 |
+
- Cloud
|
6 |
+
- able
|
7 |
+
- accept
|
8 |
+
- active
|
9 |
+
- add
|
10 |
+
- admit
|
11 |
+
- classroom
|
12 |
+
- college
|
13 |
+
- computer
|
14 |
+
- engineer
|
15 |
+
- information
|
16 |
+
- internet
|
17 |
+
learning_rate: null
|
18 |
+
loss_fn: !!python/name:torch.nn.functional.cross_entropy ''
|
19 |
+
lr_scheduler: null
|
20 |
+
metrics: !!python/object/new:torchmetrics.classification.accuracy.Accuracy
|
21 |
+
args:
|
22 |
+
- Accuracy()
|
23 |
+
state:
|
24 |
+
_backward_hooks: !!python/object/apply:collections.OrderedDict
|
25 |
+
- []
|
26 |
+
_backward_pre_hooks: !!python/object/apply:collections.OrderedDict
|
27 |
+
- []
|
28 |
+
_buffers: !!python/object/apply:collections.OrderedDict
|
29 |
+
- []
|
30 |
+
_cache: null
|
31 |
+
_computed: null
|
32 |
+
_defaults:
|
33 |
+
fn: !!python/object/apply:torch._utils._rebuild_tensor_v2
|
34 |
+
- !!python/object/apply:torch.storage._load_from_bytes
|
35 |
+
- !!binary |
|
36 |
+
gAKKCmz8nEb5IGqoUBkugAJN6QMugAJ9cQAoWBAAAABwcm90b2NvbF92ZXJzaW9ucQFN6QNYDQAA
|
37 |
+
AGxpdHRsZV9lbmRpYW5xAohYCgAAAHR5cGVfc2l6ZXNxA31xBChYBQAAAHNob3J0cQVLAlgDAAAA
|
38 |
+
aW50cQZLBFgEAAAAbG9uZ3EHSwR1dS6AAihYBwAAAHN0b3JhZ2VxAGN0b3JjaApMb25nU3RvcmFn
|
39 |
+
ZQpxAVgNAAAAMjE1OTMyNDY5NzY2NHECWAMAAABjcHVxA0sBTnRxBFEugAJdcQBYDQAAADIxNTkz
|
40 |
+
MjQ2OTc2NjRxAWEuAQAAAAAAAAAAAAAAAAAAAA==
|
41 |
+
- 0
|
42 |
+
- !!python/tuple []
|
43 |
+
- !!python/tuple []
|
44 |
+
- false
|
45 |
+
- !!python/object/apply:collections.OrderedDict
|
46 |
+
- []
|
47 |
+
fp: !!python/object/apply:torch._utils._rebuild_tensor_v2
|
48 |
+
- !!python/object/apply:torch.storage._load_from_bytes
|
49 |
+
- !!binary |
|
50 |
+
gAKKCmz8nEb5IGqoUBkugAJN6QMugAJ9cQAoWBAAAABwcm90b2NvbF92ZXJzaW9ucQFN6QNYDQAA
|
51 |
+
AGxpdHRsZV9lbmRpYW5xAohYCgAAAHR5cGVfc2l6ZXNxA31xBChYBQAAAHNob3J0cQVLAlgDAAAA
|
52 |
+
aW50cQZLBFgEAAAAbG9uZ3EHSwR1dS6AAihYBwAAAHN0b3JhZ2VxAGN0b3JjaApMb25nU3RvcmFn
|
53 |
+
ZQpxAVgNAAAAMjE1OTMyNDY5NDc1MnECWAMAAABjcHVxA0sBTnRxBFEugAJdcQBYDQAAADIxNTkz
|
54 |
+
MjQ2OTQ3NTJxAWEuAQAAAAAAAAAAAAAAAAAAAA==
|
55 |
+
- 0
|
56 |
+
- !!python/tuple []
|
57 |
+
- !!python/tuple []
|
58 |
+
- false
|
59 |
+
- !!python/object/apply:collections.OrderedDict
|
60 |
+
- []
|
61 |
+
tn: !!python/object/apply:torch._utils._rebuild_tensor_v2
|
62 |
+
- !!python/object/apply:torch.storage._load_from_bytes
|
63 |
+
- !!binary |
|
64 |
+
gAKKCmz8nEb5IGqoUBkugAJN6QMugAJ9cQAoWBAAAABwcm90b2NvbF92ZXJzaW9ucQFN6QNYDQAA
|
65 |
+
AGxpdHRsZV9lbmRpYW5xAohYCgAAAHR5cGVfc2l6ZXNxA31xBChYBQAAAHNob3J0cQVLAlgDAAAA
|
66 |
+
aW50cQZLBFgEAAAAbG9uZ3EHSwR1dS6AAihYBwAAAHN0b3JhZ2VxAGN0b3JjaApMb25nU3RvcmFn
|
67 |
+
ZQpxAVgNAAAAMjE1OTMyNDY5Nzc3NnECWAMAAABjcHVxA0sBTnRxBFEugAJdcQBYDQAAADIxNTkz
|
68 |
+
MjQ2OTc3NzZxAWEuAQAAAAAAAAAAAAAAAAAAAA==
|
69 |
+
- 0
|
70 |
+
- !!python/tuple []
|
71 |
+
- !!python/tuple []
|
72 |
+
- false
|
73 |
+
- !!python/object/apply:collections.OrderedDict
|
74 |
+
- []
|
75 |
+
tp: !!python/object/apply:torch._utils._rebuild_tensor_v2
|
76 |
+
- !!python/object/apply:torch.storage._load_from_bytes
|
77 |
+
- !!binary |
|
78 |
+
gAKKCmz8nEb5IGqoUBkugAJN6QMugAJ9cQAoWBAAAABwcm90b2NvbF92ZXJzaW9ucQFN6QNYDQAA
|
79 |
+
AGxpdHRsZV9lbmRpYW5xAohYCgAAAHR5cGVfc2l6ZXNxA31xBChYBQAAAHNob3J0cQVLAlgDAAAA
|
80 |
+
aW50cQZLBFgEAAAAbG9uZ3EHSwR1dS6AAihYBwAAAHN0b3JhZ2VxAGN0b3JjaApMb25nU3RvcmFn
|
81 |
+
ZQpxAVgNAAAAMjE1OTMyNDY5ODg5NnECWAMAAABjcHVxA0sBTnRxBFEugAJdcQBYDQAAADIxNTkz
|
82 |
+
MjQ2OTg4OTZxAWEuAQAAAAAAAAAAAAAAAAAAAA==
|
83 |
+
- 0
|
84 |
+
- !!python/tuple []
|
85 |
+
- !!python/tuple []
|
86 |
+
- false
|
87 |
+
- !!python/object/apply:collections.OrderedDict
|
88 |
+
- []
|
89 |
+
_device: !!python/object/apply:torch.device
|
90 |
+
- cpu
|
91 |
+
_enable_grad: false
|
92 |
+
_forward_cache: null
|
93 |
+
_forward_hooks: !!python/object/apply:collections.OrderedDict
|
94 |
+
- []
|
95 |
+
_forward_hooks_always_called: !!python/object/apply:collections.OrderedDict
|
96 |
+
- []
|
97 |
+
_forward_hooks_with_kwargs: !!python/object/apply:collections.OrderedDict
|
98 |
+
- []
|
99 |
+
_forward_pre_hooks: !!python/object/apply:collections.OrderedDict
|
100 |
+
- []
|
101 |
+
_forward_pre_hooks_with_kwargs: !!python/object/apply:collections.OrderedDict
|
102 |
+
- []
|
103 |
+
_is_full_backward_hook: null
|
104 |
+
_is_synced: false
|
105 |
+
_load_state_dict_post_hooks: !!python/object/apply:collections.OrderedDict
|
106 |
+
- []
|
107 |
+
_load_state_dict_pre_hooks: !!python/object/apply:collections.OrderedDict
|
108 |
+
- []
|
109 |
+
_modules: !!python/object/apply:collections.OrderedDict
|
110 |
+
- []
|
111 |
+
_non_persistent_buffers_set: !!set {}
|
112 |
+
_parameters: !!python/object/apply:collections.OrderedDict
|
113 |
+
- []
|
114 |
+
_persistent:
|
115 |
+
fn: false
|
116 |
+
fp: false
|
117 |
+
tn: false
|
118 |
+
tp: false
|
119 |
+
_reductions:
|
120 |
+
fn: &id001 !!python/name:torchmetrics.utilities.data.dim_zero_sum ''
|
121 |
+
fp: *id001
|
122 |
+
tn: *id001
|
123 |
+
tp: *id001
|
124 |
+
_should_unsync: true
|
125 |
+
_state_dict_hooks: !!python/object/apply:collections.OrderedDict
|
126 |
+
- []
|
127 |
+
_state_dict_pre_hooks: !!python/object/apply:collections.OrderedDict
|
128 |
+
- []
|
129 |
+
_to_sync: true
|
130 |
+
_update_count: 0
|
131 |
+
average: micro
|
132 |
+
compute_on_cpu: false
|
133 |
+
dist_sync_fn: null
|
134 |
+
dist_sync_on_step: false
|
135 |
+
fn: !!python/object/apply:torch._utils._rebuild_tensor_v2
|
136 |
+
- !!python/object/apply:torch.storage._load_from_bytes
|
137 |
+
- !!binary |
|
138 |
+
gAKKCmz8nEb5IGqoUBkugAJN6QMugAJ9cQAoWBAAAABwcm90b2NvbF92ZXJzaW9ucQFN6QNYDQAA
|
139 |
+
AGxpdHRsZV9lbmRpYW5xAohYCgAAAHR5cGVfc2l6ZXNxA31xBChYBQAAAHNob3J0cQVLAlgDAAAA
|
140 |
+
aW50cQZLBFgEAAAAbG9uZ3EHSwR1dS6AAihYBwAAAHN0b3JhZ2VxAGN0b3JjaApMb25nU3RvcmFn
|
141 |
+
ZQpxAVgNAAAAMjE1OTMyNDY5MzUyMHECWAMAAABjcHVxA0sBTnRxBFEugAJdcQBYDQAAADIxNTkz
|
142 |
+
MjQ2OTM1MjBxAWEuAQAAAAAAAAAAAAAAAAAAAA==
|
143 |
+
- 0
|
144 |
+
- !!python/tuple []
|
145 |
+
- !!python/tuple []
|
146 |
+
- false
|
147 |
+
- !!python/object/apply:collections.OrderedDict
|
148 |
+
- []
|
149 |
+
fp: !!python/object/apply:torch._utils._rebuild_tensor_v2
|
150 |
+
- !!python/object/apply:torch.storage._load_from_bytes
|
151 |
+
- !!binary |
|
152 |
+
gAKKCmz8nEb5IGqoUBkugAJN6QMugAJ9cQAoWBAAAABwcm90b2NvbF92ZXJzaW9ucQFN6QNYDQAA
|
153 |
+
AGxpdHRsZV9lbmRpYW5xAohYCgAAAHR5cGVfc2l6ZXNxA31xBChYBQAAAHNob3J0cQVLAlgDAAAA
|
154 |
+
aW50cQZLBFgEAAAAbG9uZ3EHSwR1dS6AAihYBwAAAHN0b3JhZ2VxAGN0b3JjaApMb25nU3RvcmFn
|
155 |
+
ZQpxAVgNAAAAMjE1OTMyNDY5NTQyNHECWAMAAABjcHVxA0sBTnRxBFEugAJdcQBYDQAAADIxNTkz
|
156 |
+
MjQ2OTU0MjRxAWEuAQAAAAAAAAAAAAAAAAAAAA==
|
157 |
+
- 0
|
158 |
+
- !!python/tuple []
|
159 |
+
- !!python/tuple []
|
160 |
+
- false
|
161 |
+
- !!python/object/apply:collections.OrderedDict
|
162 |
+
- []
|
163 |
+
ignore_index: null
|
164 |
+
mdmc_reduce: null
|
165 |
+
mode: null
|
166 |
+
multiclass: null
|
167 |
+
num_classes: null
|
168 |
+
process_group: null
|
169 |
+
reduce: micro
|
170 |
+
subset_accuracy: false
|
171 |
+
sync_on_compute: true
|
172 |
+
threshold: 0.5
|
173 |
+
tn: !!python/object/apply:torch._utils._rebuild_tensor_v2
|
174 |
+
- !!python/object/apply:torch.storage._load_from_bytes
|
175 |
+
- !!binary |
|
176 |
+
gAKKCmz8nEb5IGqoUBkugAJN6QMugAJ9cQAoWBAAAABwcm90b2NvbF92ZXJzaW9ucQFN6QNYDQAA
|
177 |
+
AGxpdHRsZV9lbmRpYW5xAohYCgAAAHR5cGVfc2l6ZXNxA31xBChYBQAAAHNob3J0cQVLAlgDAAAA
|
178 |
+
aW50cQZLBFgEAAAAbG9uZ3EHSwR1dS6AAihYBwAAAHN0b3JhZ2VxAGN0b3JjaApMb25nU3RvcmFn
|
179 |
+
ZQpxAVgNAAAAMjE1OTMyNDY5Nzg4OHECWAMAAABjcHVxA0sBTnRxBFEugAJdcQBYDQAAADIxNTkz
|
180 |
+
MjQ2OTc4ODhxAWEuAQAAAAAAAAAAAAAAAAAAAA==
|
181 |
+
- 0
|
182 |
+
- !!python/tuple []
|
183 |
+
- !!python/tuple []
|
184 |
+
- false
|
185 |
+
- !!python/object/apply:collections.OrderedDict
|
186 |
+
- []
|
187 |
+
top_k: null
|
188 |
+
tp: !!python/object/apply:torch._utils._rebuild_tensor_v2
|
189 |
+
- !!python/object/apply:torch.storage._load_from_bytes
|
190 |
+
- !!binary |
|
191 |
+
gAKKCmz8nEb5IGqoUBkugAJN6QMugAJ9cQAoWBAAAABwcm90b2NvbF92ZXJzaW9ucQFN6QNYDQAA
|
192 |
+
AGxpdHRsZV9lbmRpYW5xAohYCgAAAHR5cGVfc2l6ZXNxA31xBChYBQAAAHNob3J0cQVLAlgDAAAA
|
193 |
+
aW50cQZLBFgEAAAAbG9uZ3EHSwR1dS6AAihYBwAAAHN0b3JhZ2VxAGN0b3JjaApMb25nU3RvcmFn
|
194 |
+
ZQpxAVgNAAAAMjE1OTMyNDY5Mzg1NnECWAMAAABjcHVxA0sBTnRxBFEugAJdcQBYDQAAADIxNTkz
|
195 |
+
MjQ2OTM4NTZxAWEuAQAAAAAAAAAAAAAAAAAAAA==
|
196 |
+
- 0
|
197 |
+
- !!python/tuple []
|
198 |
+
- !!python/tuple []
|
199 |
+
- false
|
200 |
+
- !!python/object/apply:collections.OrderedDict
|
201 |
+
- []
|
202 |
+
training: true
|
203 |
+
num_classes: null
|
204 |
+
optimizer: Adam
|
205 |
+
pretrained: true
|