-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtest.py
More file actions
38 lines (33 loc) · 1.15 KB
/
Copy pathtest.py
File metadata and controls
38 lines (33 loc) · 1.15 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
from cvae import CVAE
from dataset import categories
import mlx.core as mx
import numpy as np
import matplotlib.pyplot as plt
import time
model = CVAE(latent_dim=32, max_filters=64, num_classes=len(categories))
model.load_weights(
"./model_weights_latent_32_filters_64_ft2/cvae_epoch_120.safetensors"
)
model.eval()
warmup_iterations = 2
sample_count = 5
labels = mx.random.randint(0, len(categories), (sample_count,))
print("Generating samples...")
start_time = time.time()
for _ in range(warmup_iterations + 1):
samples = model.sample(num_samples=sample_count, labels=labels)
end_time = time.time()
print(
f"Time taken to generate {sample_count} samples: {end_time - start_time:.4f} seconds"
)
print("Sample generation complete.", samples.shape)
samples = samples * 255.0
samples_np = np.array(samples, dtype=np.uint8)
fig, axes = plt.subplots(1, sample_count, figsize=(15, 3))
for i in range(sample_count):
axes[i].imshow(samples_np[i], cmap="gray")
axes[i].axis("off")
axes[i].set_title(f"Label: {labels[i].item()}, {categories[int(labels[i].item())]}")
plt.suptitle("Generated Samples from CVAE", fontsize=16)
plt.tight_layout()
plt.show()