Ali Mohsin commited on
Commit
72af8c3
Β·
1 Parent(s): 7669ee7

folder reorganise

Browse files
app.py CHANGED
@@ -152,7 +152,7 @@ def download_all_files():
152
  def get_training_status():
153
  """Get current training status from the monitor."""
154
  try:
155
- from training_monitor import create_monitor
156
  monitor = create_monitor()
157
  status = monitor.get_status()
158
  return status if status else {"status": "no-training"}
@@ -1092,7 +1092,7 @@ def start_training_advanced(
1092
  dataset_args = ["--max_samples", dataset_size]
1093
 
1094
  resnet_cmd = [
1095
- "python", "train_resnet.py",
1096
  "--data_root", DATASET_ROOT,
1097
  "--epochs", str(resnet_epochs),
1098
  "--batch_size", str(resnet_batch_size),
@@ -1137,7 +1137,7 @@ def start_training_advanced(
1137
  log_message += f"Optimizer: {vit_optimizer}, Triplet Margin: {vit_triplet_margin}\n"
1138
 
1139
  vit_cmd = [
1140
- "python", "train_vit_triplet.py",
1141
  "--data_root", DATASET_ROOT,
1142
  "--epochs", str(vit_epochs),
1143
  "--batch_size", str(vit_batch_size),
@@ -1225,7 +1225,7 @@ def start_training_simple(dataset_size: str, res_epochs: int, vit_epochs: int):
1225
  # Train ResNet first and wait for completion
1226
  log_message += f"\nπŸš€ Starting ResNet training on {dataset_size} samples...\n"
1227
  resnet_result = subprocess.run([
1228
- "python", "train_resnet.py", "--data_root", DATASET_ROOT, "--epochs", str(res_epochs),
1229
  "--batch_size", "4", "--lr", "1e-3", "--early_stopping_patience", "3",
1230
  "--out", os.path.join(export_dir, "resnet_item_embedder.pth")
1231
  ] + dataset_args, capture_output=True, text=True, check=False)
@@ -1252,7 +1252,7 @@ def start_training_simple(dataset_size: str, res_epochs: int, vit_epochs: int):
1252
 
1253
  log_message += f"\nπŸš€ Starting ViT training on {dataset_size} samples...\n"
1254
  vit_result = subprocess.run([
1255
- "python", "train_vit_triplet.py", "--data_root", DATASET_ROOT, "--epochs", str(vit_epochs),
1256
  "--batch_size", "4", "--lr", "5e-4", "--early_stopping_patience", "5",
1257
  "--max_samples", "5000", "--triplet_margin", "0.5", "--gradient_clip", "1.0",
1258
  "--warmup_epochs", "2", "--export", os.path.join(export_dir, "vit_outfit_model.pth")
 
152
  def get_training_status():
153
  """Get current training status from the monitor."""
154
  try:
155
+ from ui.monitor import create_monitor
156
  monitor = create_monitor()
157
  status = monitor.get_status()
158
  return status if status else {"status": "no-training"}
 
1092
  dataset_args = ["--max_samples", dataset_size]
1093
 
1094
  resnet_cmd = [
1095
+ "python", "training/train_resnet.py",
1096
  "--data_root", DATASET_ROOT,
1097
  "--epochs", str(resnet_epochs),
1098
  "--batch_size", str(resnet_batch_size),
 
1137
  log_message += f"Optimizer: {vit_optimizer}, Triplet Margin: {vit_triplet_margin}\n"
1138
 
1139
  vit_cmd = [
1140
+ "python", "training/train_vit.py",
1141
  "--data_root", DATASET_ROOT,
1142
  "--epochs", str(vit_epochs),
1143
  "--batch_size", str(vit_batch_size),
 
1225
  # Train ResNet first and wait for completion
1226
  log_message += f"\nπŸš€ Starting ResNet training on {dataset_size} samples...\n"
1227
  resnet_result = subprocess.run([
1228
+ "python", "training/train_resnet.py", "--data_root", DATASET_ROOT, "--epochs", str(res_epochs),
1229
  "--batch_size", "4", "--lr", "1e-3", "--early_stopping_patience", "3",
1230
  "--out", os.path.join(export_dir, "resnet_item_embedder.pth")
1231
  ] + dataset_args, capture_output=True, text=True, check=False)
 
1252
 
1253
  log_message += f"\nπŸš€ Starting ViT training on {dataset_size} samples...\n"
1254
  vit_result = subprocess.run([
1255
+ "python", "training/train_vit.py", "--data_root", DATASET_ROOT, "--epochs", str(vit_epochs),
1256
  "--batch_size", "4", "--lr", "5e-4", "--early_stopping_patience", "5",
1257
  "--max_samples", "5000", "--triplet_margin", "0.5", "--gradient_clip", "1.0",
1258
  "--warmup_epochs", "2", "--export", os.path.join(export_dir, "vit_outfit_model.pth")
RECOMMENDATION_PIPELINE_EXPLAINED.md β†’ docs/PIPELINE.md RENAMED
File without changes
TRAINING_PARAMETERS.md β†’ docs/TRAINING.md RENAMED
File without changes
setup_hf.sh β†’ scripts/setup_hf.sh RENAMED
File without changes
startup_fix.py β†’ scripts/startup_fix.py RENAMED
File without changes
training/__init__.py ADDED
File without changes
integrate_advanced_training.py β†’ training/integrate.py RENAMED
@@ -5,7 +5,13 @@ Shows how to add comprehensive parameter controls to the main Gradio app
5
  """
6
 
7
  import gradio as gr
8
- from advanced_training_ui import create_advanced_training_interface, start_advanced_training, start_simple_training
 
 
 
 
 
 
9
 
10
 
11
  def create_enhanced_app():
 
5
  """
6
 
7
  import gradio as gr
8
+ import sys
9
+ import os
10
+
11
+ # Add parent directory to path to find ui module
12
+ sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
13
+
14
+ from ui.advanced_training import create_advanced_training_interface, start_advanced_training, start_simple_training
15
 
16
 
17
  def create_enhanced_app():
test_training.py β†’ training/test_training.py RENAMED
@@ -8,38 +8,18 @@ import os
8
  import sys
9
  import torch
10
 
 
 
 
 
 
 
 
 
11
  def test_imports():
12
  """Test if all required modules can be imported."""
13
  print("πŸ” Testing imports...")
14
-
15
- try:
16
- from models.resnet_embedder import ResNetItemEmbedder
17
- print("βœ… ResNet embedder imported successfully")
18
- except Exception as e:
19
- print(f"❌ Failed to import ResNet embedder: {e}")
20
- return False
21
-
22
- try:
23
- from models.vit_outfit import OutfitCompatibilityModel
24
- print("βœ… ViT outfit model imported successfully")
25
- except Exception as e:
26
- print(f"❌ Failed to import ViT outfit model: {e}")
27
- return False
28
-
29
- try:
30
- from data.polyvore import PolyvoreTripletDataset
31
- print("βœ… Polyvore dataset imported successfully")
32
- except Exception as e:
33
- print(f"❌ Failed to import Polyvore dataset: {e}")
34
- return False
35
-
36
- try:
37
- from utils.transforms import build_train_transforms
38
- print("βœ… Transforms imported successfully")
39
- except Exception as e:
40
- print(f"❌ Failed to import transforms: {e}")
41
- return False
42
-
43
  return True
44
 
45
  def test_models():
 
8
  import sys
9
  import torch
10
 
11
+ # Add parent directory to path to find models, data, utils
12
+ sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
13
+
14
+ from data.polyvore import PolyvoreTripletDataset
15
+ from models.resnet_embedder import ResNetItemEmbedder
16
+ from models.vit_outfit import OutfitCompatibilityModel
17
+ from utils.transforms import build_train_transforms
18
+
19
  def test_imports():
20
  """Test if all required modules can be imported."""
21
  print("πŸ” Testing imports...")
22
+ print("βœ… All modules imported successfully at top level")
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
23
  return True
24
 
25
  def test_models():
train_resnet.py β†’ training/train_resnet.py RENAMED
@@ -9,7 +9,7 @@ import torch.optim as optim
9
  from torch.utils.data import DataLoader
10
 
11
  # Fix import paths
12
- sys.path.append(os.path.dirname(os.path.abspath(__file__)))
13
 
14
  from data.polyvore import PolyvoreTripletDataset
15
  from models.resnet_embedder import ResNetItemEmbedder
@@ -51,7 +51,7 @@ def main() -> None:
51
  os.makedirs(splits_dir, exist_ok=True)
52
  try:
53
  # Try to import and run the prepare script
54
- sys.path.append(os.path.join(os.path.dirname(__file__), "scripts"))
55
  from prepare_polyvore import main as prepare_main
56
  print("βœ… Successfully imported prepare_polyvore")
57
 
 
9
  from torch.utils.data import DataLoader
10
 
11
  # Fix import paths
12
+ sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
13
 
14
  from data.polyvore import PolyvoreTripletDataset
15
  from models.resnet_embedder import ResNetItemEmbedder
 
51
  os.makedirs(splits_dir, exist_ok=True)
52
  try:
53
  # Try to import and run the prepare script
54
+ sys.path.append(os.path.join(os.path.dirname(os.path.dirname(__file__)), "scripts"))
55
  from prepare_polyvore import main as prepare_main
56
  print("βœ… Successfully imported prepare_polyvore")
57
 
train_vit_triplet.py β†’ training/train_vit.py RENAMED
@@ -9,7 +9,7 @@ import torch.optim as optim
9
  from torch.utils.data import DataLoader
10
 
11
  # Fix import paths
12
- sys.path.append(os.path.dirname(os.path.abspath(__file__)))
13
 
14
  from data.polyvore import PolyvoreOutfitTripletDataset
15
  from models.vit_outfit import OutfitCompatibilityModel
@@ -70,7 +70,7 @@ def main() -> None:
70
  os.makedirs(splits_dir, exist_ok=True)
71
  try:
72
  # Try to import and run the prepare script
73
- sys.path.append(os.path.join(os.path.dirname(__file__), "scripts"))
74
  from prepare_polyvore import main as prepare_main
75
  print("βœ… Successfully imported prepare_polyvore")
76
 
 
9
  from torch.utils.data import DataLoader
10
 
11
  # Fix import paths
12
+ sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
13
 
14
  from data.polyvore import PolyvoreOutfitTripletDataset
15
  from models.vit_outfit import OutfitCompatibilityModel
 
70
  os.makedirs(splits_dir, exist_ok=True)
71
  try:
72
  # Try to import and run the prepare script
73
+ sys.path.append(os.path.join(os.path.dirname(os.path.dirname(__file__)), "scripts"))
74
  from prepare_polyvore import main as prepare_main
75
  print("βœ… Successfully imported prepare_polyvore")
76
 
ui/__init__.py ADDED
File without changes
advanced_training_ui.py β†’ ui/advanced_training.py RENAMED
@@ -259,7 +259,7 @@ def start_advanced_training(
259
  train_log.value += f"Optimizer: {resnet_optimizer}, Triplet Margin: {resnet_triplet_margin}\n"
260
 
261
  resnet_cmd = [
262
- "python", "train_resnet.py",
263
  "--data_root", dataset_root,
264
  "--epochs", str(resnet_epochs),
265
  "--batch_size", str(resnet_batch_size),
@@ -288,7 +288,7 @@ def start_advanced_training(
288
  train_log.value += f"Optimizer: {vit_optimizer}, Triplet Margin: {vit_triplet_margin}\n"
289
 
290
  vit_cmd = [
291
- "python", "train_vit_triplet.py",
292
  "--data_root", dataset_root,
293
  "--epochs", str(vit_epochs),
294
  "--batch_size", str(vit_batch_size),
@@ -333,12 +333,12 @@ def start_simple_training(res_epochs: int, vit_epochs: int, dataset_root: str =
333
  os.makedirs(export_dir, exist_ok=True)
334
  train_log.value = "Training ResNet…\n"
335
  subprocess.run([
336
- "python", "train_resnet.py", "--data_root", dataset_root, "--epochs", str(res_epochs),
337
  "--out", os.path.join(export_dir, "resnet_item_embedder.pth")
338
  ], check=False)
339
  train_log.value += "\nTraining ViT (triplet)…\n"
340
  subprocess.run([
341
- "python", "train_vit_triplet.py", "--data_root", dataset_root, "--epochs", str(vit_epochs),
342
  "--export", os.path.join(export_dir, "vit_outfit_model.pth")
343
  ], check=False)
344
  train_log.value += "\nDone. Artifacts in models/exports."
 
259
  train_log.value += f"Optimizer: {resnet_optimizer}, Triplet Margin: {resnet_triplet_margin}\n"
260
 
261
  resnet_cmd = [
262
+ "python", "training/train_resnet.py",
263
  "--data_root", dataset_root,
264
  "--epochs", str(resnet_epochs),
265
  "--batch_size", str(resnet_batch_size),
 
288
  train_log.value += f"Optimizer: {vit_optimizer}, Triplet Margin: {vit_triplet_margin}\n"
289
 
290
  vit_cmd = [
291
+ "python", "training/train_vit.py",
292
  "--data_root", dataset_root,
293
  "--epochs", str(vit_epochs),
294
  "--batch_size", str(vit_batch_size),
 
333
  os.makedirs(export_dir, exist_ok=True)
334
  train_log.value = "Training ResNet…\n"
335
  subprocess.run([
336
+ "python", "training/train_resnet.py", "--data_root", dataset_root, "--epochs", str(res_epochs),
337
  "--out", os.path.join(export_dir, "resnet_item_embedder.pth")
338
  ], check=False)
339
  train_log.value += "\nTraining ViT (triplet)…\n"
340
  subprocess.run([
341
+ "python", "training/train_vit.py", "--data_root", dataset_root, "--epochs", str(vit_epochs),
342
  "--export", os.path.join(export_dir, "vit_outfit_model.pth")
343
  ], check=False)
344
  train_log.value += "\nDone. Artifacts in models/exports."
artifact_management_ui.py β†’ ui/artifact_management.py RENAMED
@@ -6,8 +6,13 @@ Provides download, upload, and organization features for all system artifacts.
6
 
7
  import os
8
  import json
 
9
  import gradio as gr
10
  from typing import Dict, List, Any
 
 
 
 
11
  from utils.artifact_manager import create_artifact_manager
12
 
13
  def create_artifact_management_interface():
 
6
 
7
  import os
8
  import json
9
+ import sys
10
  import gradio as gr
11
  from typing import Dict, List, Any
12
+
13
+ # Add parent directory to path to find utils
14
+ sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
15
+
16
  from utils.artifact_manager import create_artifact_manager
17
 
18
  def create_artifact_management_interface():
training_monitor.py β†’ ui/monitor.py RENAMED
File without changes