{ "cells": [ { "cell_type": "code", "execution_count": 1, "id": "d38f0ec2", "metadata": { "execution": { "iopub.execute_input": "2026-01-14T16:31:34.792065Z", "iopub.status.busy": "2026-01-14T16:31:34.791502Z", "iopub.status.idle": "2026-01-14T16:31:34.800360Z", "shell.execute_reply": "2026-01-14T16:31:34.798868Z" } }, "outputs": [], "source": [ "import subprocess\n", "from concurrent.futures import ThreadPoolExecutor, as_completed\n", "import os" ] }, { "cell_type": "code", "execution_count": 2, "id": "ee5804bf", "metadata": { "execution": { "iopub.execute_input": "2026-01-14T16:31:34.805950Z", "iopub.status.busy": "2026-01-14T16:31:34.805393Z", "iopub.status.idle": "2026-01-14T16:31:34.817239Z", "shell.execute_reply": "2026-01-14T16:31:34.815689Z" } }, "outputs": [], "source": [ "commands = []\n", "\n", "# for itr in range(3):\n", "# for model in ['hybrid', 'T_rope', 'mamba']:\n", "# cmd = f\"python3 main.py --model {model} --train_task decode-recall --eval_task decode-recall --sequence_length 200 --eval_equence_length 200 --lr 0.0003 --epochs 1 --save False --run_number {itr}\"\n", "# cmd += \" --min_train_length 10 --max_train_length 50 --min_eval_length 10 --max_eval_length 200 --eval_jump_type linear --eval_linear_jump_size 10 --p 0.2 --eval_p 0.3\"\n", "# commands.append(cmd)\n", "\n", "# for eval_p in [0.01, 0.05, 0.1, 0.3, 0.5, 0.8, 0.9]:\n", "# for eval_p in [0.01, 0.9]:\n", "# for itr in range(3):\n", "# for model in ['hybrid', 'T_rope', 'mamba']:\n", "# cmd = f\"python3 main.py --model {model} --train_task decode-recall --eval_task decode-recall --sequence_length 200 --eval_equence_length 200 --lr 0.0003 --epochs 1 --save False --run_number {itr}\"\n", "# cmd += \" --min_train_length 10 --max_train_length 50 --min_eval_length 10 --max_eval_length 200 --eval_jump_type linear --eval_linear_jump_size 10\"\n", "# cmd += f\" --p 0.2 --eval_p {eval_p}\"\n", "# commands.append(cmd)\n", "\n", "for eval_p in [0.01, 0.05, 0.1, 0.3, 0.5, 0.8, 0.9]:\n", " for itr in range(3): # 3\n", " for model in ['hybrid', 'T_rope', 'mamba']:\n", " cmd = f\"python3 main.py --model {model} --train_task decode-recall --eval_task decode-recall --sequence_length 200 --eval_equence_length 200 --lr 0.0003 --epochs 1 --save False --run_number {itr}\"\n", " cmd += \" --min_train_length 10 --max_train_length 50 --min_eval_length 10 --max_eval_length 200 --eval_jump_type linear --eval_linear_jump_size 10\"\n", " # cmd += f\" --p 0.2 --eval_p {eval_p}\"\n", " cmd += f\" --p {eval_p} --eval_p 0.2\"\n", " commands.append(cmd)" ] }, { "cell_type": "code", "execution_count": 3, "id": "90a8b3ec", "metadata": { "execution": { "iopub.execute_input": "2026-01-14T16:31:34.821703Z", "iopub.status.busy": "2026-01-14T16:31:34.821259Z", "iopub.status.idle": "2026-01-14T16:31:34.828534Z", "shell.execute_reply": "2026-01-14T16:31:34.828184Z" } }, "outputs": [ { "data": { "text/plain": [ "['python3 main.py --model hybrid --train_task decode-recall --eval_task decode-recall --sequence_length 200 --eval_equence_length 200 --lr 0.0003 --epochs 1 --save False --run_number 0 --min_train_length 10 --max_train_length 50 --min_eval_length 10 --max_eval_length 200 --eval_jump_type linear --eval_linear_jump_size 10 --p 0.01 --eval_p 0.2',\n", " 'python3 main.py --model T_rope --train_task decode-recall --eval_task decode-recall --sequence_length 200 --eval_equence_length 200 --lr 0.0003 --epochs 1 --save False --run_number 0 --min_train_length 10 --max_train_length 50 --min_eval_length 10 --max_eval_length 200 --eval_jump_type linear --eval_linear_jump_size 10 --p 0.01 --eval_p 0.2',\n", " 'python3 main.py --model mamba --train_task decode-recall --eval_task decode-recall --sequence_length 200 --eval_equence_length 200 --lr 0.0003 --epochs 1 --save False --run_number 0 --min_train_length 10 --max_train_length 50 --min_eval_length 10 --max_eval_length 200 --eval_jump_type linear --eval_linear_jump_size 10 --p 0.01 --eval_p 0.2',\n", " 'python3 main.py --model hybrid --train_task decode-recall --eval_task decode-recall --sequence_length 200 --eval_equence_length 200 --lr 0.0003 --epochs 1 --save False --run_number 1 --min_train_length 10 --max_train_length 50 --min_eval_length 10 --max_eval_length 200 --eval_jump_type linear --eval_linear_jump_size 10 --p 0.01 --eval_p 0.2',\n", " 'python3 main.py --model T_rope --train_task decode-recall --eval_task decode-recall --sequence_length 200 --eval_equence_length 200 --lr 0.0003 --epochs 1 --save False --run_number 1 --min_train_length 10 --max_train_length 50 --min_eval_length 10 --max_eval_length 200 --eval_jump_type linear --eval_linear_jump_size 10 --p 0.01 --eval_p 0.2',\n", " 'python3 main.py --model mamba --train_task decode-recall --eval_task decode-recall --sequence_length 200 --eval_equence_length 200 --lr 0.0003 --epochs 1 --save False --run_number 1 --min_train_length 10 --max_train_length 50 --min_eval_length 10 --max_eval_length 200 --eval_jump_type linear --eval_linear_jump_size 10 --p 0.01 --eval_p 0.2',\n", " 'python3 main.py --model hybrid --train_task decode-recall --eval_task decode-recall --sequence_length 200 --eval_equence_length 200 --lr 0.0003 --epochs 1 --save False --run_number 2 --min_train_length 10 --max_train_length 50 --min_eval_length 10 --max_eval_length 200 --eval_jump_type linear --eval_linear_jump_size 10 --p 0.01 --eval_p 0.2',\n", " 'python3 main.py --model T_rope --train_task decode-recall --eval_task decode-recall --sequence_length 200 --eval_equence_length 200 --lr 0.0003 --epochs 1 --save False --run_number 2 --min_train_length 10 --max_train_length 50 --min_eval_length 10 --max_eval_length 200 --eval_jump_type linear --eval_linear_jump_size 10 --p 0.01 --eval_p 0.2',\n", " 'python3 main.py --model mamba --train_task decode-recall --eval_task decode-recall --sequence_length 200 --eval_equence_length 200 --lr 0.0003 --epochs 1 --save False --run_number 2 --min_train_length 10 --max_train_length 50 --min_eval_length 10 --max_eval_length 200 --eval_jump_type linear --eval_linear_jump_size 10 --p 0.01 --eval_p 0.2',\n", " 'python3 main.py --model hybrid --train_task decode-recall --eval_task decode-recall --sequence_length 200 --eval_equence_length 200 --lr 0.0003 --epochs 1 --save False --run_number 0 --min_train_length 10 --max_train_length 50 --min_eval_length 10 --max_eval_length 200 --eval_jump_type linear --eval_linear_jump_size 10 --p 0.05 --eval_p 0.2']" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "commands[:10]" ] }, { "cell_type": "code", "execution_count": 4, "id": "f32ed2ee", "metadata": { "execution": { "iopub.execute_input": "2026-01-14T16:31:34.829909Z", "iopub.status.busy": "2026-01-14T16:31:34.829478Z", "iopub.status.idle": "2026-01-14T19:09:41.606354Z", "shell.execute_reply": "2026-01-14T19:09:41.606004Z" } }, "outputs": [], "source": [ "def run_command(cmd):\n", " \"\"\"Run a single shell command and return (cmd, returncode, stdout, stderr).\"\"\"\n", " result = subprocess.run(cmd, shell=True, capture_output=True, text=True)\n", " return cmd, result.returncode, result.stdout, result.stderr\n", "\n", "max_workers = 1 # 5\n", "\n", "results = \"\"\n", "\n", "with ThreadPoolExecutor(max_workers=max_workers) as executor:\n", " futures = {executor.submit(run_command, cmd): cmd for cmd in commands}\n", "\n", " for future in as_completed(futures):\n", " cmd, returncode, stdout, stderr = future.result()\n", "\n", " if returncode != 0:\n", " print(f\"[{cmd}] exited with {returncode}\")\n", " \n", " if returncode == 1:\n", " executor.shutdown()\n", " print(stdout)\n", " print(stderr)\n", " assert False\n", "\n", " results += \"Command: \" + cmd + \"\\n\" + stdout + \"\\n\"\n", "\n", "with open(\"results/exp.txt\", \"w\") as outfile:\n", " outfile.write(results)" ] } ], "metadata": { "kernelspec": { "display_name": "hybrid", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.12.11" } }, "nbformat": 4, "nbformat_minor": 5 }