UFM / UniCeption /scripts /download_checkpoints.py
infinity1096
initial commit
c8b42eb
raw
history blame
2.02 kB
"Download the UniCeption format checkpoints from the AirLab Data Server"
import argparse
import os
from minio import Minio
from minio.error import S3Error
from tqdm import tqdm
def main():
parser = argparse.ArgumentParser(description="Download UniCeption format checkpoints from AirLab Data Server")
parser.add_argument(
"--folders",
nargs="+",
default=["encoders", "info_sharing", "prediction_heads", "examples"],
help="List of folders to download (default: all folders). Choices: encoders, info_sharing, prediction_heads, examples",
)
parser.add_argument("--destination", type=str, default="./", help="Destination folder for downloaded checkpoints")
args = parser.parse_args()
access_key = "bT79gQYtfhpxFIitlpns"
secret_key = "g7mSvUJ5k2a9mKv9IbhwXmUQjQX52MLwulhW9ONO"
client = Minio("airlab-share-02.andrew.cmu.edu:9000", access_key=access_key, secret_key=secret_key, secure=True)
bucket_name = "uniception"
def download_folder(folder_name, bucket_name, client, destination_folder):
folder_name = f"checkpoints/{folder_name}/"
objects = client.list_objects(bucket_name, prefix=folder_name, recursive=True)
for obj in tqdm(objects, desc=f"Downloading {folder_name}"):
destination_file = os.path.join(destination_folder, obj.object_name)
if not os.path.exists(destination_file):
os.makedirs(os.path.dirname(destination_file), exist_ok=True)
try:
client.fget_object(bucket_name, obj.object_name, destination_file)
print(f"Downloaded {obj.object_name} to {destination_file}")
except S3Error as e:
print(f"Error downloading {obj.object_name}: {e}")
else:
print(f"File {destination_file} already exists. Skipping...")
for folder in args.folders:
download_folder(folder, bucket_name, client, args.destination)
if __name__ == "__main__":
main()