|
|
|
|
|
""" |
|
|
FlowAMP Usage Example |
|
|
This script demonstrates how to use the FlowAMP model for AMP generation. |
|
|
Note: This is a demonstration version. For full functionality, you'll need to train the model. |
|
|
""" |
|
|
|
|
|
import torch |
|
|
from final_flow_model import AMPFlowMatcherCFGConcat |
|
|
|
|
|
def main(): |
|
|
print("=== FlowAMP Usage Example ===") |
|
|
print("This demonstrates the model architecture and usage.") |
|
|
|
|
|
if torch.cuda.is_available(): |
|
|
device = torch.device("cuda") |
|
|
print("Using CUDA") |
|
|
else: |
|
|
device = torch.device("cpu") |
|
|
print("Using CPU") |
|
|
|
|
|
|
|
|
model = AMPFlowMatcherCFGConcat( |
|
|
hidden_dim=480, |
|
|
compressed_dim=80, |
|
|
n_layers=4, |
|
|
n_heads=8, |
|
|
dim_ff=1920, |
|
|
dropout=0.1, |
|
|
max_seq_len=25, |
|
|
use_cfg=True |
|
|
).to(device) |
|
|
|
|
|
print("Model initialized successfully!") |
|
|
print(f"Model parameters: {sum(p.numel() for p in model.parameters()):,}") |
|
|
|
|
|
|
|
|
batch_size = 2 |
|
|
seq_len = 25 |
|
|
compressed_dim = 80 |
|
|
|
|
|
|
|
|
x = torch.randn(batch_size, seq_len, compressed_dim).to(device) |
|
|
time_steps = torch.rand(batch_size, 1).to(device) |
|
|
|
|
|
|
|
|
with torch.no_grad(): |
|
|
output = model(x, time_steps) |
|
|
|
|
|
print(f"Input shape: {x.shape}") |
|
|
print(f"Output shape: {output.shape}") |
|
|
print("✓ Model forward pass successful!") |
|
|
|
|
|
print("\nTo use this model for AMP generation:") |
|
|
print("1. Train the model using the provided training scripts") |
|
|
print("2. Use generate_amps.py for peptide generation") |
|
|
print("3. Use test_generated_peptides.py for evaluation") |
|
|
|
|
|
if __name__ == "__main__": |
|
|
main() |
|
|
|