diff --git a/Lukes_folder/Lars_hsp90.zip b/Lukes_folder/Lars_hsp90.zip deleted file mode 100644 index dc31fac..0000000 Binary files a/Lukes_folder/Lars_hsp90.zip and /dev/null differ diff --git a/Lukes_folder/Lars_hsp90/hsp90_posterior b/Lukes_folder/Lars_hsp90/hsp90_posterior deleted file mode 100644 index f5a9c2e..0000000 Binary files a/Lukes_folder/Lars_hsp90/hsp90_posterior and /dev/null differ diff --git a/Lukes_folder/MMD_testing.ipynb b/Lukes_folder/MMD_testing.ipynb index 5164640..cccdf28 100644 --- a/Lukes_folder/MMD_testing.ipynb +++ b/Lukes_folder/MMD_testing.ipynb @@ -89,7 +89,7 @@ "source": [ "train_config = json.load(open(\"Lars_hsp90/resnet18_encoder.json\"))\n", "estimator = build_models.build_npe_flow_model(train_config)\n", - "estimator.load_state_dict(torch.load(\"Lars_hsp90/hsp90_posterior_alt.estimator\"))\n", + "estimator.load_state_dict(torch.load(\"Lars_hsp90/hsp90_posterior.estimator\"))\n", "estimator.cuda()\n", "estimator.eval();\n" ] diff --git a/Lukes_folder/cryoBIFE_test.ipynb b/Lukes_folder/cryoBIFE_test.ipynb new file mode 100644 index 0000000..cbaccfa --- /dev/null +++ b/Lukes_folder/cryoBIFE_test.ipynb @@ -0,0 +1,274 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Plotting the hsp90 free energy profile and prob dist. in CMA degree of freedom from figure 2A of Cryo-Bife paper\n", + "\n", + "Mixture of Gaussians with \n", + "\n", + "weight1: 1\n", + "mean1: \n", + "var1:\n", + "\n", + "weight2: 1\n", + "mean2: \n", + "var2:\n", + "\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "# defined in appendix of Cryo-BIFE paper for HSP90\n", + "def P(s):\n", + " return np.exp(-(19*s - 6)**2 / 8.) + np.exp(-(19*s - 15)**2 / 18)/3" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "s_vals = np.linspace(0, 1, 20)\n", + "P_vals = np.zeros_like(s_vals)\n", + "for idx in range(s_vals.shape[0]):\n", + " P_vals[idx] = P(s_vals[idx])" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Text(0, 0.5, '$\\\\beta F(\\\\theta)$')" + ] + }, + "execution_count": 20, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plt.figure()\n", + "plt.title(\"PDF in CMA angle\")\n", + "plt.plot(np.arange(0, 20, 1), P_vals)\n", + "plt.xlabel(r\"$\\theta$\")\n", + "plt.ylabel(r\"$P(\\theta)$\")\n", + "\n", + "plt.figure()\n", + "plt.title(\"Free Energy in CMA Angle(incorrect kbT)\")\n", + "plt.plot(np.arange(0, 20, 1), -np.log(P_vals))\n", + "plt.xlabel(r\"$\\theta$\")\n", + "plt.ylabel(r\"$\\beta F(\\theta)$\")\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Attempting to sample from $P(\\theta)$ in STAN, mainly to familiarize with STAN..." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "import stan\n", + "sample_code = \"\"\"\n", + "parameters {\n", + " real s;\n", + "}\n", + "model {\n", + " target += log(exp(-(19*s - 6)^2 / 8) + exp(-(19*s - 15)^2/18)/3);\n", + "}\n", + "\"\"\"" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Building...\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\n", + "Building: found in cache, done.Sampling: 0%\n", + "Sampling: 100%, done.\n", + "Messages received during sampling:\n", + " Gradient evaluation took 2.2e-05 seconds\n", + " 1000 transitions using 10 leapfrog steps per transition would take 0.22 seconds.\n", + " Adjust your expectations accordingly!\n", + " Gradient evaluation took 2.2e-05 seconds\n", + " 1000 transitions using 10 leapfrog steps per transition would take 0.22 seconds.\n", + " Adjust your expectations accordingly!\n", + " Gradient evaluation took 2.4e-05 seconds\n", + " 1000 transitions using 10 leapfrog steps per transition would take 0.24 seconds.\n", + " Adjust your expectations accordingly!\n", + " Gradient evaluation took 2.1e-05 seconds\n", + " 1000 transitions using 10 leapfrog steps per transition would take 0.21 seconds.\n", + " Adjust your expectations accordingly!\n", + " Gradient evaluation took 2.1e-05 seconds\n", + " 1000 transitions using 10 leapfrog steps per transition would take 0.21 seconds.\n", + " Adjust your expectations accordingly!\n" + ] + } + ], + "source": [ + "import nest_asyncio\n", + "nest_asyncio.apply()\n", + "\n", + "prior = stan.build(sample_code, random_seed=1)\n", + "fit = prior.sample(num_chains=5, num_samples=2000)" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "(10000,)\n" + ] + } + ], + "source": [ + "s = fit[\"s\"].flatten()\n", + "print(type(s))\n", + "print(s.shape)" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Text(0.5, 0, '$\\\\theta$')" + ] + }, + "execution_count": 27, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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Li7WpUuXmhxTV1enmpoatw0AAAQmr8OIMUYZGRl68MEH1b9//2v2q6ysVExMjFtbTEyMLl++rKqqqibH5OTkKCoqyrXFx8d7WyYAAGjjvA4j06dP12effaa33377un0dDofbvjGmyfarsrOzVV1d7drKy8u9LRMAALRxXj2bZsaMGdq2bZsKCwsVFxfXbN/u3bursrLSre3MmTMKDg5Wly5dmhwTGhqq0NBQb0oDAAB+xqOVEWOMpk+frs2bN+sf//iHEhISrjsmNTVV+fn5bm07duxQSkqKQkJCPKsWAAAEHI/CyLRp07R+/Xpt3LhRERERqqysVGVlpS5evOjqk52drcmTJ7v209PTdeLECWVkZOjQoUNavXq1Vq1apczMzJv3KQAAgN/yKIwsX75c1dXVGjFihJxOp2vbtGmTq09FRYXKyspc+wkJCcrLy9OuXbt0zz336JVXXtGSJUv4Wi8AAJDk4T0jV288bc7atWsbtQ0fPlyffvqpJ28FAABuETybBgAAWEUYAQAAVhFGAACAVYQRAABgFWEEAABYRRgBAABWEUYAAIBVhBEAAGAVYQQAAFhFGAEAAFYRRgAAgFWEEQAAYJVHD8oDbkSvrO22SwAAtEGsjAAAAKsIIwAAwCrCCAAAsIowAgAArCKMAAAAqwgjAADAKsIIAACwijACAACsIowAAACrCCMAAMAqwggAALCKMAIAAKwijAAAAKsIIwAAwCrCCAAAsIowAgAArCKMAAAAqwgjAADAKsIIAACwijACAACsIowAAACrCCMAAMAqwggAALCKMAIAAKwijAAAAKuCbRcA4ObqlbXdJ8c9vmCcT44LAKyMAAAAqwgjAADAKsIIAACwijACAACsIowAAACrCCMAAMAqwggAALCKMAIAAKwijAAAAKsIIwAAwCrCCAAAsIowAgAArCKMAAAAqzwOI4WFhRo/frxiY2PlcDi0devWZvvv2rVLDoej0Xb48GFvawYAAAEk2NMBFy5c0IABA/TUU09p4sSJLR535MgRRUZGuva7devm6VsDAIAA5HEYGTNmjMaMGePxG0VHR6tTp04ejwMAAIGt1e4ZGThwoJxOp0aNGqWdO3c227eurk41NTVuGwAACEw+DyNOp1MrV65Ubm6uNm/erMTERI0aNUqFhYXXHJOTk6OoqCjXFh8f7+syAQCAJQ5jjPF6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GJ7O8x/+8AfTu3dvt7YlS5aYuLg4n9UYaFoSRmycDwPyMk19fb327duntLQ0t/a0tDR99NFHTY7Zs2dPo/6jR49WcXGxLl265LNa/Z03c/2/GhoaVFtbq86dO/uixIDg7TyvWbNGX331lV588UVflxgwvJnrbdu2KSUlRa+++qruuOMO3XnnncrMzNTFixdbo2S/5M08DxkyRCdPnlReXp6MMfr3v/+td999V+PGjWuNkm8ZNs6HXj21t62rqqrSlStXGj28LyYmptFD+66qrKxssv/ly5dVVVUlp9Pps3r9mTdz/b9ee+01XbhwQT//+c99UWJA8Gaejx49qqysLBUVFSk4OCD/qvuEN3N97Ngx7d69W2FhYdqyZYuqqqr07LPP6ty5c9w3cg3ezPOQIUO0YcMGTZo0Sd99950uX76sRx55RG+88UZrlHzLsHE+DMiVkascDofbvjGmUdv1+jfVjsY8neur3n77bb300kvatGmToqOjfVVewGjpPF+5ckWPP/645s+frzvvvLO1ygsonvyZbmhokMPh0IYNGzRo0CCNHTtWixYt0tq1a1kduQ5P5vngwYOaOXOmfvvb32rfvn16//33VVpa6no2Gm6e1j4fBuQ/l7p27aqgoKBG6frMmTON0t5V3bt3b7J/cHCwunTp4rNa/Z03c33Vpk2b9PTTT+udd97RQw895Msy/Z6n81xbW6vi4mKVlJRo+vTpkr4/YRpjFBwcrB07dugnP/lJq9Tub7z5M+10OnXHHXe4PSo9KSlJxhidPHlSffr08WnN/sibec7JydEDDzyg3/zmN5Kku+++Wx07dtTQoUP1u9/9jhXsm8TG+TAgV0bat2+v5ORk5efnu7Xn5+dryJAhTY5JTU1t1H/Hjh1KSUlRSEiIz2r1d97MtfT9isjUqVO1ceNGrve2gKfzHBkZqc8//1z79+93benp6UpMTNT+/ft1//33t1bpfsebP9MPPPCATp8+rfPnz7vavvjiC7Vr105xcXE+rddfeTPP3377rdq1cz9tBQUFSfrvv9xx46ycD312a6xlV78ytmrVKnPw4EEze/Zs07FjR3P8+HFjjDFZWVnmySefdPW/+lWmOXPmmIMHD5pVq1bx1d4W8nSuN27caIKDg83SpUtNRUWFa/vmm29sfQS/4Ok8/y++TdNyns51bW2tiYuLMz/72c/Mv/71L1NQUGD69OljnnnmGVsfwS94Os9r1qwxwcHBZtmyZearr74yu3fvNikpKWbQoEG2PoJfqK2tNSUlJaakpMRIMosWLTIlJSWur1C3hfNhwIYRY4xZunSp6dmzp2nfvr259957TUFBgeu1KVOmmOHDh7v137Vrlxk4cKBp37696dWrl1m+fHkrV+y/PJnr4cOHG0mNtilTprR+4X7G0z/TP0QY8Yync33o0CHz0EMPmfDwcBMXF2cyMjLMt99+28pV+x9P53nJkiWmb9++Jjw83DidTvPEE0+YkydPtnLV/mXnzp3N/je3LZwPHcawtgUAAOwJyHtGAACA/yCMAAAAqwgjAADAKsIIAACwijACAACsIowAAACrCCMAAMAqwggAALCKMALgphoxYoRmz57t0ZipU6dqwoQJN/zeDodDW7duveHjAGhdAfnUXgC+t2vXLo0cOVJff/21OnXqdEPHev3113nQGXALI4wAsC4qKsp2CQAs4jINcAsaMWKEpk+frunTp6tTp07q0qWLXnjhBbfVifXr1yslJUURERHq3r27Hn/8cZ05c0aSdPz4cY0cOVKSdPvtt8vhcGjq1KmusQ0NDXruuefUuXNnde/eXS+99FKz9fzvZZoRI0Zo5syZzR7j6NGjGjZsmMLCwtS3b99GjzyXpFOnTmnSpEm6/fbb1aVLFz366KM6fvy4JOnw4cPq0KGDNm7c6Oq/efNmhYWF6fPPP2/BLAK4WQgjwC3qz3/+s4KDg/Xxxx9ryZIl+uMf/6i33nrL9Xp9fb1eeeUVHThwQFu3blVpaakrcMTHxys3N1eSdOTIEVVUVOj11193O3bHjh318ccf69VXX9XLL7/cZFi4Xn3XOkZDQ4Mee+wxBQUFae/evVqxYoXmzp3rNv7bb7/VyJEjddttt6mwsFC7d+/Wbbfdpp/+9Keqr6/XXXfdpYULF+rZZ5/ViRMndPr0af3yl7/UggUL9OMf/9ibKQXgLZ8+ExhAmzR8+HCTlJRkGhoaXG1z5841SUlJ1xzzySefGEmmtrbWGPPfx5J//fXXjY794IMPurXdd999Zu7cudc89pQpU8yjjz7a4mN88MEHJigoyJSXl7tef++994wks2XLFmOMMatWrTKJiYlun7Gurs6Eh4ebDz74wNU2btw4M3ToUDNq1Cjz8MMPu/UH0Dq4ZwS4RQ0ePFgOh8O1n5qaqtdee01XrlxRUFCQSkpK9NJLL2n//v06d+6cGhoaJEllZWXq27dvs8e+++673fadTqfrEk9LNXeMQ4cOqUePHoqLi3Or/4f27dunL7/8UhEREW7t3333nb766ivX/urVq3XnnXeqXbt2+uc//+k2JwBaB2EEQCMXLlxQWlqa0tLStH79enXr1k1lZWUaPXq06uvrrzs+JCTEbd/hcLjCTEs1dwzTxDdv/jdENDQ0KDk5WRs2bGjUt1u3bq7/feDAAV24cEHt2rVTZWWlYmNjPaoTwI0jjAC3qL179zba79Onj4KCgnT48GFVVVVpwYIFio+PlyQVFxe79W/fvr0k6cqVK61T8A/07dtXZWVlOn36tCs87Nmzx63Pvffeq02bNik6OlqRkZFNHufcuXOaOnWq5s2bp8rKSj3xxBP69NNPFR4e7vPPAOC/uIEVuEWVl5crIyNDR44c0dtvv6033nhDs2bNkiT16NFD7du31xtvvKFjx45p27ZteuWVV9zG9+zZUw6HQ3//+9/1n//8R+fPn2+12h966CElJiZq8uTJOnDggIqKijRv3jy3Pk888YS6du2qRx99VEVFRSotLVVBQYFmzZqlkydPSpLS09MVHx+vF154QYsWLZIxRpmZma32OQB8jzAC3KImT56sixcvatCgQZo2bZpmzJihX/3qV5K+v4yxdu1avfPOO+rbt68WLFighQsXuo2/4447NH/+fGVlZSkmJkbTp09vtdrbtWunLVu2qK6uToMGDdIzzzyj3//+9259OnTooMLCQvXo0UOPPfaYkpKS9Itf/EIXL15UZGSk1q1bp7y8PP3lL39RcHCwOnTooA0bNuitt95SXl5eq30WAJLDNHXxFUBAGzFihO655x4tXrzYdikAwMoIAACwizACAACs4jINAACwipURAABgFWEEAABYRRgBAABWEUYAAIBVhBEAAGAVYQQAAFhFGAEAAFYRRgAAgFX/D9s763pvbbG+AAAAAElFTkSuQmCC", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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ks1mk81m8xm76qqrBruUoEVHR4/qH5hzjaX1stbRayytl7WOXmNhvQPtrJwV1LuEoqKi5HQ6VVVV5TNeVVWljIyMgHPS09P96nfv3q20tDRFRkYOWNPfMQEAwNgS9EtCBQUFysnJUVpamtLT07Vp0yY1NzcrNzdX0pmXao4fP66tW7dKOvOOoPXr16ugoECPP/64amtrVVZW5vPun8WLF+vWW2/VCy+8oPvuu0+/+tWvtGfPHr333nsXaZkAACCUBR1YsrOz1dnZqVWrVqm1tVWpqamqrKxUUlKSJKm1tdXnnizJycmqrKxUfn6+NmzYoISEBK1bt04LFizw1mRkZGj79u1avny5VqxYoalTp6q8vFyzZ8++CEu8MDabTStXrvR7+Wm0GkvrZa2j11haL2sdvcbaes8n6PuwAAAAXGp8lhAAADAegQUAABiPwAIAAIxHYAEAAMYjsEgqKSlRcnKy7Ha7nE6nqqurB6zfv3+/nE6n7Ha7pkyZoo0bN16iTi9McXGxvvOd7+jKK6/UNddco/nz5+vIkSMDztm3b5/CwsL8Hp988skl6nponnnmGb+e4+LiBpwTqud18uTJAc/RE088EbA+1M7pb3/7W917771KSEhQWFiYfvnLX/p83bIsPfPMM0pISNBll12m22+/XR9//PF5j1tRUaGUlBTZbDalpKTo7bffHqYVDN5Aa+3t7dWSJUt0/fXX64orrlBCQoIWLlyozz//fMBjvv766wHP9zfffDPMqxnY+c7rj3/8Y7+eb7rppvMe18TzKp1/vYHOUVhYmF566aV+j2nquR0uYz6wlJeXKy8vT0VFRXK73crMzFRWVpbPW7P/VGNjo+bOnavMzEy53W4tW7ZMixYtUkVFxSXuPHj79+/XE088oQ8++EBVVVU6deqUXC6Xvv766/POPXLkiFpbW72PP//zP78EHV+Yv/zLv/Tp+fDhw/3WhvJ5/eijj3zWefYmjH/zN38z4LxQOadff/21Zs6cqfXr1wf8+osvvqhXXnlF69ev10cffaS4uDh973vf04kTJ/o9Zm1trbKzs5WTk6NDhw4pJydH999/vz788MPhWsagDLTWkydP6ne/+51WrFih3/3ud9qxY4eOHj2qefPmnfe40dHRPue6tbVVdrt9OJYwaOc7r5J09913+/RcWVk54DFNPa/S+dd77vnZsmWL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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plt.figure()\n", + "plt.hist(s, bins=20, density=True)\n", + "plt.xlabel(\"path index\")\n", + "\n", + "idx = (20*s).astype(int)\n", + "\n", + "plt.figure()\n", + "plt.hist(idx, bins=20, density=True)\n", + "plt.xlabel(r\"$\\theta$\")\n" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3.9.15 64-bit", + "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.9.15" + }, + "orig_nbformat": 4, + "vscode": { + "interpreter": { + "hash": "7b7fbdd20bcc2083504065e64dd68e11295ac29c39a09e225403f090756a3e6a" + } + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/Lukes_folder/train_BIFE_prior.ipynb b/Lukes_folder/train_BIFE_prior.ipynb new file mode 100644 index 0000000..66bdbd7 --- /dev/null +++ b/Lukes_folder/train_BIFE_prior.ipynb @@ -0,0 +1,149 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Data/Packages/Utilities/miniconda3/envs/cryosbi_env/lib/python3.9/site-packages/tqdm/auto.py:21: TqdmWarning: IProgress not found. Please update jupyter and ipywidgets. See https://ipywidgets.readthedocs.io/en/stable/user_install.html\n", + " from .autonotebook import tqdm as notebook_tqdm\n" + ] + } + ], + "source": [ + "import torch\n", + "import matplotlib.pyplot as plt\n", + "\n", + "from cryo_sbi import CryoEmSimulator\n", + "from cryo_sbi import gen_training_set\n", + "from cryo_sbi.inference.NPE_train_from_disk import npe_train_from_disk\n", + "from cryo_sbi.inference.NPE_train_without_saving import npe_train_no_saving" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Creating particles and then training with them" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "hsp90_models.npy\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "100%|██████████| 10000/10000 [01:13<00:00, 136.60pair/s]\n", + "100%|██████████| 100/100 [00:00<00:00, 4779.94pair/s]\n" + ] + } + ], + "source": [ + "gen_training_set(\n", + " config_file=\"config_file.json\",\n", + " num_train_samples=10000,\n", + " num_val_samples=100,\n", + " file_name=\"tut_imgs\",\n", + " save_as_tensor=False,\n", + " n_workers=2,\n", + " batch_size=100,\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Training neural netowrk:\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "100%|██████████| 30/30 [04:44<00:00, 9.48s/epoch, train_loss=-.981, val_loss=0.108] \n" + ] + } + ], + "source": [ + "npe_train_from_disk(\n", + " train_config=\"resnet18_encoder.json\",\n", + " epochs=30,\n", + " train_data_dir=\"tut_imgs_train.h5\",\n", + " val_data_dir=\"tut_imgs_valid.h5\",\n", + " estimator_file=\"tut_estimator\",\n", + " loss_file=\"tut_loss\",\n", + " train_from_checkpoint=False,\n", + " model_state_dict=None,\n", + " n_workers=2,\n", + ")" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Training without saving images" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "npe_train_no_saving(\n", + " image_config=\"image_params_snr01_128.json\",\n", + " train_config=\"resnet18_encoder.json\",\n", + " epochs=350,\n", + " estimator_file=\"resnet18_encoder.estimator\",\n", + " loss_file=\"resnet18_encoder.estimator\",\n", + " n_workers=2, # CHANGE\n", + ")" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "cryosbi_env", + "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.9.16" + }, + "orig_nbformat": 4 + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/Lukes_folder/trying_it_out.ipynb b/Lukes_folder/trying_it_out.ipynb index 8fbb6de..65258da 100644 --- a/Lukes_folder/trying_it_out.ipynb +++ b/Lukes_folder/trying_it_out.ipynb @@ -162,7 +162,7 @@ "source": [ "train_config = json.load(open(\"Lars_hsp90/resnet18_encoder.json\"))\n", "estimator = build_models.build_npe_flow_model(train_config)\n", - "estimator.load_state_dict(torch.load(\"Lars_hsp90/hsp90_posterior_alt.estimator\"))\n", + "estimator.load_state_dict(torch.load(\"Lars_hsp90/hsp90_posterior.estimator\"))\n", "estimator.cuda()\n", "estimator.eval();\n" ]