diff --git a/Examples/Tutorial.ipynb b/Examples/Tutorial.ipynb new file mode 100644 index 0000000..672d98e --- /dev/null +++ b/Examples/Tutorial.ipynb @@ -0,0 +1,43993 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Tutorial for Functions.py" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Minimization of the full loss function ($\\alpha,\\beta,\\gamma$ hyperparameters) through nested minimization.\n", + "\n", + "It includes also the optimization of force fields (corresponding to $\\alpha,\\gamma=\\infty$) with data from alchemical $\\Delta G$ calculations.\n", + "\n", + "Customized algorithm." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "- see https://pubs.aip.org/aip/jcp/article/158/21/214120/2894410 for refinement with only $\\alpha,\\gamma$ finite and https://pubs.acs.org/doi/full/10.1021/acs.jpclett.3c03423 for refinement with only $\\alpha,\\beta$ finite;\n", + "\n", + "- see https://pubs.acs.org/doi/full/10.1021/acscentsci.2c00565 for refinement with alchemical calculations (L2 regularization)." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "import pandas\n", + "import matplotlib.pyplot as plt" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "import jax.numpy as jnp" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "from IPython.display import clear_output" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "from Functions import load_data, minimizer, select_traintest, hyper_minimizer, MDRefinement" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "a simple script to unwrap dictionaries:" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "def unwrap_dict(d):\n", + "\n", + " res = []\n", + " \n", + " if isinstance(d, dict):\n", + " for val in d.values():\n", + " res.extend(unwrap_dict(val))\n", + " else:\n", + " if isinstance(d, list): res = d\n", + " else: res = [d]\n", + "\n", + " return np.hstack(res)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 1. Ensemble refinement" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### a. Load data\n", + "Define **infos** dictionary, which specifies required information in order to get data from input files through **load_data**.\n", + "\n", + "see also load_data.ipynb" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Load observables (no force-field terms and no forward quantities)" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": {}, + "outputs": [], + "source": [ + "infos = {}\n", + "\n", + "# Firstly, define global properties, valid for all the systems:\n", + "\n", + "infos['global'] = {}\n", + "\n", + "# 'name of the folder with data'\n", + "infos['global']['path_directory'] = 'DATA'\n", + "\n", + "# system names\n", + "system_names = ['AAAA','CAAU']\n", + "infos['global']['system_names'] = system_names\n", + "\n", + "# Then, define properties which are specific of each system, like experimental data and observables\n", + "\n", + "for name in system_names:\n", + " infos[name] = {}\n", + " \n", + " # experimental observables (average and uncertainty), corresponding to 'file_name'.npy in DATA/system_name/g_exp/\n", + " # uNOEs values are upper bounds, so specify '<' with ('uNOEs','<')\n", + " infos[name]['g_exp'] = ['NOEs']#, ('uNOEs','<')]\n", + " \n", + " # observables from MD simulations, corresponding to 'file_name'.npy in DATA/system_name/observables/\n", + " # they must correspond also to items of infos[name]['g_exp']\n", + " infos[name]['obs'] = ['NOEs']#, 'uNOEs']\n", + "\n", + "# If some properties are the same for all the systems, you can store them just once in infos['global']\n", + "\n", + "infos['global']['temperature'] = 1 # namely, energies are in unit of k_B T (default value)\n", + "# (in this case, you could do this also for 'g_exp' and 'obs')\n", + "\n", + "# Select the stride for the frames (thinner strides will require more time for minimizations; default value = 1)\n", + "stride = 1000" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "loading data from directory...\n", + "loading AAAA\n", + "loading CAAU\n", + "done\n" + ] + } + ], + "source": [ + "data = load_data(infos, stride = stride)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Include also quantities computed through a **forward model**." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Besides previously defined **infos**:" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": {}, + "outputs": [], + "source": [ + "for name in system_names:\n", + " # include experimental values also for 3J scalar couplings\n", + " infos[name]['g_exp'] = ['backbone1_gamma_3J', 'backbone2_beta_epsilon_3J', 'sugar_3J', 'NOEs']#, ('uNOEs','<')]\n", + "\n", + " # include quantities required to compute observables through the forward model\n", + " # they must correspond to 'file_name'.npy in DATA/system_name/forward_qs/\n", + " infos[name]['forward_qs'] = ['backbone1_gamma','backbone2_beta_epsilon','sugar']\n", + "\n", + "# starting values of the forward model coefficients: specify the file name inside DATA/\n", + "infos['global']['forward_coeffs'] = 'original_fm_coeffs' # string" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now, define the **forward_model**.\n", + "\n", + "In our case-study, the forward model is given by the **Karplus equations**:\n", + "\n", + "$^3 J_\\gamma = A_\\gamma \\, cos^2\\gamma \\, - \\, B_\\gamma \\, cos\\gamma \\, + \\, C_\\gamma$\n", + "\n", + "with empirical coefficients $A_\\gamma,\\,B_\\gamma,\\,C_\\gamma$ ($\\gamma$ dihedral angles), and analogously for $^3 J_{\\beta/\\epsilon}$ (same coefficients both for $\\beta$ and $\\epsilon$ dihedral angles) and $^3J_\\nu$ (sugar dihedral angles)." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**WARNING**: keys of **forward_qs_out** must correspond to associated g_exp, as specified in infos" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": {}, + "outputs": [], + "source": [ + "def forward_model_fun(fm_coeffs, forward_qs, selected_obs = None):\n", + "\n", + " # 1. compute the cosine (which is the quantity you need in the forward model;\n", + " # you could do this just once before loading data)\n", + " forward_qs_cos = {}\n", + "\n", + " for type_name in forward_qs.keys():\n", + " forward_qs_cos[type_name] = np.cos(forward_qs[type_name])\n", + "\n", + " # if you have selected_obs, compute only the corresponding observables\n", + " if selected_obs is not None:\n", + " for type_name in forward_qs.keys():\n", + " forward_qs_cos[type_name] = forward_qs_cos[type_name][:,selected_obs[type_name+'_3J']]\n", + "\n", + " # 2. compute observables (forward_qs_out) through forward model\n", + " forward_qs_out = {\n", + " 'backbone1_gamma_3J': fm_coeffs[0]*forward_qs_cos['backbone1_gamma']**2-fm_coeffs[1]*forward_qs_cos['backbone1_gamma']+fm_coeffs[2],\n", + " 'backbone2_beta_epsilon_3J': fm_coeffs[3]*forward_qs_cos['backbone2_beta_epsilon']**2-fm_coeffs[4]*forward_qs_cos['backbone2_beta_epsilon']+fm_coeffs[5],\n", + " 'sugar_3J': fm_coeffs[6]*forward_qs_cos['sugar']**2-fm_coeffs[7]*forward_qs_cos['sugar']+fm_coeffs[8] }\n", + "\n", + " return forward_qs_out" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "same forward-model function for each system, so put it in infos['global']" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "metadata": {}, + "outputs": [], + "source": [ + "infos['global']['forward_model'] = forward_model_fun" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "loading data from directory...\n", + "loading AAAA\n", + "loading CAAU\n", + "done\n" + ] + } + ], + "source": [ + "data = load_data(infos, stride = stride)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### b. Minimize the loss function and analyse the results\n", + "for a single choice of the hyper-parameter $\\alpha$" + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "metadata": {}, + "outputs": [], + "source": [ + "# use function minimizer with selected data and alpha as input\n", + "Result = minimizer(data, alpha = 1)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let's look at the values contained in the class **Result**" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "dict_keys(['loss', 'min_lambdas', 'minis', 'time', 'D_KL_alpha', 'abs_difference', 'av_g', 'chi2', 'logZ_new', 'weights_new'])\n" + ] + } + ], + "source": [ + "print(vars(Result).keys())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Comments on the minimization.**\n", + "\n", + "As shown in *Andrea Cesari et al., JCTC 2016*, the optimal ensemble $P$ which minimizes the loss function\n", + "\n", + "$\\mathcal{L}[P] = \\frac{1}{2}\\chi^2[P]+\\alpha D_{KL}[P|P_0]$\n", + "\n", + "is $P_{\\vec\\lambda^*}(x) = \\frac{1}{Z_{\\vec\\lambda^*}} P_0(x) e^{-\\vec\\lambda^*\\cdot\\vec g(x)}$ where $\\vec\\lambda^*$ is the point of minimum of the following function\n", + "\n", + "$\\Gamma(\\vec\\lambda) = \\frac{1}{2}\\alpha\\sum_j\\sigma_j^2\\lambda_j^2+\\log Z_{\\vec\\lambda}+\\vec\\lambda\\cdot\\vec{g}_{exp},$\n", + "\n", + "which fulfils $\\mathcal L(P_{\\vec\\lambda^*}) = -\\alpha\\Gamma(\\vec\\lambda^*)$ and\n", + "\n", + "$\\lambda_i^* = \\frac{\\langle g_i \\rangle_{P_*}-g_{i,exp}}{\\alpha\\sigma_{i,exp}^2}$.\n", + "\n", + "The Python function **minimizer** exploits this relationship by minimizing $\\Gamma$ (for each system), and then evaluating in detail $\\mathcal{L}[P_\\lambda]$ at the optimal point found for $\\Gamma$ (in order to get $\\chi^2$ and $D_{KL}$). To check the success of the minimization of $\\Gamma$, you can read the truth value *success of inner minimization* (output message of scipy.optimize.minimize, in **Result.minis[name_sys].success**). The quality of this result is determined by comparing $-\\alpha\\Gamma(\\vec\\lambda^*)$ with $\\mathcal L(P_{\\vec\\lambda^*})$, which we know to be equal at the point of minimum; this is reported in **Result.abs_difference**." + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "True Optimization terminated successfully.\n", + "True Optimization terminated successfully.\n", + "\n", + "absolute differences:\n", + " {'AAAA': DeviceArray(0.00567539, dtype=float64), 'CAAU': DeviceArray(0.00401629, dtype=float64)}\n" + ] + } + ], + "source": [ + "for name_sys in data['global'].system_names:\n", + " print(Result.minis[name_sys].success, Result.minis[name_sys].message)\n", + "\n", + "print('\\nabsolute differences:\\n', Result.abs_difference)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "- first of all, the min. value of the loss function **loss**" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "optimal loss: 157.40786286559697\n", + "time required: 22.592878818511963\n" + ] + } + ], + "source": [ + "print('optimal loss: ', Result.loss)\n", + "print('time required: ', Result.time)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "- then, the optimal ensembles $P^*$ **weights_new** (completely defined by the starting ensembles and by the **min_lambdas** coefficients), together with their (log) normalization factor **logZ_new**. Let's plot them.\n", + "\n", + "Their statistical robustness is evaluated by the Kullback-Leibler divergence from the initial ensembles **D_KL_alpha** as $e^{-D_{KL}[P^*|P_0]}$ (geometric average of the ratio $P^*(x)/P_0(x)$, averaged over $P^*(x)$). Notice the arithmetic average is the effective n. of frames (compared to the total n.), defined as the inverse of the Kish size\n", + "$\\frac{n_{eff}}{N} = \\frac{1}{N\\sum_t w_t^2}$)." + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'AAAA': DeviceArray(3.82488963, dtype=float64),\n", + " 'CAAU': DeviceArray(4.19595699, dtype=float64)}" + ] + }, + "execution_count": 21, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "Result.D_KL_alpha" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "system AAAA:\n", + "effective n. of frames (on the total n.): 0.02182084373353677\n", + "logZ: -268.01362443341077\n", + "system CAAU:\n", + "effective n. of frames (on the total n.): 0.01505632676196905\n", + "logZ: -222.45035438867598\n" + ] + }, + { + "data": { + "image/png": "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7CEzM5Nrr72WuXPnesuKi4tZvnw5V111FaNHjw7YIu1RVFREbm4uL7zwArfccgsA5557LqtWrWLTpk1MnjyZhx56CICpU6eSl5dHbm4un332GWPGjPHup7Cw0Hu822+/HYBt27bxm9/8hq1bt3LCCSfwwgsvUFxczLhx45g7dy6ff/45ZWVlvPjii979nHzyyWzcuJE77rjD25L8xBNPMHDgQNauXcuHH37I//t//49jx47V6H3+7rvvePzxx1mzZg0fffRRhW4x/fv3Z82aNWzatIlRo0bxpz/9yVv2zTffsGLFChYvXswNN9zARRddxOeff06zZs0qnI8OHTqQm5vLRRddxLhx45g/fz5r1qzxdrNo2rQpb731Fhs3buTDDz/k97//fZV3AsrLy0lLS+PUU09l0KBB9O3bt0b1NcYYY+JRJO7sx5pIdtWIKZGYJ97hcDBq1CgARo0aVSHJraps7ty5XHvttQHL3nnnHQYMGECzZs0YMWIECxcupLy8PODxR48eDcDFF1/Mjz/+yOHDhzly5AgjR46kR48e/O53v2PLFlcj//Lly/n1r39No0au50FPOukk736GDRvGzTffzE033eRdduaZZ9KvXz8AbrjhBlavXs22bdvo3LkzXbt2BeD6669n5cqV3m2uvvpqAHr37k1eXh4AS5cu5cknnyQtLY3s7GyKi4vZuXNnaG+w29q1a7nkkks46aSTSElJYeTIkd6ygoICBg8eTM+ePXnqqae89QW4/PLLSUlJoWfPnpSXlzNo0CAAevbs6Y0PYOjQod7lffv2pVWrVpxyyik0adKEw4cPo6o89NBDpKamcumll7J7925vy3YgycnJ5ObmUlBQwNq1a/niiy9qVF9jjDEm3kTizn4sisqU29EQ7qlWDx48yIoVK/j8888REcrLyxERnnrqKZxOJwsWLGDRokU88cQT3pnbPMOLORwOvv/+e2bNmgW4WlS//vprTjvtNBwOB6tXr6ZTp06A6yG6FStWeJM+X/5dAESERx55hAEDBvDWW2+Rl5cX0nBb/fr1Y8mSJVx//fXefQbad3WaNGkCuBLHsrIywNVlZcGCBXTr1q3a7Wvj7rvv5r777mPo0KHk5OQwadKkSvEkJSWRkpLirUNSUpI3Pv/1PL/7rjdr1iz27dvHhg0bSElJoVOnTiFNJnLiiScyYMAAlixZ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ww1aXFzs3c+jjz6q6enp2qNHD926dauqqhYWFurNN9+sffr00bS0NF24cGGlujidTm3Tpo13X4G0aNFCf/vb32r37t114MCBunfvXlVV3b59uw4ePFgvuOAC7d+/v27dulU/+ugjbdOmjXbq1El79eql27dv16lTp2p6erqmpqbq1Vdf7a1PIHv37tWrr75aMzIyNCMjQ1evXq2qqo899pjecMMNmpWVpWeffbZOnTpVVVW/++47veiii7znYuXKlRXeW0/8nrref//9ev7552uPHj10zpw5quqa7eiSSy7RESNGeN/7I0eOBI3R972bMGGCPvnkk94Yn3rqqYDr2syBFTWkmQOBC4H3fV5PBCb6rfM+cKH790a4EmbxW0eAg0CT6o5pMwdWlKh1S9R6qSZu3RK1XqoxNnOgiCwHTgtQ9LCqLgp1Px6q+izwbE23q7VOF0FyYygvcf3b6aI673LRokUMGTKErl270rZtWzZs2EDv3q5W7I8//pjOnTvTpUsXsrOzeffddxkxYgQAu3btYs+ePWRmZnLttdcyd+5cfv/73wOuVsHly5fz8ssvc/jwYRwOBz//+c8DHr+oqIjc3FxWrlzJLbfcwhdffMG5557LqlWraNSoEcuXL+ehhx5iwYIFTJ06lby8PHJzc2nUqBEHDx707qewsJBRo0Zx0003cdNNN5GXl8e2bduYNm0a/fr145ZbbuGFF17grrvuYty4cXzwwQd07dqV0aNH8+KLL/Lb3/4WgJNPPpmNGzfywgsv8Oc//5lXX32VJ554goEDBzJ9+nQOHz5MZmYml156KS1atPAef8GCBVxwwQUVWr39HTt2jIyMDP76178yefJk/vu//5vnn3+e8ePH89JLL3HOOefw6aef8pvf/IYVK1YwdOhQrrzySq655hoATjzxREaNGkWrVq34r//6L6ZNm8bdd98d8Fj33nsvv/vd7+jfvz87d+5k8ODB3glMPvvsM9asWcOxY8dIT0/niiuuwOFwMHjwYB5++GFKjh6lcP9+youKAu77zTffJDc3l82bN7N//3769OnDxRdfDMCmTZvYsmULp59+Ov369WPNmjVcdtllQd+Tm2++mffee4/u3bvz9NNPB13PGFwtxLt8XhcAfYOto6plInIEaIsrgfYYAWxU1eMEUN2dwuok8l2ARK1botYLErduiVovqJ+6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", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "for s in system_names:\n", + "\n", + " plt.figure(figsize = (12,4))\n", + "\n", + " plt.subplot(1,2,1)\n", + "\n", + " l = 0\n", + " for i2,s2 in enumerate(Result.min_lambdas[s].keys()):\n", + " l_new = l+len(Result.min_lambdas[s][s2])\n", + " plt.plot(np.arange(l,l_new),Result.min_lambdas[s][s2],'.',label='%s %s' % (s,s2))\n", + " l = l_new\n", + "\n", + " plt.title('$\\lambda$ values (non-normalized)')\n", + " plt.legend()# loc='center left', bbox_to_anchor=(1, 0.5))\n", + " plt.grid()\n", + " plt.yscale('symlog')\n", + "\n", + " plt.subplot(1,2,2)\n", + " \n", + " plt.plot(Result.weights_new[s],'.')\n", + " plt.title('reweighted %s' % s)\n", + " plt.grid()\n", + " \n", + " n_eff = np.exp(-Result.D_KL_alpha[s])\n", + "\n", + " print('system %s:' % s)\n", + " print('effective n. of frames (on the total n.): ', n_eff)\n", + " print('logZ: ', Result.logZ_new[s])\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "- finally, let's look at the average values of the observables in the new ensembles **av_g** and associated **chi2**; compare with experimental values data.gexp and with average values of the original ensembles." + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "chi2: 17.464389378171056\n", + "observables (first names in list):\n", + " [[\"A1-H1'\" 'A1-H8']\n", + " [\"A1-H1'\" 'A2-H8']\n", + " ['A1-H2' \"A2-H1'\"]\n", + " [\"A1-1H2'\" 'A1-H8']\n", + " [\"A1-1H2'\" \"A2-H1'\"]]\n" + ] + }, + { + "data": { + "image/png": "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+ctfktb1G9/4BqtWreLNN99k+PDhsf2VlJTw0ksvAfDMM88wbdo0evbsGdvud7/7HdOmTaOmpoY333wztqKciIh0TLefoKZiRUWzoB5VH66nYkUFS2cs7dC+Tz75ZM4880wgctWdbInUyy67jDVr1rBv3z569erF2LFjWb16Na+88go///nPef3111tdthUii8d86Utf4jOf+QwAF110UZOFYr7+9a9TUFDAiBEj2LlzZ9KyLl26lLfeeit2Rb937142bdrEyy+/zKxZs2Lzrbe0Otrbb79NRUUFe/bsoa6ujmnTpgGReeEXL17M5MmTWbRoEddee22T7caPH8+3v/1tGhoa+PrXv67ALiLSSd0+sFdOrEx6xQ4QDASpnFjZ4X3HL6na0hKpAEOGDGHhwoWcffbZjB49muXLl7N582aGDx/Ou+++2+qyramIX4K1pbUBnHPcc889sYAc9eyzz6b0N6644gr+8Ic/cPrpp7Nw4UJCoRAQWRP+hhtu4KOPPmLNmjXNTgzOOeccXn75Zf70pz9xxRVX8IMf/IDLLrusHbUTEZF43f5WfGlxKVVTqggGgk3Sg4EgVVOqKC0uTcvfmTZtWotLpE6aNIk777yTc845h0mTJnHfffcxZswYzCylZVvHjx/PSy+9xMcff8yRI0eaLGnakmOOOSZWlmj57r333lj79zvvvMP+/fs555xzWLx4MeFwmNraWpYvX550f5988gnFxcU0NDTw6KOPxtKPPvpoxo8fz3e/+12++tWvNls57v3336eoqIirrrqKK6+8kjfeeKPNsouISMu6fWCH5sE93UEdYOrUqVxyySWcddZZnHbaacyYMSO2rvmkSZOora3lrLPOoqioiGAwyKRJkwA48cQTY8u2jh49mrPOOqtZG/pJJ53EDTfcQGlpKRMnTmTw4MH07du31fKMHj2aQCDA6aefzt13382VV17JiBEjGDt2LKNGjeKaa67hyJEjXHjhhQwdOpQRI0Zw2WWXNWsGiLrllluYMGECEydO5Atf+EKT1y6++GJ++9vfxtZfX716NVdeeSUQWfHo9NNPZ8yYMSxevJjvfve77X9zRUTkU865Nn+A84GNwGZgbpLXewGLvddXAoPjXpvnpW8EpnlpQaAaeBNYB/yfuPxDvH1s9vZZ2Fb5zjjjDJdo/fr1zdLasnLHSnfe789zy99d3u5ts+2TTz5xzjnX0NDgvvrVr7qnnnqqzW327duX6WLlhNbq2ZH/k1y1fPnybBehS6ie/qJ6dgyw2rUQE9u8YjezAFAFfBkYAcwys8TB07OBj51znwfuBn7ibTsCmAmM9E4Ofunt7xBwrnPudKAEON/MzvT29RPgbm9fH3v77hKlxaUsnbGUM048o6v+ZNrMnz8/NmRsyJAhfP3rX892kUREJAtS6TxXCmx2zr0HYGaLgOlA/JRn04H53u9PAL8wM/PSFznnDgFbzGwzUOqcew2INvD29H6ct825wCXeaw97+723Q7XrRu68885sF0FERHJAKoH9JGBb3PPtwISW8jjnjpjZXuB4L/31hG1PgtidgDXA54Eq59xKMzsB2OOcO5KYX0REusDy2+Cl29vO96W5MHle5ssj7Za14W7OuTBQYmb9gKfNbBTw91S3N7OrgasBioqKYsOrovr27cu+ffuI3ARon3A4HOvY5mfdvZ7OOerr65v97+Sruro639SlNapnhtlZUPbH2NOy0HQAQnFpMWkon45n+qUS2D8ABsU9H+ilJcuz3cx6AH2B3als65zbY2bLibTB/xfQz8x6eFftyf5WdLsHgAcAxo0b58rKypq8vmXLFg4fPszxxx/f7uD+ySefcMwxx7Rrm3zUnevpnGP37t3069cvNmlQvguFQiR+DvxI9exiochDpsqSM/XMsK6sZyqBfRUw1MyGEAmyM/m0DTxqCXA58BowA3jROefMbAnwOzO7CxgADAWqzexEoMEL6r2B84CfeNss9/axyNtnktPEtg0cOJDt27fz4Ycftnvb+vp6gsFg2xnzXHevZzAYZODAgVkokYhI5rQZ2L028znAc0AAeMg5t87MbibS3X4JsAB4xOsc9xGR4I+X73EiHe2OAOXOubCZFQMPe+3sBcDjzrlnvD/5I2CRmVUCa719t1vPnj0ZMmRIRzYlFAr55iquNaqniIj/pNTG7px7Fng2Ie3GuN/rgYta2PZW4NaEtLeApN+0Xu/79M0MIyIi0o1o5jkREREfUWAXERHxEQV2ERERH1FgFxER8REFdhERER9RYBcREfERBXYREREfUWAXERHxEQV2ERERH8na6m4i0k1pWVCRjFJgF5GuNXle04A9v6/3uDc75RHxGd2KFxER8REFdhERER9RYBcREfERBXYREREfUWAXERHx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", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "s1 = 'AAAA'\n", + "s2 = 'NOEs'\n", + "\n", + "print('chi2: ',Result.chi2[s1][s2])\n", + "print('observables (first names in list):\\n',data[s1].names[s2][:5])\n", + "\n", + "plt.figure(figsize=(8,6))\n", + "\n", + "# compute average values with original ensemble\n", + "g_mean = np.matmul(data[s1].weights, data[s1].g[s2])\n", + "\n", + "plt.plot(g_mean,'.',label='original av.s',markersize=10)\n", + "\n", + "plt.plot(data[s1].gexp[s2][:,0],'s',label='experimental values')\n", + "plt.errorbar(np.arange(len(data[s1].gexp[s2][:,0])), data[s1].gexp[s2][:,0], data[s1].gexp[s2][:,1], fmt = ' ',\n", + " color = 'tab:orange', capsize = 5, lw = 2)\n", + "\n", + "plt.plot(Result.av_g[s1][s2], 'D', label = 'reweighted av.s')\n", + "\n", + "plt.legend()\n", + "plt.grid()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### c. Determine optimal hyper parameter $\\alpha$ through cross validation (scan over $\\alpha$)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The loss function for Ensemble Refinement, previously introduced, has one hyper-parameter $\\alpha$ which needs to be fixed. This hyper-parameter tunes the reliability given to the original ensemble in spite of the trust to experimental data.\n", + "\n", + "Suitable values of $\\alpha$ can be determined through cross validation procedure: randomly split the full data set into training and test set, then select the value of $\\alpha$ which minimizes the $\\chi^2$ on the test set (either same observables as in training but new frames or new observables).\n", + "\n", + "Let's perform just one splitting into training/test set (as an example) and scan over different values of $\\alpha$ (in logarithmic scale)." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The function **select_traintest** can be used to get **data_train** and **data_test** by simply passing a **random_state** (a random integer), which randomly selects **test_obs** and **test_frames**." + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Input random_state employed both for test_obs and test_frames\n" + ] + } + ], + "source": [ + "data_train, data_test, test_obs, test_frames = select_traintest(data, random_state = 1)" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "test observables:\n", + " {'AAAA': {'backbone2_beta_epsilon_3J': DeviceArray([0, 3, 4, 6], dtype=int64), 'sugar_3J': DeviceArray([2, 8], dtype=int64), 'NOEs': DeviceArray([ 5, 10, 11, 23, 29, 30, 35], dtype=int64), 'backbone1_gamma_3J': DeviceArray([], dtype=int64)}, 'CAAU': {'backbone1_gamma_3J': DeviceArray([3], dtype=int64), 'backbone2_beta_epsilon_3J': DeviceArray([3], dtype=int64), 'sugar_3J': DeviceArray([7, 8], dtype=int64), 'NOEs': DeviceArray([ 1, 2, 5, 15, 16, 25, 28, 30, 33], dtype=int64)}}\n", + "test frames:\n", + " {'AAAA': DeviceArray([ 5, 6, 16, 22, 23, 24, 28, 31, 35, 40,\n", + " 49, 53, 55, 61, 63, 71, 75, 79, 100, 101,\n", + " 104, 105, 106, 113, 118, 134, 140, 143, 144, 162,\n", + " 173, 176, 178, 193, 203, 204, 205, 207, 213, 224,\n", + " 225, 234, 238, 240, 254, 255, 256, 261, 263, 266,\n", + " 276, 281, 289, 309, 311, 314, 320, 325, 328, 330,\n", + " 339, 342, 349, 367, 368, 372, 373, 379, 380, 383,\n", + " 384, 385, 389, 396, 401, 406, 409, 417, 423, 427,\n", + " 428, 439, 440, 443, 445, 450, 451, 452, 455, 457,\n", + " 461, 463, 469, 470, 473, 497, 501, 511, 512, 526,\n", + " 533, 535, 541, 548, 554, 557, 559, 568, 574, 577,\n", + " 606, 607, 611, 614, 616, 620, 625, 627, 629, 632,\n", + " 636, 638, 639, 642, 644, 646, 651, 657, 663, 664,\n", + " 665, 675, 678, 683, 685, 688, 690, 696, 701, 716,\n", + " 722, 724, 735, 739, 741, 749, 751, 753, 759, 761,\n", + " 765, 766, 769, 775, 777, 779, 782, 787, 788, 793,\n", + " 800, 802, 803, 812, 815, 816, 817, 827, 830, 838,\n", + " 845, 847, 854, 856, 858, 859, 861, 862, 869, 871,\n", + " 876, 881, 890, 891, 894, 909, 917, 919, 922, 923,\n", + " 931, 935, 943, 950, 957, 958, 960, 964, 969, 971,\n", + " 974, 977, 1016], dtype=int64), 'CAAU': DeviceArray([ 11, 12, 18, 19, 23, 25, 28, 29, 30, 31,\n", + " 32, 39, 47, 57, 61, 64, 65, 72, 74, 77,\n", + " 82, 86, 87, 88, 103, 108, 111, 114, 122, 124,\n", + " 125, 128, 130, 133, 135, 141, 145, 149, 150, 155,\n", + " 158, 160, 164, 165, 181, 189, 198, 204, 205, 227,\n", + " 231, 234, 235, 237, 240, 241, 255, 257, 277, 280,\n", + " 285, 292, 298, 300, 316, 317, 320, 331, 333, 346,\n", + " 350, 351, 364, 367, 380, 384, 386, 388, 389, 396,\n", + " 401, 411, 418, 426, 431, 434, 438, 440, 441, 443,\n", + " 444, 447, 448, 450, 451, 462, 468, 478, 483, 487,\n", + " 488, 491, 494, 501, 507, 518, 531, 538, 545, 551,\n", + " 559, 564, 566, 568, 569, 583, 584, 585, 593, 595,\n", + " 598, 604, 606, 609, 620, 624, 636, 637, 638, 639,\n", + " 645, 646, 653, 654, 661, 663, 677, 680, 682, 692,\n", + " 695, 699, 705, 725, 731, 738, 746, 750, 764, 766,\n", + " 769, 771, 783, 791, 801, 810, 815, 822, 827, 828,\n", + " 829, 835, 849, 851, 861, 864, 873, 882, 889, 891,\n", + " 892, 893, 898, 899, 905, 917, 919, 923, 925, 926,\n", + " 928, 929, 936, 937, 940, 943, 944, 950, 952, 953,\n", + " 954, 958, 963, 965, 966, 980, 985, 987, 990, 992,\n", + " 1000], dtype=int64)}\n" + ] + } + ], + "source": [ + "print('test observables:\\n', test_obs)\n", + "print('test frames:\\n', test_frames)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Default values for the fraction of test observables and frames are $20\\%$ for both (you can change this ratio by selecting **test_frames_size** and/or **test_obs_size** as input variables). By default, test observables are evaluated only on test frames; you can also consider both on training and test frames, by setting **if_all_frames** = True." + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Input random_state employed both for test_obs and test_frames\n" + ] + }, + { + "data": { + "text/plain": [ + "({'global': .data_global_class at 0x7f3a654e9f28>,\n", + " 'AAAA': Functions.select_traintest..class_train,\n", + " 'CAAU': Functions.select_traintest..class_train},\n", + " {'global': .data_global_class at 0x7f3a654e9f28>,\n", + " 'AAAA': Functions.select_traintest..class_test,\n", + " 'CAAU': Functions.select_traintest..class_test},\n", + " {'AAAA': {'backbone1_gamma_3J': DeviceArray([1, 2, 3, 5], dtype=int64),\n", + " 'backbone2_beta_epsilon_3J': DeviceArray([1], dtype=int64),\n", + " 'sugar_3J': DeviceArray([0, 2, 3, 7], dtype=int64),\n", + " 'NOEs': DeviceArray([ 2, 3, 5, 22, 25, 26, 27, 29, 30, 32], dtype=int64)},\n", + " 'CAAU': {'backbone1_gamma_3J': DeviceArray([0, 2, 3], dtype=int64),\n", + " 'backbone2_beta_epsilon_3J': DeviceArray([0, 2, 3, 4], dtype=int64),\n", + " 'sugar_3J': DeviceArray([0, 2, 3, 8], dtype=int64),\n", + " 'NOEs': DeviceArray([ 8, 11, 14, 23, 28, 30, 35, 36, 38], dtype=int64)}},\n", + " {'AAAA': DeviceArray([ 4, 23, 31, 36, 38, 43, 47, 50, 62, 65,\n", + " 66, 69, 71, 75, 77, 86, 89, 90, 94, 101,\n", + " 102, 112, 114, 116, 117, 122, 134, 135, 142, 144,\n", + " 146, 151, 154, 156, 161, 171, 175, 178, 182, 193,\n", + " 195, 200, 223, 228, 233, 236, 255, 259, 271, 280,\n", + " 282, 290, 303, 305, 310, 312, 316, 323, 324, 327,\n", + " 328, 330, 334, 349, 361, 362, 372, 373, 379, 382,\n", + " 391, 395, 399, 401, 414, 418, 424, 427, 430, 431,\n", + " 432, 434, 436, 442, 449, 453, 457, 467, 470, 481,\n", + " 483, 486, 488, 490, 495, 500, 501, 504, 505, 511,\n", + " 513, 518, 519, 536, 539, 544, 561, 562, 565, 570,\n", + " 572, 575, 579, 589, 592, 595, 597, 598, 601, 603,\n", + " 610, 620, 625, 628, 630, 639, 663, 664, 670, 677,\n", + " 679, 686, 692, 698, 719, 720, 724, 725, 731, 741,\n", + " 753, 754, 756, 757, 763, 767, 769, 770, 778, 782,\n", + " 785, 788, 789, 790, 796, 800, 805, 806, 808, 813,\n", + " 821, 823, 826, 828, 830, 833, 834, 841, 849, 863,\n", + " 865, 870, 874, 875, 881, 885, 895, 896, 903, 904,\n", + " 906, 913, 914, 927, 928, 934, 937, 940, 941, 946,\n", + " 948, 949, 953, 959, 960, 967, 987, 992, 993, 999,\n", + " 1005, 1009, 1010], dtype=int64),\n", + " 'CAAU': DeviceArray([ 2, 10, 11, 30, 33, 37, 46, 47, 49, 50,\n", + " 51, 54, 57, 71, 72, 76, 86, 88, 90, 101,\n", + " 104, 115, 124, 126, 132, 143, 147, 151, 167, 169,\n", + " 176, 180, 183, 185, 189, 194, 195, 198, 208, 210,\n", + " 213, 216, 217, 219, 220, 221, 223, 224, 229, 235,\n", + " 237, 240, 244, 250, 266, 267, 278, 280, 282, 288,\n", + " 290, 292, 298, 302, 308, 310, 312, 315, 324, 329,\n", + " 346, 347, 369, 374, 378, 387, 388, 391, 395, 396,\n", + " 400, 403, 408, 411, 423, 426, 430, 431, 435, 447,\n", + " 450, 454, 458, 480, 491, 495, 497, 500, 519, 524,\n", + " 534, 537, 544, 551, 557, 568, 571, 574, 578, 584,\n", + " 592, 597, 599, 608, 612, 616, 623, 625, 637, 641,\n", + " 646, 650, 651, 655, 657, 663, 667, 668, 671, 678,\n", + " 680, 688, 692, 695, 698, 710, 712, 715, 721, 722,\n", + " 724, 725, 726, 735, 743, 747, 748, 755, 762, 774,\n", + " 777, 796, 797, 799, 800, 805, 808, 813, 817, 822,\n", + " 831, 834, 839, 844, 846, 849, 850, 855, 862, 866,\n", + " 869, 870, 872, 877, 879, 883, 891, 892, 900, 904,\n", + " 917, 919, 926, 928, 931, 934, 935, 937, 939, 941,\n", + " 942, 944, 947, 956, 958, 962, 963, 971, 977, 995,\n", + " 1002], dtype=int64)})" + ] + }, + "execution_count": 25, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "data_train, data_test, test_obs, test_frames = select_traintest(data, test_frames_size = 0.2, test_obs_size = 0.3,\n", + " random_state = 4, if_all_frames = True)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Alternatively, we can also directly pass test_obs and test_frames." + ] + }, + { + "cell_type": "code", + "execution_count": 44, + "metadata": {}, + "outputs": [], + "source": [ + "out = select_traintest(data, test_obs = test_obs, test_frames = test_frames)\n", + "\n", + "data_train = out[0]\n", + "data_test = out[1]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now, let's scan over different values of $\\alpha$ for a given partition of the full data set into training and test set. Let's work directly with logarithms in base 10, to explore several orders of magnitude for $\\alpha$.\n", + "\n", + "We can also pass data_test as input to minimizer: after the minimization of the loss function on data_train, we evaluate corresponding properties (such as $D_{KL}$, $\\chi^2$, loss function) on test frames and $\\chi^2$ on test observables." + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [], + "source": [ + "log10_alphas = np.arange(-2, 7, 1)\n", + "\n", + "Results = {}\n", + "\n", + "for log10_alpha in log10_alphas:\n", + " print(log10_alpha)\n", + "\n", + " alpha = 10**np.float64(log10_alpha)\n", + " Results[log10_alpha] = minimizer(data_train, alpha = alpha, data_test = data_test)\n", + "\n", + " clear_output()" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "dict_keys(['loss', 'min_lambdas', 'minis', 'time', 'D_KL_alpha', 'abs_difference', 'av_g', 'chi2', 'logZ_new', 'weights_new', 'loss_test', 'D_KL_alpha_test', 'abs_difference_test', 'av_g_test', 'chi2_test', 'logZ_new_test', 'weights_new_test', 'avg_new_obs', 'chi2_new_obs'])" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "vars(Results[log10_alpha]).keys()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "For each value of the hyper-parameter, we now have corresponding quantities for test frames (such as **loss_test**, **D_KL_alpha_test**, **av_g_test**, **chi2_test**, **weights_new_test**) and for test observables (**avg_new_obs** and **chi2_new_obs**)." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let's compare the loss function for training set and test set (new frames):\n", + "- at high values of $\\alpha$, the two values almost overlap;\n", + "- decreasing $\\alpha$, both the two loss functions decrease, except that the one on the test at a certain point starts to increase marking overfitting." + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "loss = [Results[log10_alpha].loss for log10_alpha in log10_alphas]\n", + "loss_test = [Results[log10_alpha].loss_test for log10_alpha in log10_alphas]\n", + "\n", + "plt.title('loss function')\n", + "plt.plot(log10_alphas, loss, '.--', label = 'training')\n", + "plt.plot(log10_alphas, loss_test, '.--', label = 'test')\n", + "plt.xlabel(r'$\\log_{10}\\alpha$')\n", + "plt.legend()\n", + "plt.grid()" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "D_KL_train = [np.sum(unwrap_dict(Results[log10_alpha].D_KL_alpha)) for log10_alpha in log10_alphas]\n", + "D_KL_test = [np.sum(unwrap_dict(Results[log10_alpha].D_KL_alpha_test)) for log10_alpha in log10_alphas]\n", + "\n", + "plt.title('$D_{KL}$')\n", + "plt.plot(D_KL_train, '.--', label = 'training')\n", + "plt.plot(D_KL_test, '.--', label = 'test')\n", + "plt.xlabel(r'$\\log_{10}\\alpha$')\n", + "plt.legend()\n", + "plt.grid()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now, the $\\chi^2$, including also test observables" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [], + "source": [ + "chi2s = [np.sum(unwrap_dict(Results[log10_alpha].chi2)) for log10_alpha in log10_alphas]\n", + "n_obs_train = data_train['global'].tot_n_experiments(data_train)\n", + "\n", + "red_chi2s = np.array(chi2s)/n_obs_train\n", + "\n", + "chi2s_test1 = [np.sum(unwrap_dict(Results[log10_alpha].chi2_test)) for log10_alpha in log10_alphas] # .chi2_test\n", + "red_chi2s_test1 = np.array(chi2s_test1)/n_obs_train\n", + "\n", + "chi2s_test2 = [np.sum(unwrap_dict(Results[log10_alpha].chi2_new_obs)) for log10_alpha in log10_alphas] # .chi2_test\n", + "n_obs_test = len(unwrap_dict(test_obs))\n", + "\n", + "red_chi2s_test2 = np.array(chi2s_test2)/n_obs_test" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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iRMnsnDhQoYPH864cePo2bMnAFdccQWZmZn06tWLl19+uWzbyMhIHn74YXr16sUFF1zAsmXLOP/88+nUqRMff/wxAG63m6lTp5blfOmllwDYs2cP5557Lunp6fTu3ZvFixfX+zVqCvohZkNo1RHC4mC3jktVNnntksrLel0Bg26D4hPw6kWwbx0YjzUnfkJvaz78jImQfwhmTaq47U1zzvh05aeTBZg3bx5btmxh2bJlGGMYN24cixYt4sCBAyQlJTFnjrW/o0ePEhMTwzPPPMOCBQto3bp1hf3eeuutfPPNN2XzgS9cuJCVK1fWaqra/Px8zj33XJ599lmuvPJKHn74Yb788kvWr1/P5MmTGTduHK+88goxMTEsX76coqIihg0bxoUXXsj777/PRRddxEMPPYTb7a723YG/0QLeEESswyiHfrI7iVJVKzxqFW+w7guPNuju582bx7x588jIsC6fm5eXx5YtWxg+fDj33HMP9913H5deeinDh/s+6Vttp6oNDg5m9OjRAPTp04eQkBBcLhd9+vQpOyV/3rx5/PDDD8yePRuw/qFs2bKFgQMHcvPNN1NSUsIVV1xRNs2tv6uxgItIKLAICPGuP9sY86iIpAEzgXhgBXCDMaZlTURQ3vjXICTa7hSqpTpTjzk4HK6eDjPGWSedOYOtxycnYIuIr7HHXRNjDA888AC/+tWvKrWtXLmSzz77jIcffphRo0bxyCOP+LTv2k5V63K5yq7q7nA4yqahdTgcZcfPjTH885//5KKLLqr0PIsWLWLOnDnceOON3H333UyaNKnSOv6mNsfAi4CRxph+QDowRkSGAE8CfzPGdAZygVsaLWUgCI2peLUepfyJ99KEjHyoQS4+cvp0shdddBGvvvoqeXl5AOzatYv9+/eze/duwsPDuf7665k6dSorV64EICoqqtrpaM+kvlPVXnTRRbz44ouUlFjXz928eTP5+flkZ2eTkJDAbbfdxq233lqW09/V2AM3xhggz/vQ5b0ZYCTwS+/yGcBjQMsdDF1SAHPuhc6joPdVdqdRqrLkQQ027XH56WTHjh3LU089xYYNGxg61LowRGRkJP/+97/ZunUrU6dOxeFw4HK5ePFFq0RMmTKFMWPGkJSUxIIFC2r9vPWdqvbWW29l+/bt9O/fH2MMbdq04cMPP2ThwoU89dRTuFwuIiMjeeON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", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "plt.plot(log10_alphas, red_chi2s, '.--', label = 'training')\n", + "plt.plot(log10_alphas, red_chi2s_test1, '.--', label = 'test frames')\n", + "plt.plot(log10_alphas, red_chi2s_test2, '.--', label = 'test observables')\n", + "\n", + "plt.legend()\n", + "plt.title('$\\chi^2$')\n", + "plt.xlabel(r'$\\log_{10}\\alpha$')\n", + "plt.grid()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### d. Determine optimal hyper parameter $\\alpha$ through cross validation (automatic optimization)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Rather than performing a scan over the hyper-parameter $\\alpha$, we now minimize the $\\chi^2$ on the test set (computed at optimal parameters obtained in training) with respect to $\\alpha$." + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [], + "source": [ + "starting_alpha = 1e2" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "by default, which_set = 'validation' (rather than 'test' or 'training'), namely evaluate $\\chi^2$ on same observables as training but new frames of the trajectory" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Input random_state employed both for test_obs and test_frames\n", + "Input random_state employed both for test_obs and test_frames\n", + "log10 hyperpars: [DeviceArray(2., dtype=float64)] ['alpha']\n", + "tot chi2: 179.99748935099893\n", + "tot gradient: [164.58212585]\n", + "log10 hyperpars: [2.] ['alpha']\n", + "tot chi2: 179.99748935099893\n", + "tot gradient: [164.58212585]\n", + "log10 hyperpars: [0.99] ['alpha']\n", + "tot chi2: 425.00547800983844\n", + "tot gradient: [-1826.18114941]\n", + "log10 hyperpars: [1.6329151] ['alpha']\n", + "tot chi2: 126.70090220074779\n", + "tot gradient: [103.53961778]\n", + "log10 hyperpars: [1.01026981] ['alpha']\n", + "tot chi2: 390.70284260061294\n", + "tot gradient: [-1677.36149732]\n", + "log10 hyperpars: [1.50044572] ['alpha']\n", + "tot chi2: 117.71717904095316\n", + "tot gradient: [21.76320493]\n", + "log10 hyperpars: [1.46519156] ['alpha']\n", + "tot chi2: 117.56919878055263\n", + "tot gradient: [-12.86928899]\n", + "log10 hyperpars: [1.47829186] ['alpha']\n", + "tot chi2: 117.4288039078597\n", + "tot gradient: [1.38731611]\n", + "log10 hyperpars: [1.47701706] ['alpha']\n", + "tot chi2: 117.45250335217828\n", + "tot gradient: [-0.28903419]\n", + "log10 hyperpars: [1.4782765] ['alpha']\n", + "tot chi2: 117.42846317524896\n", + "tot gradient: [1.37390444]\n", + "log10 hyperpars: [1.47827633] ['alpha']\n", + "tot chi2: 117.42845942991592\n", + "tot gradient: [1.37375855]\n", + "log10 hyperpars: [1.47764669] ['alpha']\n", + "tot chi2: 117.4146600480089\n", + "tot gradient: [0.85890873]\n", + "log10 hyperpars: [1.47659801] ['alpha']\n", + "tot chi2: 117.4074816543556\n", + "tot gradient: [-0.31450289]\n" + ] + } + ], + "source": [ + "mini = hyper_minimizer(data, starting_alpha = starting_alpha, random_states = 2, which_set = 'validation', gtol = 0.5)" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + " fun: 117.4074816543556\n", + " hess_inv: array([[0.00122096]])\n", + " jac: array([-0.31450289])\n", + " message: 'Optimization terminated successfully.'\n", + " nfev: 12\n", + " nit: 6\n", + " njev: 12\n", + " status: 0\n", + " success: True\n", + " x: array([1.47659801])" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "mini" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "x = mini['intermediate'].log10_hyperpars\n", + "y = mini['intermediate'].tot_chi2\n", + "\n", + "plt.plot(x,y,'.--')\n", + "plt.xlabel(r'$\\log_{10}\\alpha$')\n", + "plt.ylabel('$\\chi^2$')\n", + "plt.grid()" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [], + "source": [ + "optimal_alpha = 10**(mini.x)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The optimal hyper-parameter is $\\alpha \\simeq 10^{1.09}$. We can now minimize the loss function on the whole data set in order to get more statistically robust results. Provided the estimation of the optimal hyper-parameters is robust enough, we can load the full data set without stride (it will take more time)." + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "loading data from directory...\n", + "loading AAAA\n", + "loading CAAU\n", + "done\n" + ] + } + ], + "source": [ + "data = load_data(infos)" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": {}, + "outputs": [], + "source": [ + "Result = minimizer(data, alpha = optimal_alpha)" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'loss': DeviceArray([40.16542256], dtype=float64),\n", + " 'min_lambdas': {'AAAA': {'NOEs': DeviceArray([ 150.73992103, -67.29285849, 105.62119535, 118.96876618,\n", + " -74.04540148, -102.87904109, 37.76755821, -23.09866382,\n", + " 10.40497866, -30.11556459, 47.2407546 , 97.55062434,\n", + " 1033.66361603, -76.13445458, -119.69251423, 182.8412221 ,\n", + " -41.69269727, 349.17365518, -39.84692591, 15.85069759,\n", + " 91.86738887, 23.85272636, -97.62859541, 614.99665463,\n", + " 154.34680669, 303.89155513, 402.68529294, 191.27067489,\n", + " -1.15469979, -20.86065066, -19.20484019, -155.03477145,\n", + " 169.41074214, 62.59969065, 106.82633384, 347.63227384], dtype=float64)},\n", + " 'CAAU': {'NOEs': DeviceArray([ 116.99604616, 28.40984552, 54.57910406, -160.33853852,\n", + " 7.83028943, 63.83780474, 502.50050988, -83.25424726,\n", + " -11.50902254, -123.38260704, 135.89938945, 2.12502521,\n", + " 595.11278806, 419.63838571, 43.21470051, -99.94908489,\n", + " -185.66864586, 14.28015308, 44.53595355, 29.13265554,\n", + " -19.60196942, 675.61805078, 168.1945468 , -81.70109531,\n", + " -15.01124509, -193.18181435, -114.6581109 , -39.24461509,\n", + " -25.90665384, -6.54059906, -14.92124284, -90.26485774,\n", + " -16.43570085, 100.58325451, -159.15313706, 6.0811717 ,\n", + " -63.53260822, -59.03742151, 30.93131767], dtype=float64)}},\n", + " 'minis': {'AAAA': fun: -0.7540170200156602\n", + " hess_inv: array([[ 9.65977371e-01, 3.41969151e-03, 1.15405570e-02, ...,\n", + " 4.91140967e-03, 3.99700499e-03, 3.19063022e-02],\n", + " [ 3.41969151e-03, 2.39299615e-01, -2.71638128e-02, ...,\n", + " 1.46149220e-02, 1.11411649e-03, 1.59682152e-02],\n", + " [ 1.15405570e-02, -2.71638128e-02, 1.02543300e+00, ...,\n", + " 9.21195591e-03, -3.08241246e-03, 1.36736729e-02],\n", + " ...,\n", + " [ 4.91140967e-03, 1.46149220e-02, 9.21195591e-03, ...,\n", + " 1.02149860e+00, 8.84178381e-03, 5.88241274e-02],\n", + " [ 3.99700499e-03, 1.11411649e-03, -3.08241246e-03, ...,\n", + " 8.84178381e-03, 6.34131504e-02, 1.35745843e-02],\n", + " [ 3.19063022e-02, 1.59682152e-02, 1.36736729e-02, ...,\n", + " 5.88241274e-02, 1.35745843e-02, 1.27940286e+00]])\n", + " jac: array([-2.09407588e-04, 6.80579830e-05, 3.61852141e-05, -8.27944185e-07,\n", + " 2.70374008e-05, 6.36518951e-06, 3.69958470e-05, 2.02661377e-04,\n", + " 1.99784004e-04, -3.56322165e-04, 4.17092967e-04, -2.06739859e-05,\n", + " -6.23802708e-06, 1.85189667e-04, 7.72879994e-05, -1.67252512e-04,\n", + " -1.13493420e-04, 4.55458450e-07, -1.02660865e-06, 1.39301039e-04,\n", + " -1.31709359e-04, -4.81741813e-05, 1.58799683e-04, -1.35743258e-04,\n", + " 4.90332692e-04, -5.96095865e-06, -1.37010823e-04, -6.87931230e-05,\n", + " -1.63306348e-04, 1.99075774e-04, -6.58534625e-04, -3.08307057e-04,\n", + " 1.53592624e-04, 5.37378449e-06, -1.39565693e-04, 1.32414455e-04])\n", + " message: 'Optimization terminated successfully.'\n", + " nfev: 30\n", + " nit: 22\n", + " njev: 30\n", + " status: 0\n", + " success: True\n", + " x: array([ 0.37480251, -0.01632443, 0.1399376 , 0.28324255, -0.01953471,\n", + " -0.01779841, 0.07583434, -0.01131472, 0.03733577, -0.03353595,\n", + " 0.14172525, 0.31206576, 0.74417456, -0.05412359, -0.01187546,\n", + " 0.23433167, -0.00936471, 0.44731308, -0.02975736, 0.04147364,\n", + " 0.51215563, 0.09357097, -0.03639546, 0.07810606, 0.09198742,\n", + " 0.51492978, 0.0950051 , 0.0820656 , -0.00281248, -0.05748418,\n", + " -0.03445151, -0.04597214, 0.25400019, 0.25577508, 0.01219846,\n", + " 0.63701082]),\n", + " 'CAAU': fun: -0.5864444489433396\n", + " hess_inv: array([[ 1.00874475e+00, -1.22650608e-03, -1.65081611e-02, ...,\n", + " -1.18697487e-03, -4.48193794e-03, -1.10630904e-02],\n", + " [-1.22650608e-03, 8.95341553e-01, -1.04479853e-02, ...,\n", + " -2.07719057e-03, -1.38801254e-03, -9.22369394e-05],\n", + " [-1.65081611e-02, -1.04479853e-02, 9.12281598e-01, ...,\n", + " -6.65986720e-03, -3.92370559e-03, -8.08627247e-02],\n", + " ...,\n", + " [-1.18697487e-03, -2.07719057e-03, -6.65986720e-03, ...,\n", + " 8.50545795e-01, -1.25239477e-01, 1.05909098e-02],\n", + " [-4.48193794e-03, -1.38801254e-03, -3.92370559e-03, ...,\n", + " -1.25239477e-01, 1.13237463e-01, 6.22684840e-03],\n", + " [-1.10630904e-02, -9.22369394e-05, -8.08627247e-02, ...,\n", + " 1.05909098e-02, 6.22684840e-03, 8.68133079e-01]])\n", + " jac: array([-1.76646694e-06, 1.22259346e-04, -5.33832749e-05, 3.55339012e-05,\n", + " 8.67848221e-05, 4.62211734e-06, -6.65755358e-05, 4.36767053e-05,\n", + " 1.29217658e-04, -2.53155204e-05, 1.11163801e-05, 2.62382161e-04,\n", + " -3.85985327e-05, -1.77159481e-05, -8.11789476e-05, 6.96114069e-05,\n", + " 1.25616178e-04, 5.58352555e-05, -1.07683550e-05, 1.73472811e-05,\n", + " -3.18667357e-04, -8.66797506e-05, 4.10261232e-06, -6.32763028e-05,\n", + " -1.27881116e-04, 7.65683527e-05, -1.64742057e-05, 1.36230391e-05,\n", + " 5.74449064e-07, 3.47328333e-05, -1.07969375e-04, 4.03399982e-05,\n", + " -2.13514710e-04, -4.09909498e-05, 3.01231451e-04, -1.09743387e-04,\n", + " 1.87418409e-05, -2.33520725e-05, -4.25511279e-06])\n", + " message: 'Optimization terminated successfully.'\n", + " nfev: 37\n", + " nit: 26\n", + " njev: 37\n", + " status: 0\n", + " success: True\n", + " x: array([ 2.12115247e-01, 3.63329057e-03, 1.28810481e-01, -1.80979096e-02,\n", + " 1.56450180e-02, 2.22159093e-01, 8.17761376e-02, -2.44642958e-02,\n", + " -2.16759745e-03, -1.09436233e-02, 1.34500693e-01, 3.52428736e-04,\n", + " 9.44240898e-02, 1.02790375e+00, 1.02794062e-01, -2.28861919e-02,\n", + " -4.50764278e-02, 7.90871714e-02, 1.53860544e-01, 2.07053666e-01,\n", + " -2.73498030e-03, 6.51927696e-02, 2.13254236e-01, -2.26594280e-02,\n", + " -2.45124319e-02, -2.35721698e-02, -1.31984080e-02, -4.09962704e-02,\n", + " -4.72763613e-02, -2.00290518e-02, -3.55548132e-02, -3.06153692e-02,\n", + " -2.51825262e-02, 1.41719674e-02, -3.01285642e-02, 4.75222228e-03,\n", + " -1.93682604e-02, -8.00862369e-03, 3.30661229e-02])},\n", + " 'time': 13.7270987033844,\n", + " 'D_KL_alpha': {'AAAA': DeviceArray(0.28522985, dtype=float64),\n", + " 'CAAU': DeviceArray(0.22425453, dtype=float64)},\n", + " 'abs_difference': {'AAAA': DeviceArray([1.35729886e-05], dtype=float64),\n", + " 'CAAU': DeviceArray([1.40357514e-06], dtype=float64)},\n", + " 'av_g': {'AAAA': {'NOEs': DeviceArray([1.71474660e-03, 7.16026178e-05, 4.20058080e-04,\n", + " 6.73475780e-04, 1.02420700e-04, 8.73437143e-05,\n", + " 8.00928980e-04, 1.29939079e-04, 1.62549093e-03,\n", + " 5.86928947e-04, 2.42849266e-03, 1.04432026e-03,\n", + " 1.53173110e-04, 1.99174382e-04, 9.75269914e-05,\n", + " 6.12622669e-04, 8.42520342e-05, 4.00250958e-04,\n", + " 5.18221320e-04, 2.31210122e-03, 2.27286253e-03,\n", + " 2.05932848e-03, 1.73829162e-04, 1.15183276e-04,\n", + " 2.94096608e-04, 5.85277158e-04, 5.15274563e-05,\n", + " 1.10622006e-04, 2.04546035e-03, 7.28693390e-04,\n", + " 8.34644247e-04, 1.95037152e-04, 1.94587205e-04,\n", + " 1.98525555e-03, 1.14680282e-04, 6.21460840e-04], dtype=float64)},\n", + " 'CAAU': {'NOEs': DeviceArray([6.69927171e-04, 3.78729125e-05, 1.11475742e-03,\n", + " 8.29049402e-05, 1.00700250e-03, 1.99739609e-03,\n", + " 1.57515094e-04, 6.29420413e-05, 9.03881112e-05,\n", + " 9.04368556e-05, 5.55233834e-04, 7.25611077e-05,\n", + " 1.10963833e-04, 7.52112599e-04, 1.04396371e-03,\n", + " 1.70111425e-04, 1.77428404e-04, 3.20466283e-03,\n", + " 1.80827322e-03, 3.85364788e-03, 1.31259446e-04,\n", + " 9.55364530e-05, 5.94567106e-04, 1.00584384e-04,\n", + " 7.86114959e-04, 5.13221092e-05, 5.93833128e-05,\n", + " 4.87634794e-04, 1.11783168e-03, 2.29535666e-03,\n", + " 1.22575728e-03, 1.83537622e-04, 8.76079863e-04,\n", + " 1.33783613e-04, 5.77159747e-05, 2.91058312e-04,\n", + " 1.28357145e-04, 6.23324149e-05, 5.15058036e-04], dtype=float64)}},\n", + " 'chi2': {'AAAA': {'NOEs': DeviceArray(28.09338913, dtype=float64)},\n", + " 'CAAU': {'NOEs': DeviceArray(21.70523108, dtype=float64)}},\n", + " 'logZ_new': {'AAAA': DeviceArray(-2.18429709, dtype=float64),\n", + " 'CAAU': DeviceArray(-1.26236657, dtype=float64)},\n", + " 'weights_new': {'AAAA': DeviceArray([1.54947721e-06, 1.15003775e-06, 9.24145228e-07, ...,\n", + " 2.73630288e-06, 2.21980488e-06, 6.72827182e-07], dtype=float64),\n", + " 'CAAU': DeviceArray([3.44748291e-07, 8.23605258e-07, 1.83757768e-06, ...,\n", + " 5.07711387e-07, 7.35881437e-07, 1.28982623e-06], dtype=float64)}}" + ] + }, + "execution_count": 21, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "vars(Result)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Look at section b) for analysis of Result." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### do all together" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "loading data from directory...\n", + "loading AAAA\n", + "loading CAAU\n", + "done\n", + "\n", + "search for optimal hyperparameters ...\n", + "Input random_state employed both for test_obs and test_frames\n", + "Input random_state employed both for test_obs and test_frames\n", + "log10 hyperpars: [DeviceArray(2., dtype=float64)] ['alpha']\n", + "tot chi2: 179.99748935099893\n", + "tot gradient: [164.58212585]\n", + "log10 hyperpars: [2.] ['alpha']\n", + "tot chi2: 179.99748935099893\n", + "tot gradient: [164.58212585]\n", + "log10 hyperpars: [0.99] ['alpha']\n", + "tot chi2: 425.00547800983844\n", + "tot gradient: [-1826.18114941]\n", + "log10 hyperpars: [1.6329151] ['alpha']\n", + "tot chi2: 126.70090220074779\n", + "tot gradient: [103.53961778]\n", + "log10 hyperpars: [1.01026981] ['alpha']\n", + "tot chi2: 390.70284260061294\n", + "tot gradient: [-1677.36149732]\n", + "log10 hyperpars: [1.50044572] ['alpha']\n", + "tot chi2: 117.71717904095316\n", + "tot gradient: [21.76320493]\n", + "log10 hyperpars: [1.46519156] ['alpha']\n", + "tot chi2: 117.56919878055263\n", + "tot gradient: [-12.86928899]\n", + "log10 hyperpars: [1.47829186] ['alpha']\n", + "tot chi2: 117.4288039078597\n", + "tot gradient: [1.38731611]\n", + "log10 hyperpars: [1.47701706] ['alpha']\n", + "tot chi2: 117.45250335217828\n", + "tot gradient: [-0.28903419]\n", + "log10 hyperpars: [1.4782765] ['alpha']\n", + "tot chi2: 117.42846317524896\n", + "tot gradient: [1.37390444]\n", + "log10 hyperpars: [1.47827633] ['alpha']\n", + "tot chi2: 117.42845942991592\n", + "tot gradient: [1.37375855]\n", + "log10 hyperpars: [1.47764669] ['alpha']\n", + "tot chi2: 117.4146600480089\n", + "tot gradient: [0.85890873]\n", + "log10 hyperpars: [1.47659801] ['alpha']\n", + "tot chi2: 117.4074816543556\n", + "tot gradient: [-0.31450289]\n", + "\n", + "optimal hyperparameters: alpha: 29.963876982768817 \n", + "\n", + "refinement with optimal hyperparameters on the full data set\n", + "loading data from directory...\n", + "loading AAAA\n", + "loading CAAU\n", + "done\n" + ] + } + ], + "source": [ + "Result = MDRefinement(infos, stride = stride, starting_alpha = 1e2, random_states = 2, which_set = 'validation', gtol = 0.5)" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'loss': DeviceArray(40.16542256, dtype=float64),\n", + " 'min_lambdas': {'AAAA': {'NOEs': DeviceArray([ 150.73992103, -67.29285849, 105.62119535, 118.96876618,\n", + " -74.04540148, -102.87904109, 37.76755821, -23.09866382,\n", + " 10.40497866, -30.11556459, 47.2407546 , 97.55062434,\n", + " 1033.66361603, -76.13445458, -119.69251423, 182.8412221 ,\n", + " -41.69269727, 349.17365518, -39.84692591, 15.85069759,\n", + " 91.86738887, 23.85272636, -97.62859541, 614.99665463,\n", + " 154.34680669, 303.89155513, 402.68529294, 191.27067489,\n", + " -1.15469979, -20.86065066, -19.20484019, -155.03477145,\n", + " 169.41074214, 62.59969065, 106.82633384, 347.63227384], dtype=float64)},\n", + " 'CAAU': {'NOEs': DeviceArray([ 116.99604616, 28.40984552, 54.57910406, -160.33853852,\n", + " 7.83028943, 63.83780474, 502.50050988, -83.25424726,\n", + " -11.50902254, -123.38260704, 135.89938945, 2.12502521,\n", + " 595.11278806, 419.63838571, 43.21470051, -99.94908489,\n", + " -185.66864586, 14.28015308, 44.53595355, 29.13265554,\n", + " -19.60196942, 675.61805078, 168.1945468 , -81.70109531,\n", + " -15.01124509, -193.18181435, -114.6581109 , -39.24461509,\n", + " -25.90665384, -6.54059906, -14.92124284, -90.26485774,\n", + " -16.43570085, 100.58325451, -159.15313706, 6.0811717 ,\n", + " -63.53260822, -59.03742151, 30.93131767], dtype=float64)}},\n", + " 'minis': {'AAAA': fun: -0.7540170200156602\n", + " hess_inv: array([[ 9.65977371e-01, 3.41969151e-03, 1.15405570e-02, ...,\n", + " 4.91140967e-03, 3.99700499e-03, 3.19063022e-02],\n", + " [ 3.41969151e-03, 2.39299615e-01, -2.71638128e-02, ...,\n", + " 1.46149220e-02, 1.11411649e-03, 1.59682152e-02],\n", + " [ 1.15405570e-02, -2.71638128e-02, 1.02543300e+00, ...,\n", + " 9.21195591e-03, -3.08241246e-03, 1.36736729e-02],\n", + " ...,\n", + " [ 4.91140967e-03, 1.46149220e-02, 9.21195591e-03, ...,\n", + " 1.02149860e+00, 8.84178381e-03, 5.88241274e-02],\n", + " [ 3.99700499e-03, 1.11411649e-03, -3.08241246e-03, ...,\n", + " 8.84178381e-03, 6.34131504e-02, 1.35745843e-02],\n", + " [ 3.19063022e-02, 1.59682152e-02, 1.36736729e-02, ...,\n", + " 5.88241274e-02, 1.35745843e-02, 1.27940286e+00]])\n", + " jac: array([-2.09407588e-04, 6.80579830e-05, 3.61852141e-05, -8.27944185e-07,\n", + " 2.70374008e-05, 6.36518951e-06, 3.69958470e-05, 2.02661377e-04,\n", + " 1.99784004e-04, -3.56322165e-04, 4.17092967e-04, -2.06739859e-05,\n", + " -6.23802708e-06, 1.85189667e-04, 7.72879994e-05, -1.67252512e-04,\n", + " -1.13493420e-04, 4.55458450e-07, -1.02660865e-06, 1.39301039e-04,\n", + " -1.31709359e-04, -4.81741813e-05, 1.58799683e-04, -1.35743258e-04,\n", + " 4.90332692e-04, -5.96095865e-06, -1.37010823e-04, -6.87931230e-05,\n", + " -1.63306348e-04, 1.99075774e-04, -6.58534625e-04, -3.08307057e-04,\n", + " 1.53592624e-04, 5.37378449e-06, -1.39565693e-04, 1.32414455e-04])\n", + " message: 'Optimization terminated successfully.'\n", + " nfev: 30\n", + " nit: 22\n", + " njev: 30\n", + " status: 0\n", + " success: True\n", + " x: array([ 0.37480251, -0.01632443, 0.1399376 , 0.28324255, -0.01953471,\n", + " -0.01779841, 0.07583434, -0.01131472, 0.03733577, -0.03353595,\n", + " 0.14172525, 0.31206576, 0.74417456, -0.05412359, -0.01187546,\n", + " 0.23433167, -0.00936471, 0.44731308, -0.02975736, 0.04147364,\n", + " 0.51215563, 0.09357097, -0.03639546, 0.07810606, 0.09198742,\n", + " 0.51492978, 0.0950051 , 0.0820656 , -0.00281248, -0.05748418,\n", + " -0.03445151, -0.04597214, 0.25400019, 0.25577508, 0.01219846,\n", + " 0.63701082]),\n", + " 'CAAU': fun: -0.5864444489433396\n", + " hess_inv: array([[ 1.00874475e+00, -1.22650608e-03, -1.65081611e-02, ...,\n", + " -1.18697487e-03, -4.48193794e-03, -1.10630904e-02],\n", + " [-1.22650608e-03, 8.95341553e-01, -1.04479853e-02, ...,\n", + " -2.07719057e-03, -1.38801254e-03, -9.22369394e-05],\n", + " [-1.65081611e-02, -1.04479853e-02, 9.12281598e-01, ...,\n", + " -6.65986720e-03, -3.92370559e-03, -8.08627247e-02],\n", + " ...,\n", + " [-1.18697487e-03, -2.07719057e-03, -6.65986720e-03, ...,\n", + " 8.50545795e-01, -1.25239477e-01, 1.05909098e-02],\n", + " [-4.48193794e-03, -1.38801254e-03, -3.92370559e-03, ...,\n", + " -1.25239477e-01, 1.13237463e-01, 6.22684840e-03],\n", + " [-1.10630904e-02, -9.22369394e-05, -8.08627247e-02, ...,\n", + " 1.05909098e-02, 6.22684840e-03, 8.68133079e-01]])\n", + " jac: array([-1.76646694e-06, 1.22259346e-04, -5.33832749e-05, 3.55339012e-05,\n", + " 8.67848221e-05, 4.62211734e-06, -6.65755358e-05, 4.36767053e-05,\n", + " 1.29217658e-04, -2.53155204e-05, 1.11163801e-05, 2.62382161e-04,\n", + " -3.85985327e-05, -1.77159481e-05, -8.11789476e-05, 6.96114069e-05,\n", + " 1.25616178e-04, 5.58352555e-05, -1.07683550e-05, 1.73472811e-05,\n", + " -3.18667357e-04, -8.66797506e-05, 4.10261232e-06, -6.32763028e-05,\n", + " -1.27881116e-04, 7.65683527e-05, -1.64742057e-05, 1.36230391e-05,\n", + " 5.74449064e-07, 3.47328333e-05, -1.07969375e-04, 4.03399982e-05,\n", + " -2.13514710e-04, -4.09909498e-05, 3.01231451e-04, -1.09743387e-04,\n", + " 1.87418409e-05, -2.33520725e-05, -4.25511279e-06])\n", + " message: 'Optimization terminated successfully.'\n", + " nfev: 37\n", + " nit: 26\n", + " njev: 37\n", + " status: 0\n", + " success: True\n", + " x: array([ 2.12115247e-01, 3.63329057e-03, 1.28810481e-01, -1.80979096e-02,\n", + " 1.56450180e-02, 2.22159093e-01, 8.17761376e-02, -2.44642958e-02,\n", + " -2.16759745e-03, -1.09436233e-02, 1.34500693e-01, 3.52428736e-04,\n", + " 9.44240898e-02, 1.02790375e+00, 1.02794062e-01, -2.28861919e-02,\n", + " -4.50764278e-02, 7.90871714e-02, 1.53860544e-01, 2.07053666e-01,\n", + " -2.73498030e-03, 6.51927696e-02, 2.13254236e-01, -2.26594280e-02,\n", + " -2.45124319e-02, -2.35721698e-02, -1.31984080e-02, -4.09962704e-02,\n", + " -4.72763613e-02, -2.00290518e-02, -3.55548132e-02, -3.06153692e-02,\n", + " -2.51825262e-02, 1.41719674e-02, -3.01285642e-02, 4.75222228e-03,\n", + " -1.93682604e-02, -8.00862369e-03, 3.30661229e-02])},\n", + " 'time': 12.676732778549194,\n", + " 'D_KL_alpha': {'AAAA': DeviceArray(0.28522985, dtype=float64),\n", + " 'CAAU': DeviceArray(0.22425453, dtype=float64)},\n", + " 'abs_difference': {'AAAA': DeviceArray(1.35729886e-05, dtype=float64),\n", + " 'CAAU': DeviceArray(1.40357514e-06, dtype=float64)},\n", + " 'av_g': {'AAAA': {'NOEs': DeviceArray([1.71474660e-03, 7.16026178e-05, 4.20058080e-04,\n", + " 6.73475780e-04, 1.02420700e-04, 8.73437143e-05,\n", + " 8.00928980e-04, 1.29939079e-04, 1.62549093e-03,\n", + " 5.86928947e-04, 2.42849266e-03, 1.04432026e-03,\n", + " 1.53173110e-04, 1.99174382e-04, 9.75269914e-05,\n", + " 6.12622669e-04, 8.42520342e-05, 4.00250958e-04,\n", + " 5.18221320e-04, 2.31210122e-03, 2.27286253e-03,\n", + " 2.05932848e-03, 1.73829162e-04, 1.15183276e-04,\n", + " 2.94096608e-04, 5.85277158e-04, 5.15274563e-05,\n", + " 1.10622006e-04, 2.04546035e-03, 7.28693390e-04,\n", + " 8.34644247e-04, 1.95037152e-04, 1.94587205e-04,\n", + " 1.98525555e-03, 1.14680282e-04, 6.21460840e-04], dtype=float64)},\n", + " 'CAAU': {'NOEs': DeviceArray([6.69927171e-04, 3.78729125e-05, 1.11475742e-03,\n", + " 8.29049402e-05, 1.00700250e-03, 1.99739609e-03,\n", + " 1.57515094e-04, 6.29420413e-05, 9.03881112e-05,\n", + " 9.04368556e-05, 5.55233834e-04, 7.25611077e-05,\n", + " 1.10963833e-04, 7.52112599e-04, 1.04396371e-03,\n", + " 1.70111425e-04, 1.77428404e-04, 3.20466283e-03,\n", + " 1.80827322e-03, 3.85364788e-03, 1.31259446e-04,\n", + " 9.55364530e-05, 5.94567106e-04, 1.00584384e-04,\n", + " 7.86114959e-04, 5.13221092e-05, 5.93833128e-05,\n", + " 4.87634794e-04, 1.11783168e-03, 2.29535666e-03,\n", + " 1.22575728e-03, 1.83537622e-04, 8.76079863e-04,\n", + " 1.33783613e-04, 5.77159747e-05, 2.91058312e-04,\n", + " 1.28357145e-04, 6.23324149e-05, 5.15058036e-04], dtype=float64)}},\n", + " 'chi2': {'AAAA': {'NOEs': DeviceArray(28.09338913, dtype=float64)},\n", + " 'CAAU': {'NOEs': DeviceArray(21.70523108, dtype=float64)}},\n", + " 'logZ_new': {'AAAA': DeviceArray(-2.18429709, dtype=float64),\n", + " 'CAAU': DeviceArray(-1.26236657, dtype=float64)},\n", + " 'weights_new': {'AAAA': DeviceArray([1.54947721e-06, 1.15003775e-06, 9.24145228e-07, ...,\n", + " 2.73630288e-06, 2.21980488e-06, 6.72827182e-07], dtype=float64),\n", + " 'CAAU': DeviceArray([3.44748291e-07, 8.23605258e-07, 1.83757768e-06, ...,\n", + " 5.07711387e-07, 7.35881437e-07, 1.28982623e-06], dtype=float64)}}" + ] + }, + "execution_count": 23, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "vars(Result)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 2. Force-field refinement" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### a. Load data" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Load experimental data, observables and forward model as previously done.\n", + "\n", + "Load also force-field correction terms and corresponding functional form." + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [], + "source": [ + "infos = {}\n", + "\n", + "# Define global properties, valid for all the systems:\n", + "infos['global'] = {}\n", + "infos['global']['path_directory'] = 'DATA'\n", + "infos['global']['system_names'] = ['AAAA','CAAU']\n", + "\n", + "# Then, define properties which are specific of each system, like experimental data and observables\n", + "# If some properties are the same for all the systems, you can store them just once in infos['global']\n", + "infos['global']['g_exp'] = ['backbone1_gamma_3J', 'backbone2_beta_epsilon_3J', 'sugar_3J', 'NOEs']\n", + "infos['global']['forward_qs'] = ['backbone1_gamma','backbone2_beta_epsilon','sugar']\n", + "infos['global']['obs'] = ['NOEs']\n", + "infos['global']['forward_coeffs'] = 'original_fm_coeffs'\n", + "\n", + "# Select the stride for the frames\n", + "stride = 1000" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [], + "source": [ + "def forward_model_fun(fm_coeffs, forward_qs, selected_obs = None):\n", + "\n", + " # 1. compute the cosine (which is the quantity you need in the forward model;\n", + " # you could do this just once before loading data)\n", + " forward_qs_cos = {}\n", + "\n", + " for type_name in forward_qs.keys():\n", + " forward_qs_cos[type_name] = np.cos(forward_qs[type_name])\n", + "\n", + " # if you have selected_obs, compute only the corresponding observables\n", + " if selected_obs is not None:\n", + " for type_name in forward_qs.keys():\n", + " forward_qs_cos[type_name] = forward_qs_cos[type_name][:,selected_obs[type_name+'_3J']]\n", + "\n", + " # 2. compute observables (forward_qs_out) through forward model\n", + " forward_qs_out = {\n", + " 'backbone1_gamma_3J': fm_coeffs[0]*forward_qs_cos['backbone1_gamma']**2-fm_coeffs[1]*forward_qs_cos['backbone1_gamma']+fm_coeffs[2],\n", + " 'backbone2_beta_epsilon_3J': fm_coeffs[3]*forward_qs_cos['backbone2_beta_epsilon']**2-fm_coeffs[4]*forward_qs_cos['backbone2_beta_epsilon']+fm_coeffs[5],\n", + " 'sugar_3J': fm_coeffs[6]*forward_qs_cos['sugar']**2-fm_coeffs[7]*forward_qs_cos['sugar']+fm_coeffs[8] }\n", + "\n", + " return forward_qs_out" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "same forward-model function for each system, so put it in infos['global']" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [], + "source": [ + "infos['global']['forward_model'] = forward_model_fun" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now, the force-field correction terms: we selected (for each molecule)\n", + "\\begin{equation}\n", + "\\beta\\Delta V = \\sum_{i}\\Bigl[\\phi_1\\cos\\alpha_i + \\phi_2\\sin\\alpha_i + \\phi_3 \\cos \\zeta_i + \\phi_4 \\sin\\zeta_i\\Bigr]\n", + "\\end{equation}\n", + "where the sum is over residues. Since numpy arrays ff_terms have columns\n", + "\n", + "['sinalpha[0]', 'sinalpha[1]', 'sinalpha[2]', 'sinzeta[0]', 'sinzeta[1]', 'sinzeta[2]', 'cosalpha[0]', 'cosalpha[1]', 'cosalpha[2]', 'coszeta[0]', 'coszeta[1]', 'coszeta[2]'],\n", + "\n", + "such correction is defined by the following function (use jax.numpy)." + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [], + "source": [ + "import jax.numpy as jnp" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [], + "source": [ + "def ff_correction(pars, f):\n", + " out = jnp.matmul(pars, (f[:,[0,6,3,9]]+f[:,[1,7,4,10]]+f[:,[2,8,5,11]]).T)\n", + " return out" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": {}, + "outputs": [], + "source": [ + "infos['global']['ff_correction'] = ff_correction\n", + "infos['global']['names_ff_pars'] = ['sin alpha', 'cos alpha', 'sin zeta', 'cos zeta']" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "loading data from directory...\n", + "loading AAAA\n", + "loading CAAU\n", + "done\n" + ] + } + ], + "source": [ + "data = load_data(infos, stride = stride)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now, define the regularization for the force-field refinement. We can choose among 'plain l2' (acting on the coefficients) or 'KL divergence' (acting directly on the ensemble)." + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [], + "source": [ + "regularization = {'force_field_reg': 'KL divergence'}" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### b. Minimize the loss function and analyse the results\n", + "for a single choice of the hyper-parameter $\\beta$" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [], + "source": [ + "# use function minimizer with selected data and alpha as input\n", + "Result = minimizer(data, regularization = regularization, beta = 1)" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "dict_keys(['loss', 'pars', 'mini', 'intermediates', 'time', 'reg_ff', 'av_g', 'chi2', 'weights_new', 'logZ_new'])" + ] + }, + "execution_count": 26, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "vars(Result).keys()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Besides quantities described in the previous section (such as: **av_g**, **chi2**, **weights_new**, **logZ_new**), we now have:\n", + "- output of minimization **mini**;\n", + "- optimal force-field correction parameters **pars**;\n", + "- value of force-field regularization **reg_ff**." + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([ 0.19294133, -0.316137 , 0.30447543, 0.22680487])" + ] + }, + "execution_count": 19, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "Result.pars" + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + " fun: 285.0834500891217\n", + " hess_inv: array([[ 5.20491478e-02, -8.89295688e-02, -5.00415048e-02,\n", + " -2.23536762e-03],\n", + " [-8.89295688e-02, 1.12747644e+00, 1.16060221e-01,\n", + " -1.68801647e-02],\n", + " [-5.00415048e-02, 1.16060221e-01, 5.61942163e-02,\n", + " 7.66569900e-04],\n", + " [-2.23536762e-03, -1.68801647e-02, 7.66569900e-04,\n", + " 2.57011281e-02]])\n", + " jac: array([-4.58613412e-05, -3.04716135e-06, -7.24710956e-05, -5.68219475e-05])\n", + " message: 'Optimization terminated successfully.'\n", + " nfev: 36\n", + " nit: 26\n", + " njev: 36\n", + " status: 0\n", + " success: True\n", + " x: array([ 0.46316927, -3.50501963, -0.31937378, 1.15776919])" + ] + }, + "execution_count": 28, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "Result.mini" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'AAAA': DeviceArray(1.25078007, dtype=float64),\n", + " 'CAAU': DeviceArray(1.5893921, dtype=float64)}" + ] + }, + "execution_count": 27, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "Result.reg_ff" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### c. Determine optimal hyper parameter $\\beta$ through cross validation (scan over $\\beta$)" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Input random_state employed both for test_obs and test_frames\n" + ] + } + ], + "source": [ + "data_train, data_test, test_obs, test_frames = select_traintest(data, random_state = 2)" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [], + "source": [ + "log10_betas = np.arange(-2, 7, 0.5)\n", + "\n", + "Results = {}\n", + "\n", + "for log10_beta in log10_betas:\n", + " print(log10_beta)\n", + "\n", + " beta = 10**np.float64(log10_beta)\n", + " Results[log10_beta] = minimizer(data_train, regularization = regularization, beta = beta, data_test = data_test)\n", + "\n", + " print(Results[log10_beta].loss)\n", + "\n", + " clear_output()" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "loss = [Results[log10_beta].loss for log10_beta in log10_betas]\n", + "loss_test = [Results[log10_beta].loss_test for log10_beta in log10_betas]\n", + "\n", + "plt.title('loss function')\n", + "plt.plot(log10_betas, loss, '.--', label = 'training')\n", + "plt.plot(log10_betas, loss_test, '.--', label = 'test')\n", + "plt.xlabel(r'$\\log_{10}\\beta$')\n", + "plt.legend()\n", + "plt.grid()" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [], + "source": [ + "chi2s = [np.sum(unwrap_dict(Results[log10_beta].chi2)) for log10_beta in log10_betas]\n", + "n_obs_train = data_train['global'].tot_n_experiments(data_train)\n", + "\n", + "red_chi2s = np.array(chi2s)/n_obs_train\n", + "\n", + "chi2s_test1 = [np.sum(unwrap_dict(Results[log10_beta].chi2_test)) for log10_beta in log10_betas] # .chi2_test\n", + "red_chi2s_test1 = np.array(chi2s_test1)/n_obs_train\n", + "\n", + "chi2s_test2 = [np.sum(unwrap_dict(Results[log10_beta].chi2_new_obs)) for log10_beta in log10_betas] # .chi2_test\n", + "n_obs_test = len(unwrap_dict(test_obs))\n", + "\n", + "red_chi2s_test2 = np.array(chi2s_test2)/n_obs_test" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "plt.plot(log10_betas, chi2s, '.--', label = 'training')\n", + "plt.plot(log10_betas, chi2s_test1, '.--', label = 'test frames')\n", + "plt.plot(log10_betas, chi2s_test2, '.--', label = 'test observables')\n", + "\n", + "plt.legend()\n", + "plt.title('$\\chi^2$')\n", + "plt.xlabel(r'$\\log_{10}\\beta$')\n", + "plt.grid()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "What's happened at random_seed = 2? With this choice of training/test set, the loss function in training is not (always) increasing with $\\beta$, however the minimization has always success." + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True]\n" + ] + } + ], + "source": [ + "print([Results[log10_beta].mini.success for log10_beta in log10_betas])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Since the loss function at low values of $\\beta$ is higher than the one at $\\log_{10}\\beta = 0.5$ (and the optimal loss is always increasing with $\\beta$), this means for such $\\beta$ we ended up in another (local) minimum. So, let's use optimal coefficients found at $\\log_{10}\\beta = 0.5$ as starting point for the minimization (**starting_pars**)." + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": {}, + "outputs": [], + "source": [ + "starting_pars = Results[0.5].pars" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": {}, + "outputs": [], + "source": [ + "log10_betas = np.arange(-2, 7, 0.5)\n", + "\n", + "Results = {}\n", + "\n", + "for log10_beta in log10_betas:\n", + " print(log10_beta)\n", + "\n", + " beta = 10**np.float64(log10_beta)\n", + " Results[log10_beta] = minimizer(data_train, regularization = regularization, beta = beta, data_test = data_test, starting_pars = starting_pars)\n", + "\n", + " print(Results[log10_beta].loss)\n", + "\n", + " clear_output()" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "loss = [Results[log10_beta].loss for log10_beta in log10_betas]\n", + "loss_test = [Results[log10_beta].loss_test for log10_beta in log10_betas]\n", + "\n", + "plt.title('loss function')\n", + "plt.plot(log10_betas, loss, '.--', label = 'training')\n", + "plt.plot(log10_betas, loss_test, '.--', label = 'test')\n", + "plt.xlabel(r'$\\log_{10}\\beta$')\n", + "plt.legend()\n", + "plt.grid()" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "D_KL_train = [np.sum(unwrap_dict(Results[log10_beta].reg_ff)) for log10_beta in log10_betas]\n", + "D_KL_test = [np.sum(unwrap_dict(Results[log10_beta].reg_ff_test)) for log10_beta in log10_betas]\n", + "\n", + "plt.title('regularization')\n", + "plt.plot(D_KL_train, '.--', label = 'training')\n", + "plt.plot(D_KL_test, '.--', label = 'test')\n", + "plt.xlabel(r'$\\log_{10}\\beta$')\n", + "plt.legend()\n", + "plt.grid()" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "metadata": {}, + "outputs": [], + "source": [ + "chi2s = [np.sum(unwrap_dict(Results[log10_beta].chi2)) for log10_beta in log10_betas]\n", + "n_obs_train = data_train['global'].tot_n_experiments(data_train)\n", + "\n", + "red_chi2s = np.array(chi2s)/n_obs_train\n", + "\n", + "chi2s_test1 = [np.sum(unwrap_dict(Results[log10_beta].chi2_test)) for log10_beta in log10_betas] # .chi2_test\n", + "red_chi2s_test1 = np.array(chi2s_test1)/n_obs_train\n", + "\n", + "chi2s_test2 = [np.sum(unwrap_dict(Results[log10_beta].chi2_new_obs)) for log10_beta in log10_betas] # .chi2_test\n", + "n_obs_test = len(unwrap_dict(test_obs))\n", + "\n", + "red_chi2s_test2 = np.array(chi2s_test2)/n_obs_test" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "plt.plot(log10_betas, chi2s, '.--', label = 'training')\n", + "plt.plot(log10_betas, chi2s_test1, '.--', label = 'test frames')\n", + "plt.plot(log10_betas, chi2s_test2, '.--', label = 'test observables')\n", + "\n", + "plt.legend()\n", + "plt.title('$\\chi^2$')\n", + "plt.xlabel(r'$\\log_{10}\\beta$')\n", + "plt.grid()\n", + "\n", + "plt.figure()\n", + "plt.plot(log10_betas, chi2s_test1, '.--', label = 'test frames')\n", + "plt.title('chi2, test frames')\n", + "plt.grid()\n", + "\n", + "plt.figure()\n", + "plt.plot(log10_betas, chi2s_test2, '.--', label = 'test observables')\n", + "plt.title('chi2, test observables')\n", + "plt.grid()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### d. Determine optimal hyper parameter $\\beta$ through cross validation (automatic optimization)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let's take the same random_state used for the scan. Here **random_states** can be a list of values or an integer; if it is an integer, you will take values in np.arange(random_states)." + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Input random_state employed both for test_obs and test_frames\n", + "log10 hyperpars: [DeviceArray(0., dtype=float64)] ['beta']\n", + "tot chi2: 657.0989509863348\n", + "tot gradient: [-152.45869821]\n", + "log10 hyperpars: [0.] ['beta']\n", + "tot chi2: 657.0989509863348\n", + "tot gradient: [-152.45869821]\n", + "log10 hyperpars: [1.01] ['beta']\n", + "tot chi2: 468.3693258698372\n", + "tot gradient: [-22.5461002]\n", + "log10 hyperpars: [1.1852837] ['beta']\n", + "tot chi2: 467.07360566704546\n", + "tot gradient: [-1.34951948]\n", + "log10 hyperpars: [1.19644346] ['beta']\n", + "tot chi2: 467.0602418806326\n", + "tot gradient: [-1.0524543]\n", + "log10 hyperpars: [1.22209289] ['beta']\n", + "tot chi2: 467.0413456162542\n", + "tot gradient: [-0.42517636]\n" + ] + } + ], + "source": [ + "starting_beta = 1\n", + "\n", + "mini = hyper_minimizer(data, regularization = regularization, starting_beta = starting_beta, random_states = [2], starting_pars = starting_pars)" + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + " fun: 467.0413456162542\n", + " hess_inv: array([[0.03756671]])\n", + " jac: array([-0.42517636])\n", + " message: 'Optimization terminated successfully.'\n", + " nfev: 5\n", + " nit: 4\n", + " njev: 5\n", + " status: 0\n", + " success: True\n", + " x: array([1.22209289])" + ] + }, + "execution_count": 29, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "mini" + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Input random_state employed both for test_obs and test_frames\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/u/i/igilardo/3_alphabetagamma/Functions.py:2178: OptimizeWarning: Unknown solver options: maxfev\n", + " hyper_mini = minimize(hyper_function, log10_hyperpars0, args = args, method = 'BFGS', jac = True, options = {'gtol': gtol, 'maxfev': 20})#, 'ftol': 0.1})\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "log10 hyperpars: [1.22209289] ['beta']\n", + "New evaluation:\n", + "loss: 275.9155436501145\n", + "gradient: [ 15.35127511 -9.04572861 -17.39103002 15.82186062] \n", + "\n", + "New evaluation:\n", + "loss: 271.2288368007547\n", + "gradient: [ 21.55634479 -15.11850864 34.20302808 -18.6338733 ] \n", + "\n", + "New evaluation:\n", + "loss: 272.357448770612\n", + "gradient: [-48.31790364 -15.3158465 -31.55294149 -12.06668938] \n", + "\n", + "New evaluation:\n", + "loss: 268.69454038601975\n", + "gradient: [ -3.94195706 -15.14120574 9.81590609 -15.85437518] \n", + "\n", + "New evaluation:\n", + "loss: 263.73416077611796\n", + "gradient: [ -4.41017571 -14.61961542 8.9840051 -12.96736957] \n", + "\n", + "New evaluation:\n", + "loss: 248.01464402792865\n", + "gradient: [ -3.9952376 -11.95298115 9.40247393 1.81615909] \n", + "\n", + "New evaluation:\n", + "loss: 238.2293291226762\n", + "gradient: [-13.22534213 19.0581175 -13.64305686 0.45961333] \n", + "\n", + "New evaluation:\n", + "loss: 235.62816325607469\n", + "gradient: [-6.78958971 -7.20917815 -1.98527689 -3.62422861] \n", + "\n", + "New evaluation:\n", + "loss: 275.5164990990347\n", + "gradient: [10.03510966 66.90537498 40.36704847 16.23575624] \n", + "\n", + "New evaluation:\n", + "loss: 231.57848327323566\n", + "gradient: [-3.79228944 -3.23543197 -0.70305717 1.17248496] \n", + "\n", + "New evaluation:\n", + "loss: 231.51186531156307\n", + "gradient: [-3.31488877 5.09029026 -0.92025786 3.37201147] \n", + "\n", + "New evaluation:\n", + "loss: 230.90476510220975\n", + "gradient: [-3.50097925 -0.69943963 -1.28723884 1.92922198] \n", + "\n", + "New evaluation:\n", + "loss: 230.64437249156495\n", + "gradient: [-0.71625151 0.35901196 -1.48120366 1.4409519 ] \n", + "\n", + "New evaluation:\n", + "loss: 230.61225775865233\n", + "gradient: [-0.77945026 0.2407868 -1.80378822 1.01091681] \n", + "\n", + "New evaluation:\n", + "loss: 230.5586421228058\n", + "gradient: [-0.64011734 0.17242952 -1.61471502 0.53581619] \n", + "\n", + "New evaluation:\n", + "loss: 230.50471438177266\n", + "gradient: [-2.07516164e-02 -2.69349468e-04 -4.12493311e-01 -1.34522428e-01] \n", + "\n", + "New evaluation:\n", + "loss: 230.5020646141909\n", + "gradient: [-0.05214169 0.01532196 -0.15978626 -0.06567242] \n", + "\n", + "New evaluation:\n", + "loss: 230.50175546562195\n", + "gradient: [ 0.0255513 -0.01447862 0.02172553 -0.00253309] \n", + "\n", + "New evaluation:\n", + "loss: 230.5017470760212\n", + "gradient: [-0.0075063 0.00462298 -0.00340428 0.0018552 ] \n", + "\n", + "New evaluation:\n", + "loss: 230.50174597122472\n", + "gradient: [-8.41855837e-05 -1.35888371e-05 -1.19977356e-04 -6.15590933e-05] \n", + "\n", + "tot chi2: 132.33235028584912\n", + "tot gradient: [2.67748395]\n", + "log10 hyperpars: [0.21209289] ['beta']\n", + "New evaluation:\n", + "loss: 207.41910872349882\n", + "gradient: [-1.74097973 1.02590352 1.97232794 -1.79455421] \n", + "\n", + "New evaluation:\n", + "loss: 220.95376964046108\n", + "gradient: [ -4.71396623 2.319874 -39.22346871 13.61230104] \n", + "\n", + "New evaluation:\n", + "loss: 207.25365881223652\n", + "gradient: [-2.14134138 1.24742952 -1.38109758 0.51542412] \n", + "\n", + "New evaluation:\n", + "loss: 207.32553517246228\n", + "gradient: [3.79961353 1.32025423 5.15316032 1.58599437] \n", + "\n", + "New evaluation:\n", + "loss: 207.19195257351996\n", + "gradient: [0.55404641 1.29530082 1.39973414 0.9712899 ] \n", + "\n", + "New evaluation:\n", + "loss: 207.08879658826584\n", + "gradient: [0.59290433 1.20288915 0.61741245 0.32666511] \n", + "\n", + "New evaluation:\n", + "loss: 206.9000804532328\n", + "gradient: [0.51309384 0.99665897 0.66117896 0.4197438 ] \n", + "\n", + "New evaluation:\n", + "loss: 206.59887295458202\n", + "gradient: [ 0.34546686 0.58044627 0.30648089 -0.0048218 ] \n", + "\n", + "New evaluation:\n", + "loss: 206.395018949999\n", + "gradient: [-0.18136125 0.06315505 0.08594871 -0.47897879] \n", + "\n", + "New evaluation:\n", + "loss: 206.37890045038785\n", + "gradient: [-0.0894336 0.00759768 -0.07709225 -0.10788725] \n", + "\n", + "New evaluation:\n", + "loss: 206.37822905004865\n", + "gradient: [-0.01017205 0.00028252 0.00490644 -0.00371444] \n", + "\n", + "New evaluation:\n", + "loss: 206.37822601988623\n", + "gradient: [ 0.00440378 0.00013768 -0.00317511 -0.00053056] \n", + "\n", + "New evaluation:\n", + "loss: 206.3782254003612\n", + "gradient: [-4.71111604e-05 -2.11968700e-05 1.25655376e-04 1.42832272e-04] \n", + "\n", + "tot chi2: 153.06937650644988\n", + "tot gradient: [-3.93383561]\n", + "log10 hyperpars: [1.20018581] ['beta']\n", + "New evaluation:\n", + "loss: 272.1811419289527\n", + "gradient: [ 14.41941135 -8.49662674 -16.3353465 14.86141984] \n", + "\n", + "New evaluation:\n", + "loss: 268.63555188738985\n", + "gradient: [ 21.02126962 -14.48217787 33.88110022 -19.17535245] \n", + "\n", + "New evaluation:\n", + "loss: 267.5978363188764\n", + "gradient: [-29.38953015 -14.53170386 -13.75865521 -14.13930996] \n", + "\n", + "New evaluation:\n", + "loss: 266.3394929021333\n", + "gradient: [ 0.03986414 -14.47017867 13.7447393 -16.81284657] \n", + "\n", + "New evaluation:\n", + "loss: 261.84960934180833\n", + "gradient: [ -0.53827446 -13.99469665 12.74733975 -13.8345385 ] \n", + "\n", + "New evaluation:\n", + "loss: 247.8162504199428\n", + "gradient: [ -0.57983186 -11.61548815 12.84839029 1.54282249] \n", + "\n", + "New evaluation:\n", + "loss: 233.17125088589876\n", + "gradient: [-10.17742646 9.42548288 -10.50798138 0.86877295] \n", + "\n", + "New evaluation:\n", + "loss: 234.48829141460607\n", + "gradient: [ 2.50515405 -5.05571513 -1.66714166 -6.94443814] \n", + "\n", + "New evaluation:\n", + "loss: 230.9920822008365\n", + "gradient: [ -6.69086856 -0.09421031 -10.9168944 -2.24235331] \n", + "\n", + "New evaluation:\n", + "loss: 230.72303482568256\n", + "gradient: [ 4.51766901 -0.27447563 5.28942205 3.51673222] \n", + "\n", + "New evaluation:\n", + "loss: 230.4656271167571\n", + "gradient: [-1.2991398 -0.09567634 -1.69484141 0.9767935 ] \n", + "\n", + "New evaluation:\n", + "loss: 230.43973283662734\n", + "gradient: [-0.9665209 0.04433694 -1.67238305 0.84581112] \n", + "\n", + "New evaluation:\n", + "loss: 230.3966156400311\n", + "gradient: [-0.60883152 0.20198353 -1.38721641 0.61827494] \n", + "\n", + "New evaluation:\n", + "loss: 230.34905756434364\n", + "gradient: [ 0.03141613 0.32275383 -0.40985718 0.13784495] \n", + "\n", + "New evaluation:\n", + "loss: 230.34298838139628\n", + "gradient: [ 0.0829295 0.14427145 -0.1265952 0.03116076] \n", + "\n", + "New evaluation:\n", + "loss: 230.34147314853195\n", + "gradient: [ 0.01522764 0.00022317 -0.00162085 -0.0062923 ] \n", + "\n", + "New evaluation:\n", + "loss: 230.34146692078897\n", + "gradient: [ 0.00083009 -0.0009076 -0.00075833 -0.00140319] \n", + "\n", + "New evaluation:\n", + "loss: 230.34146682436452\n", + "gradient: [-9.78908823e-05 -9.20687659e-05 -1.08183241e-04 -8.56006903e-05] \n", + "\n", + "tot chi2: 132.2791261401099\n", + "tot gradient: [2.16342627]\n", + "log10 hyperpars: [1.15049021] ['beta']\n", + "New evaluation:\n", + "loss: 264.3766591699531\n", + "gradient: [ 12.47192009 -7.34906513 -14.12908579 12.8542058 ] \n", + "\n", + "New evaluation:\n", + "loss: 263.2158730382928\n", + "gradient: [ 19.90301906 -13.1523171 33.20830245 -20.3069797 ] \n", + "\n", + "New evaluation:\n", + "loss: 261.5101715010821\n", + "gradient: [ 6.39517223 -13.09789293 20.13858228 -18.69163877] \n", + "\n", + "New evaluation:\n", + "loss: 258.1712802244053\n", + "gradient: [ 5.70605613 -12.73848823 18.95306421 -15.89337484] \n", + "\n", + "New evaluation:\n", + "loss: 247.7430172570339\n", + "gradient: [ 4.50135258 -11.01567569 17.8398174 -1.33086257] \n", + "\n", + "New evaluation:\n", + "loss: 230.29143406135407\n", + "gradient: [-1.58203945 -1.75803486 -1.39471088 -0.61393742] \n", + "\n", + "New evaluation:\n", + "loss: 231.59141550063902\n", + "gradient: [0.32627294 6.82054129 3.08433768 4.74953748] \n", + "\n", + "New evaluation:\n", + "loss: 230.08420659426076\n", + "gradient: [-1.10258543 -0.23958737 -0.72358218 0.91501192] \n", + "\n", + "New evaluation:\n", + "loss: 230.0520353451\n", + "gradient: [-0.82184795 0.18010518 -1.21372438 0.81313982] \n", + "\n", + "New evaluation:\n", + "loss: 230.03712390112622\n", + "gradient: [-0.34056292 0.20376941 -1.01562845 0.72424648] \n", + "\n", + "New evaluation:\n", + "loss: 230.01208347163933\n", + "gradient: [-0.09365996 0.22296129 -0.86954601 0.5014581 ] \n", + "\n", + "New evaluation:\n", + "loss: 229.98038872623658\n", + "gradient: [ 0.36323186 0.14198927 -0.1940281 0.12790481] \n", + "\n", + "New evaluation:\n", + "loss: 229.9742892235616\n", + "gradient: [ 0.16657187 0.05553645 -0.06345684 -0.02174093] \n", + "\n", + "New evaluation:\n", + "loss: 229.9731787404342\n", + "gradient: [ 0.05608269 0.00362201 0.02240951 -0.00986694] \n", + "\n", + "New evaluation:\n", + "loss: 229.9731385619217\n", + "gradient: [-0.00710246 0.00139338 -0.00599077 -0.00295951] \n", + "\n", + "New evaluation:\n", + "loss: 229.97313798185468\n", + "gradient: [ 0.00195554 -0.00086742 0.00208566 0.0001687 ] \n", + "\n", + "New evaluation:\n", + "loss: 229.97313793086028\n", + "gradient: [1.58648076e-04 6.65566119e-05 2.14149405e-04 1.07626443e-04] \n", + "\n", + "tot chi2: 132.21272885005425\n", + "tot gradient: [0.27195238]\n" + ] + } + ], + "source": [ + "starting_beta = 10**mini.x\n", + "\n", + "mini2 = hyper_minimizer(data, regularization = regularization, starting_beta = starting_beta, random_states = [2], which_set = 'test', starting_pars = starting_pars)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 35, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + " fun: 132.21272885005425\n", + " hess_inv: array([[0.04261599]])\n", + " jac: array([0.27195238])\n", + " message: 'Optimization terminated successfully.'\n", + " nfev: 4\n", + " nit: 2\n", + " njev: 4\n", + " status: 0\n", + " success: True\n", + " x: array([1.15049021])" + ] + }, + "execution_count": 35, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "mini2" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### multiple seeds\n", + "in order to get more robust results and avoid local minima " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let's use 2 random_states [0, 1]" + ] + }, + { + "cell_type": "code", + "execution_count": 36, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Input random_state employed both for test_obs and test_frames\n", + "Input random_state employed both for test_obs and test_frames\n", + "log10 hyperpars: [0.] ['beta']\n", + "New evaluation:\n", + "loss: 232.03396939608317\n", + "gradient: [-71.76903903 -5.50396973 -51.47297004 -14.96441254] \n", + "\n", + "New evaluation:\n", + "loss: 209.3237551897244\n", + "gradient: [ 1.91964428 -0.2070328 7.12258622 -4.61135859] \n", + "\n", + "New evaluation:\n", + "loss: 754.3009782677531\n", + "gradient: [100.18299117 -38.11978997 8.27176677 55.42594161] \n", + "\n", + "New evaluation:\n", + "loss: 208.56882815017454\n", + "gradient: [ 1.89118245 0.90379216 7.67540293 -2.55457306] \n", + "\n", + "New evaluation:\n", + "loss: 207.06287927808435\n", + "gradient: [ 2.38351279 0.41791025 8.34649019 -1.6563974 ] \n", + "\n", + "New evaluation:\n", + "loss: 207.134978140154\n", + "gradient: [ 2.76218824 7.17962407 -18.06578377 9.25915916] \n", + "\n", + "New evaluation:\n", + "loss: 204.56412161010527\n", + "gradient: [2.56130963 1.60978088 4.60399415 2.2174964 ] \n", + "\n", + "New evaluation:\n", + "loss: 209.0164700744682\n", + "gradient: [ 3.32259559 10.61258435 -29.4412328 10.7129315 ] \n", + "\n", + "New evaluation:\n", + "loss: 204.43707777237316\n", + "gradient: [2.49418338 2.24616279 2.27085198 2.88819471] \n", + "\n", + "New evaluation:\n", + "loss: 204.2505326156215\n", + "gradient: [2.74894133 1.12776982 2.11608407 2.03132121] \n", + "\n", + "New evaluation:\n", + "loss: 203.9491529992948\n", + "gradient: [3.01179705 0.01127826 1.77929449 0.48283253] \n", + "\n", + "New evaluation:\n", + "loss: 203.51564147850704\n", + "gradient: [ 2.38941575 -1.54588903 1.20759232 -1.83077883] \n", + "\n", + "New evaluation:\n", + "loss: 203.43296959319815\n", + "gradient: [-1.3440982 -1.91749081 -1.43012889 -2.64362741] \n", + "\n", + "New evaluation:\n", + "loss: 203.3047975315156\n", + "gradient: [-0.20987002 -1.32776127 -0.47116174 -1.83985053] \n", + "\n", + "New evaluation:\n", + "loss: 203.20950535365662\n", + "gradient: [ 0.09085283 0.02771949 0.02833216 -0.21228848] \n", + "\n", + "New evaluation:\n", + "loss: 203.20541899076605\n", + "gradient: [ 0.080439 0.00832834 0.02517964 -0.06545599] \n", + "\n", + "New evaluation:\n", + "loss: 203.2047751784851\n", + "gradient: [0.01776425 0.00190248 0.01381034 0.00192744] \n", + "\n", + "New evaluation:\n", + "loss: 203.20476885190797\n", + "gradient: [ 0.00282261 -0.00025857 0.0021764 0.00047525] \n", + "\n", + "New evaluation:\n", + "loss: 203.20476866857382\n", + "gradient: [ 4.04706599e-05 -5.85580918e-05 6.99564572e-05 8.74930387e-06] \n", + "\n", + "New evaluation:\n", + "loss: 221.23567772331504\n", + "gradient: [-49.15856977 -1.00016728 -37.85442478 -6.89416624] \n", + "\n", + "New evaluation:\n", + "loss: 218.86982423909913\n", + "gradient: [ 6.21547016 4.80278975 14.21060447 12.5526085 ] \n", + "\n", + "New evaluation:\n", + "loss: 216.5714872927969\n", + "gradient: [ 5.4551954 -2.28949087 9.17628057 0.33777927] \n", + "\n", + "New evaluation:\n", + "loss: 219.4300576772308\n", + "gradient: [ 4.70397078 8.19869849 -19.44435682 -0.3626772 ] \n", + "\n", + "New evaluation:\n", + "loss: 215.21361571382684\n", + "gradient: [ 5.12038622e+00 4.01567115e-03 5.93634929e+00 -6.12374292e-01] \n", + "\n", + "New evaluation:\n", + "loss: 221.0703912674212\n", + "gradient: [ 8.60329649 12.56223969 -33.69184807 5.7588057 ] \n", + "\n", + "New evaluation:\n", + "loss: 214.72031829835208\n", + "gradient: [5.75872165 1.02029698 3.37310305 0.06455097] \n", + "\n", + "New evaluation:\n", + "loss: 213.71095218723164\n", + "gradient: [7.61401816 2.19267843 4.96567279 2.61030073] \n", + "\n", + "New evaluation:\n", + "loss: 210.4286858558146\n", + "gradient: [ 9.68843631 6.19005555 2.27660789 11.83445366] \n", + "\n", + "New evaluation:\n", + "loss: 286.23432212760764\n", + "gradient: [-98.77348031 -13.33079866 -72.58472651 48.77775239] \n", + "\n", + "New evaluation:\n", + "loss: 210.0574401171082\n", + "gradient: [ 7.85273597 5.78709575 1.39784142 11.8032031 ] \n", + "\n", + "New evaluation:\n", + "loss: 209.3777986109664\n", + "gradient: [ 6.71003342 5.26865232 2.54989879 10.81484703] \n", + "\n", + "New evaluation:\n", + "loss: 208.19145412611434\n", + "gradient: [3.31404317 4.49644307 0.47971616 8.39086004] \n", + "\n", + "New evaluation:\n", + "loss: 206.5498850694121\n", + "gradient: [1.74058241 2.32782338 1.41873871 2.83657273] \n", + "\n", + "New evaluation:\n", + "loss: 205.96800237632885\n", + "gradient: [-1.72929664 1.25500432 -0.84844044 -0.70267454] \n", + "\n", + "New evaluation:\n", + "loss: 205.28982258088865\n", + "gradient: [-2.04456317 0.67704028 -0.84117981 -1.21274308] \n", + "\n", + "New evaluation:\n", + "loss: 206.2572281690014\n", + "gradient: [-9.60524916e-04 -9.99034873e-01 -8.93984327e+00 5.42403147e+00] \n", + "\n", + "New evaluation:\n", + "loss: 205.03454757674916\n", + "gradient: [-1.61098023 0.29110811 -1.75831553 0.09814641] \n", + "\n", + "New evaluation:\n", + "loss: 205.02724626364017\n", + "gradient: [ 1.61950431 -0.15631882 1.54123034 -0.3727581 ] \n", + "\n", + "New evaluation:\n", + "loss: 205.01469082170553\n", + "gradient: [ 1.16965821 -0.10490969 1.05180961 -0.23092925] \n", + "\n", + "New evaluation:\n", + "loss: 205.00223165755972\n", + "gradient: [ 0.00407094 0.02144144 -0.02164147 -0.01456297] \n", + "\n", + "New evaluation:\n", + "loss: 205.00213016866923\n", + "gradient: [ 0.01359054 0.00475504 -0.03538794 0.0240593 ] \n", + "\n", + "New evaluation:\n", + "loss: 205.00210425933037\n", + "gradient: [ 0.01145398 0.00280406 -0.00687207 0.00859362] \n", + "\n", + "New evaluation:\n", + "loss: 205.00209917217651\n", + "gradient: [0.00172339 0.00038367 0.00156525 0.00091856] \n", + "\n", + "New evaluation:\n", + "loss: 205.0020991069102\n", + "gradient: [2.51118317e-04 4.72234281e-05 4.61251815e-04 2.39998771e-04] \n", + "\n", + "tot chi2: 889.9966853297761\n", + "tot gradient: [-7.09565077]\n", + "log10 hyperpars: [1.01] ['beta']\n", + "New evaluation:\n", + "loss: 232.03396939608317\n", + "gradient: [-71.76903903 -5.50396973 -51.47297004 -14.96441254] \n", + "\n", + "New evaluation:\n", + "loss: 226.9942085898118\n", + "gradient: [11.46157697 -1.98716808 18.06226475 -2.61330424] \n", + "\n", + "New evaluation:\n", + "loss: 228.32977054542565\n", + "gradient: [11.32782597 16.46854328 -1.22731581 19.28683571] \n", + "\n", + "New evaluation:\n", + "loss: 223.78216493357402\n", + "gradient: [11.86236391 4.59337145 18.77973843 7.71670996] \n", + "\n", + "New evaluation:\n", + "loss: 228.86344873148258\n", + "gradient: [ 12.57092103 16.71112619 -32.78934945 17.08159458] \n", + "\n", + "New evaluation:\n", + "loss: 222.1241274199997\n", + "gradient: [12.18382493 5.64020551 12.28228199 8.99188654] \n", + "\n", + "New evaluation:\n", + "loss: 219.69504570612648\n", + "gradient: [15.09173151 0.15707074 12.84709158 6.20499426] \n", + "\n", + "New evaluation:\n", + "loss: 215.89692524936942\n", + "gradient: [17.41693904 -1.48391621 9.94281 -0.63294704] \n", + "\n", + "New evaluation:\n", + "loss: 213.93268789033823\n", + "gradient: [-12.71098113 -7.79325367 -12.28958463 -9.73752078] \n", + "\n", + "New evaluation:\n", + "loss: 213.03807337270544\n", + "gradient: [13.47683144 -4.01475555 6.90966116 -3.94213456] \n", + "\n", + "New evaluation:\n", + "loss: 216.99840440863883\n", + "gradient: [-37.81985671 -6.56444095 -30.18350783 -9.85547521] \n", + "\n", + "New evaluation:\n", + "loss: 211.83429705440196\n", + "gradient: [ 2.93820922 -4.38434302 -1.01993929 -5.08113086] \n", + "\n", + "New evaluation:\n", + "loss: 211.04215827855225\n", + "gradient: [-0.32867922 -1.99358846 -0.75164169 -3.54286357] \n", + "\n", + "New evaluation:\n", + "loss: 210.78187042655753\n", + "gradient: [ 0.60772286 0.63437206 -0.30118897 0.41217553] \n", + "\n", + "New evaluation:\n", + "loss: 210.7681656300363\n", + "gradient: [-0.08050324 -0.04670264 0.05280722 0.00091996] \n", + "\n", + "New evaluation:\n", + "loss: 210.7678938467321\n", + "gradient: [-0.00564641 -0.00370419 -0.00140051 -0.00200176] \n", + "\n", + "New evaluation:\n", + "loss: 210.76789336463966\n", + "gradient: [1.43442862e-03 2.10622813e-04 1.70507872e-03 7.44711129e-06] \n", + "\n", + "New evaluation:\n", + "loss: 210.76789334765726\n", + "gradient: [-2.50998786e-04 6.54147772e-05 -4.71648069e-04 6.77767470e-05] \n", + "\n", + "New evaluation:\n", + "loss: 221.23567772331504\n", + "gradient: [-49.15856977 -1.00016728 -37.85442478 -6.89416624] \n", + "\n", + "New evaluation:\n", + "loss: 237.0080827378544\n", + "gradient: [15.71702773 2.66795263 25.25240334 14.23699278] \n", + "\n", + "New evaluation:\n", + "loss: 212.45825642040097\n", + "gradient: [-2.41692531 2.69784331 2.97418637 1.95640507] \n", + "\n", + "New evaluation:\n", + "loss: 311.0942373039918\n", + "gradient: [ 63.04911299 27.1017281 -47.96153745 2.67341415] \n", + "\n", + "New evaluation:\n", + "loss: 211.9267709216829\n", + "gradient: [-0.5929954 0.01387373 1.75804784 -1.42101614] \n", + "\n", + "New evaluation:\n", + "loss: 212.69122269479493\n", + "gradient: [ 2.55481215 3.62270454 -6.43122014 3.09610551] \n", + "\n", + "New evaluation:\n", + "loss: 211.7286187216569\n", + "gradient: [-0.41080258 0.88783614 -0.24653477 -0.16764661] \n", + "\n", + "New evaluation:\n", + "loss: 212.45459498812332\n", + "gradient: [ 0.65203244 -1.58998108 3.99881299 3.74068853] \n", + "\n", + "New evaluation:\n", + "loss: 211.69660521166585\n", + "gradient: [-0.389023 0.30034902 0.32992574 0.40410617] \n", + "\n", + "New evaluation:\n", + "loss: 211.6850873062835\n", + "gradient: [0.08036301 0.06903478 0.00416343 0.06456106] \n", + "\n", + "New evaluation:\n", + "loss: 211.684874889821\n", + "gradient: [ 0.00413322 -0.00235609 0.00918079 -0.00757242] \n", + "\n", + "New evaluation:\n", + "loss: 211.68487217219393\n", + "gradient: [ 1.57498425e-04 1.51252016e-04 3.02421078e-04 -8.86591794e-05] \n", + "\n", + "tot chi2: 897.0534781431113\n", + "tot gradient: [24.78005951]\n", + "log10 hyperpars: [0.27633707] ['beta']\n", + "New evaluation:\n", + "loss: 232.03396939608317\n", + "gradient: [-71.76903903 -5.50396973 -51.47297004 -14.96441254] \n", + "\n", + "New evaluation:\n", + "loss: 211.02604398922898\n", + "gradient: [ 2.83886943 -0.37852271 8.17646366 -4.41887539] \n", + "\n", + "New evaluation:\n", + "loss: 702.6898012204153\n", + "gradient: [ 91.78026631 -86.76032904 1.21422792 74.71274643] \n", + "\n", + "New evaluation:\n", + "loss: 210.27014719622363\n", + "gradient: [ 2.82727504 0.7184406 8.75198356 -2.39395771] \n", + "\n", + "New evaluation:\n", + "loss: 208.75413084458364\n", + "gradient: [ 3.3094151 0.33501761 9.42510101 -1.43571287] \n", + "\n", + "New evaluation:\n", + "loss: 208.76554332777124\n", + "gradient: [ 3.68267992 7.48412444 -17.03874737 9.67942614] \n", + "\n", + "New evaluation:\n", + "loss: 206.2229701380079\n", + "gradient: [3.51637733 1.71376226 5.46392534 2.5887313 ] \n", + "\n", + "New evaluation:\n", + "loss: 209.9531781162236\n", + "gradient: [ 4.18267152 10.46372752 -25.82113632 10.22027964] \n", + "\n", + "New evaluation:\n", + "loss: 206.06612954711878\n", + "gradient: [3.46671482 2.46475725 2.83656666 3.29393845] \n", + "\n", + "New evaluation:\n", + "loss: 205.83318753413786\n", + "gradient: [3.8029396 1.21038445 2.63768807 2.45347596] \n", + "\n", + "New evaluation:\n", + "loss: 205.41247735586953\n", + "gradient: [4.14972011 0.2492955 2.45437895 1.06499813] \n", + "\n", + "New evaluation:\n", + "loss: 204.69544308466953\n", + "gradient: [ 3.71208073 -1.17875536 1.92539168 -1.03964073] \n", + "\n", + "New evaluation:\n", + "loss: 206.42418992640665\n", + "gradient: [-15.83368884 -3.76251675 -11.99063433 -5.91970111] \n", + "\n", + "New evaluation:\n", + "loss: 204.44302062390472\n", + "gradient: [ 1.66001371 -1.73283218 0.44765207 -1.97554008] \n", + "\n", + "New evaluation:\n", + "loss: 204.31973720792791\n", + "gradient: [-0.01188718 -1.27972181 -0.32019644 -1.79646689] \n", + "\n", + "New evaluation:\n", + "loss: 204.24215610092529\n", + "gradient: [ 0.09009457 -0.01904264 0.10911965 -0.5017379 ] \n", + "\n", + "New evaluation:\n", + "loss: 204.22916213026195\n", + "gradient: [-0.00041853 0.01459292 -0.05311807 -0.11280511] \n", + "\n", + "New evaluation:\n", + "loss: 204.22806803087022\n", + "gradient: [0.01081158 0.0045915 0.00725486 0.00419491] \n", + "\n", + "New evaluation:\n", + "loss: 204.22806557920887\n", + "gradient: [-0.0013908 0.00019048 -0.00157843 0.0001836 ] \n", + "\n", + "New evaluation:\n", + "loss: 204.2280655444463\n", + "gradient: [ 1.35478084e-05 -1.03135837e-05 -1.80835245e-07 -5.33995269e-06] \n", + "\n", + "New evaluation:\n", + "loss: 221.23567772331504\n", + "gradient: [-49.15856977 -1.00016728 -37.85442478 -6.89416624] \n", + "\n", + "New evaluation:\n", + "loss: 220.61717919292258\n", + "gradient: [ 7.13080576 4.59712953 15.27431971 12.7148742 ] \n", + "\n", + "New evaluation:\n", + "loss: 219.5277517353633\n", + "gradient: [ 6.86798275 2.77331211 13.99407357 9.78904886] \n", + "\n", + "New evaluation:\n", + "loss: 217.78486744035234\n", + "gradient: [ 6.10389715 4.93401782 11.03133109 7.94643876] \n", + "\n", + "New evaluation:\n", + "loss: 221.81782458128936\n", + "gradient: [ 7.97198583 11.97613815 -25.22767551 7.605604 ] \n", + "\n", + "New evaluation:\n", + "loss: 216.98707974266156\n", + "gradient: [6.53639374 5.01643591 7.23169921 7.10522568] \n", + "\n", + "New evaluation:\n", + "loss: 215.59483976024512\n", + "gradient: [8.13137206 2.4177775 7.51071414 3.7659874 ] \n", + "\n", + "New evaluation:\n", + "loss: 212.50083373268225\n", + "gradient: [12.29464949 0.66512393 9.25224465 0.82595455] \n", + "\n", + "New evaluation:\n", + "loss: 225.12551857749935\n", + "gradient: [-63.14816634 -1.00397023 -50.02312566 -10.78086539] \n", + "\n", + "New evaluation:\n", + "loss: 208.2721512073285\n", + "gradient: [ 7.38782885 -0.15972495 4.02276746 -2.82294673] \n", + "\n", + "New evaluation:\n", + "loss: 368.20748598876213\n", + "gradient: [-166.00459811 -7.14429472 -170.16118338 40.88583759] \n", + "\n", + "New evaluation:\n", + "loss: 207.74335388986435\n", + "gradient: [ 1.02525626 0.02340043 -0.94958089 -3.40971606] \n", + "\n", + "New evaluation:\n", + "loss: 207.3050189312452\n", + "gradient: [-1.94460793 1.19595316 -3.13710429 -0.63878764] \n", + "\n", + "New evaluation:\n", + "loss: 207.11763413589009\n", + "gradient: [-2.02328516 1.149745 -0.6321855 1.84777317] \n", + "\n", + "New evaluation:\n", + "loss: 207.0518230478874\n", + "gradient: [-1.20603573 1.14329952 -0.29859082 1.74716803] \n", + "\n", + "New evaluation:\n", + "loss: 206.93168395818407\n", + "gradient: [-0.51544424 1.02114173 -0.06389744 1.44197266] \n", + "\n", + "New evaluation:\n", + "loss: 206.74138568275774\n", + "gradient: [ 0.25147389 0.7132798 -0.03077386 1.15905943] \n", + "\n", + "New evaluation:\n", + "loss: 206.66112879456838\n", + "gradient: [ 1.11187615 -0.17135219 1.48159515 -1.02756772] \n", + "\n", + "New evaluation:\n", + "loss: 206.69558101666632\n", + "gradient: [ 0.29820239 -0.05047101 -1.39990437 1.15977129] \n", + "\n", + "New evaluation:\n", + "loss: 206.63853619282105\n", + "gradient: [ 0.78816423 -0.10459941 0.44558843 -0.21421535] \n", + "\n", + "New evaluation:\n", + "loss: 206.63046093161873\n", + "gradient: [0.11074409 0.05127715 0.02687474 0.05208166] \n", + "\n", + "New evaluation:\n", + "loss: 206.62989506028228\n", + "gradient: [0.06531931 0.0138365 0.01556487 0.01987569] \n", + "\n", + "New evaluation:\n", + "loss: 206.62982427620528\n", + "gradient: [0.00781895 0.00024734 0.00081547 0.0013629 ] \n", + "\n", + "New evaluation:\n", + "loss: 206.62982342596146\n", + "gradient: [ 4.88392381e-04 -8.67392751e-05 1.19673129e-04 1.60742566e-08] \n", + "\n", + "tot chi2: 888.0288671545031\n", + "tot gradient: [-6.32111664]\n", + "log10 hyperpars: [0.90518051] ['beta']\n", + "New evaluation:\n", + "loss: 232.03396939608317\n", + "gradient: [-71.76903903 -5.50396973 -51.47297004 -14.96441254] \n", + "\n", + "New evaluation:\n", + "loss: 222.7945910496024\n", + "gradient: [ 9.19381015 -1.56409533 15.4623051 -3.08816835] \n", + "\n", + "New evaluation:\n", + "loss: 296.91861307552887\n", + "gradient: [ 20.05771156 44.88232633 -136.42438417 26.91790384] \n", + "\n", + "New evaluation:\n", + "loss: 220.17935454269752\n", + "gradient: [ 9.46943217 3.04081105 16.94240121 4.6836569 ] \n", + "\n", + "New evaluation:\n", + "loss: 218.94908444598033\n", + "gradient: [ 9.88070767 8.41279397 -3.91764482 10.88395163] \n", + "\n", + "New evaluation:\n", + "loss: 218.35909564794497\n", + "gradient: [ 9.87685719 3.51868195 14.23902728 6.06615141] \n", + "\n", + "New evaluation:\n", + "loss: 216.7516562882391\n", + "gradient: [10.99697473 7.1438854 -0.23999358 6.88821071] \n", + "\n", + "New evaluation:\n", + "loss: 215.66850041143817\n", + "gradient: [13.5221955 -0.07360532 0.38319383 5.60222705] \n", + "\n", + "New evaluation:\n", + "loss: 213.64212526752527\n", + "gradient: [13.83199538 -1.87873142 4.55058087 2.62571656] \n", + "\n", + "New evaluation:\n", + "loss: 210.5780977101678\n", + "gradient: [ 4.98400424 -4.20516843 0.42512831 -1.63974698] \n", + "\n", + "New evaluation:\n", + "loss: 209.6569359023672\n", + "gradient: [-6.18302675 -1.61889179 -3.7286788 -2.37972529] \n", + "\n", + "New evaluation:\n", + "loss: 209.65408697363415\n", + "gradient: [3.91076596 1.79776532 4.6961105 0.699879 ] \n", + "\n", + "New evaluation:\n", + "loss: 209.44079743887525\n", + "gradient: [-0.6539278 0.00338267 0.85491223 -0.82065071] \n", + "\n", + "New evaluation:\n", + "loss: 209.41101172834615\n", + "gradient: [ 0.37408532 -0.54213387 0.81369985 -0.45155183] \n", + "\n", + "New evaluation:\n", + "loss: 209.40334633287665\n", + "gradient: [ 0.21372349 -0.26003858 0.50440042 -0.2495189 ] \n", + "\n", + "New evaluation:\n", + "loss: 209.40012325121626\n", + "gradient: [ 2.09872650e-02 1.05910866e-02 2.31193941e-02 -9.39358768e-05] \n", + "\n", + "New evaluation:\n", + "loss: 209.4001145794698\n", + "gradient: [ 0.00299678 0.00118579 0.00244097 -0.00020833] \n", + "\n", + "New evaluation:\n", + "loss: 209.40011444246383\n", + "gradient: [ 3.05558587e-05 -3.24252376e-05 -7.45949316e-05 -9.08394053e-05] \n", + "\n", + "New evaluation:\n", + "loss: 221.23567772331504\n", + "gradient: [-49.15856977 -1.00016728 -37.85442478 -6.89416624] \n", + "\n", + "New evaluation:\n", + "loss: 232.69728511339457\n", + "gradient: [13.45885659 3.17532498 22.62817344 13.83667652] \n", + "\n", + "New evaluation:\n", + "loss: 211.7945050047119\n", + "gradient: [-1.71645211 3.01646954 3.45303871 2.5044993 ] \n", + "\n", + "New evaluation:\n", + "loss: 302.56126274923804\n", + "gradient: [ 51.74040611 12.67310178 31.99818763 -35.24896077] \n", + "\n", + "New evaluation:\n", + "loss: 211.27371985167196\n", + "gradient: [-0.32113183 0.68229796 2.59836265 -0.45961625] \n", + "\n", + "New evaluation:\n", + "loss: 211.64379337119803\n", + "gradient: [ 1.89534178 3.4742562 -4.72832368 2.59542646] \n", + "\n", + "New evaluation:\n", + "loss: 211.03059735595548\n", + "gradient: [-0.1876264 1.49285029 0.30865261 0.57026891] \n", + "\n", + "New evaluation:\n", + "loss: 211.61567348158064\n", + "gradient: [ 0.84639555 -0.77154541 4.14749791 4.05184435] \n", + "\n", + "New evaluation:\n", + "loss: 210.98155517365066\n", + "gradient: [-0.14876527 0.7800694 0.94627185 1.20584718] \n", + "\n", + "New evaluation:\n", + "loss: 210.93162542626874\n", + "gradient: [0.15724513 0.1288766 0.00253707 0.05240691] \n", + "\n", + "New evaluation:\n", + "loss: 210.93082653340437\n", + "gradient: [-0.00132054 -0.0035133 0.02504171 -0.02314102] \n", + "\n", + "New evaluation:\n", + "loss: 210.93078500528964\n", + "gradient: [-0.00262427 0.00059188 -0.00135901 0.00046738] \n", + "\n", + "New evaluation:\n", + "loss: 210.9307849448189\n", + "gradient: [-1.01073945e-04 2.07294770e-05 -1.12386369e-04 -1.69758444e-05] \n", + "\n", + "tot chi2: 894.7940328879881\n", + "tot gradient: [18.53579088]\n", + "log10 hyperpars: [0.35717143] ['beta']\n", + "New evaluation:\n", + "loss: 232.03396939608317\n", + "gradient: [-71.76903903 -5.50396973 -51.47297004 -14.96441254] \n", + "\n", + "New evaluation:\n", + "loss: 211.76582088855565\n", + "gradient: [ 3.23834426 -0.45304841 8.63445538 -4.33522646] \n", + "\n", + "New evaluation:\n", + "loss: 676.8251427146291\n", + "gradient: [ 92.91772435 -102.83259397 -6.17352662 76.77126584] \n", + "\n", + "New evaluation:\n", + "loss: 211.005940660331\n", + "gradient: [ 3.23402109 0.64286253 9.2211009 -2.31609381] \n", + "\n", + "New evaluation:\n", + "loss: 209.47930720990993\n", + "gradient: [ 3.71412477 0.30150514 9.89399907 -1.33202318] \n", + "\n", + "New evaluation:\n", + "loss: 209.53313263217785\n", + "gradient: [ 4.09299749 7.70089518 -16.95611264 9.9258545 ] \n", + "\n", + "New evaluation:\n", + "loss: 206.9401973990978\n", + "gradient: [3.93244715 1.75431698 5.86531031 2.72850922] \n", + "\n", + "New evaluation:\n", + "loss: 210.57214626937093\n", + "gradient: [ 4.61763851 10.68579016 -25.26743873 10.2479901 ] \n", + "\n", + "New evaluation:\n", + "loss: 206.76618081014152\n", + "gradient: [3.89139247 2.5709666 3.08538206 3.45955225] \n", + "\n", + "New evaluation:\n", + "loss: 206.50642062171104\n", + "gradient: [4.27318903 1.2529256 2.8535005 2.63594297] \n", + "\n", + "New evaluation:\n", + "loss: 206.02557080707425\n", + "gradient: [4.667605 0.31848943 2.7070893 1.28207186] \n", + "\n", + "New evaluation:\n", + "loss: 205.18157889813935\n", + "gradient: [ 4.22266103 -1.10489226 2.13495431 -0.78682967] \n", + "\n", + "New evaluation:\n", + "loss: 207.91777828629802\n", + "gradient: [-21.53021487 -4.32188343 -16.17097586 -6.93328244] \n", + "\n", + "New evaluation:\n", + "loss: 204.86889036896022\n", + "gradient: [ 1.92347349 -1.73152198 0.48710801 -1.83382538] \n", + "\n", + "New evaluation:\n", + "loss: 204.7421198199963\n", + "gradient: [-0.15815263 -1.36716697 -0.45082508 -1.8966432 ] \n", + "\n", + "New evaluation:\n", + "loss: 204.66289657183862\n", + "gradient: [ 0.07676893 -0.23719102 0.09759425 -0.81558824] \n", + "\n", + "New evaluation:\n", + "loss: 204.64259846665314\n", + "gradient: [ 0.02734653 0.01348662 -0.04083075 -0.15663921] \n", + "\n", + "New evaluation:\n", + "loss: 204.64075996910384\n", + "gradient: [0.01408474 0.00705757 0.00300181 0.00693931] \n", + "\n", + "New evaluation:\n", + "loss: 204.64075550416442\n", + "gradient: [-0.00121561 0.00078116 -0.0021031 0.00076251] \n", + "\n", + "New evaluation:\n", + "loss: 204.64075544825772\n", + "gradient: [ 5.10770525e-05 -2.83578977e-05 9.43771111e-05 -8.95729256e-06] \n", + "\n", + "New evaluation:\n", + "loss: 221.23567772331504\n", + "gradient: [-49.15856977 -1.00016728 -37.85442478 -6.89416624] \n", + "\n", + "New evaluation:\n", + "loss: 221.37654084186187\n", + "gradient: [ 7.52859028 4.50775417 15.73658673 12.78539127] \n", + "\n", + "New evaluation:\n", + "loss: 209.573927751872\n", + "gradient: [0.44378755 4.1186801 5.04894793 4.39187274] \n", + "\n", + "New evaluation:\n", + "loss: 311.0662376375898\n", + "gradient: [ 27.89674402 3.25705767 11.96770347 -35.05391051] \n", + "\n", + "New evaluation:\n", + "loss: 208.8629506557698\n", + "gradient: [1.79486315 1.18086888 4.3365605 0.37619004] \n", + "\n", + "New evaluation:\n", + "loss: 209.40520961783574\n", + "gradient: [ 3.65138997 4.53890888 -5.86582301 2.10323832] \n", + "\n", + "New evaluation:\n", + "loss: 208.49319405750595\n", + "gradient: [1.50478974 1.96462106 1.45298702 0.78056465] \n", + "\n", + "New evaluation:\n", + "loss: 208.32109683046204\n", + "gradient: [1.71396456 1.44902762 3.75975336 3.52507626] \n", + "\n", + "New evaluation:\n", + "loss: 208.06266219885285\n", + "gradient: [0.81341421 1.09773365 1.42245511 1.74446043] \n", + "\n", + "New evaluation:\n", + "loss: 207.86368243092397\n", + "gradient: [-0.00268631 0.62881392 -0.14833686 -0.10194165] \n", + "\n", + "New evaluation:\n", + "loss: 207.56983760545472\n", + "gradient: [-0.22096889 1.40449787 -3.53315024 0.94541268] \n", + "\n", + "New evaluation:\n", + "loss: 207.59943837898842\n", + "gradient: [-1.32378848 0.14269009 -4.98265443 3.03312874] \n", + "\n", + "New evaluation:\n", + "loss: 207.41422551700057\n", + "gradient: [-0.8394634 0.80731705 -3.72578718 1.55502075] \n", + "\n", + "New evaluation:\n", + "loss: 207.26618334436782\n", + "gradient: [-0.75672986 0.10858264 -0.4599737 -0.18553878] \n", + "\n", + "New evaluation:\n", + "loss: 207.25554710285653\n", + "gradient: [-0.08844533 0.00864203 -0.00926685 0.00903249] \n", + "\n", + "New evaluation:\n", + "loss: 207.2553790652052\n", + "gradient: [0.00212654 0.0002659 0.01507085 0.01916811] \n", + "\n", + "New evaluation:\n", + "loss: 207.25537108713738\n", + "gradient: [0.00582559 0.00022719 0.0090145 0.00698689] \n", + "\n", + "New evaluation:\n", + "loss: 207.2553699048295\n", + "gradient: [0.00166704 0.0001634 0.00132907 0.00045368] \n", + "\n", + "New evaluation:\n", + "loss: 207.2553698813851\n", + "gradient: [3.11411140e-04 4.27564233e-05 1.74986060e-04 1.92047929e-05] \n", + "\n", + "tot chi2: 887.5789184802024\n", + "tot gradient: [-4.60536025]\n", + "log10 hyperpars: [0.55452761] ['beta']\n", + "New evaluation:\n", + "loss: 232.03396939608317\n", + "gradient: [-71.76903903 -5.50396973 -51.47297004 -14.96441254] \n", + "\n", + "New evaluation:\n", + "loss: 214.271667824042\n", + "gradient: [ 4.5914857 -0.70548939 10.18581116 -4.05188238] \n", + "\n", + "New evaluation:\n", + "loss: 586.9631289128732\n", + "gradient: [ 97.14783651 -124.06956058 -43.32862271 68.52838694] \n", + "\n", + "New evaluation:\n", + "loss: 213.47985981221785\n", + "gradient: [ 4.61209236 0.41281264 10.81912774 -2.00931285] \n", + "\n", + "New evaluation:\n", + "loss: 211.8835936317618\n", + "gradient: [ 5.09609873 0.20609939 11.48372432 -0.9295622 ] \n", + "\n", + "New evaluation:\n", + "loss: 212.566861898853\n", + "gradient: [ 5.54002674 9.01146921 -19.01113923 11.23898677] \n", + "\n", + "New evaluation:\n", + "loss: 209.36555684003542\n", + "gradient: [5.34378076 1.84521447 7.39640325 3.09086691] \n", + "\n", + "New evaluation:\n", + "loss: 213.95611942313502\n", + "gradient: [ 6.32853512 13.49299458 -29.18457481 11.69857005] \n", + "\n", + "New evaluation:\n", + "loss: 209.11905364136842\n", + "gradient: [5.32549478 2.9519611 4.10959075 3.94347704] \n", + "\n", + "New evaluation:\n", + "loss: 208.74672398641576\n", + "gradient: [5.89978623 1.44688963 3.64252987 3.27623167] \n", + "\n", + "New evaluation:\n", + "loss: 208.02305345208413\n", + "gradient: [6.50089824 0.53992745 3.49225261 2.03465716] \n", + "\n", + "New evaluation:\n", + "loss: 206.78738288802194\n", + "gradient: [ 0.04675976 -3.6353304 -2.99590252 -3.77062281] \n", + "\n", + "New evaluation:\n", + "loss: 206.3390122808591\n", + "gradient: [ 4.71463888 -1.12246291 2.98088233 -1.01034175] \n", + "\n", + "New evaluation:\n", + "loss: 205.9436576683208\n", + "gradient: [ 0.51752149 -0.17076591 0.92356419 -0.64148279] \n", + "\n", + "New evaluation:\n", + "loss: 205.92632172797\n", + "gradient: [-0.23571845 -0.08379514 -0.19020085 -0.1597507 ] \n", + "\n", + "New evaluation:\n", + "loss: 205.92538472752742\n", + "gradient: [ 0.06184919 0.02414362 -0.00259994 0.03273122] \n", + "\n", + "New evaluation:\n", + "loss: 205.92531048508616\n", + "gradient: [ 1.82600391e-03 2.01130021e-03 -2.38895859e-03 -3.80609591e-05] \n", + "\n", + "New evaluation:\n", + "loss: 205.92530995146018\n", + "gradient: [-4.99669576e-05 -1.37038415e-04 -2.66498589e-04 -2.52655087e-04] \n", + "\n", + "New evaluation:\n", + "loss: 221.23567772331504\n", + "gradient: [-49.15856977 -1.00016728 -37.85442478 -6.89416624] \n", + "\n", + "New evaluation:\n", + "loss: 223.9487272167706\n", + "gradient: [ 8.87600612 4.20501293 17.30242419 13.0242538 ] \n", + "\n", + "New evaluation:\n", + "loss: 210.15112332239443\n", + "gradient: [-0.04813627 3.82942899 4.67009888 3.89711504] \n", + "\n", + "New evaluation:\n", + "loss: 311.38815550031035\n", + "gradient: [ 34.59384328 6.96209879 19.77231571 -39.3383884 ] \n", + "\n", + "New evaluation:\n", + "loss: 209.50043572541665\n", + "gradient: [1.33751531 1.05114649 3.96389897 0.15166911] \n", + "\n", + "New evaluation:\n", + "loss: 209.93582968250874\n", + "gradient: [ 3.17444125 4.09436679 -5.22454855 2.14875933] \n", + "\n", + "New evaluation:\n", + "loss: 209.16568351328274\n", + "gradient: [1.15212479 1.8244872 1.19284552 0.71806997] \n", + "\n", + "New evaluation:\n", + "loss: 209.20084032372208\n", + "gradient: [1.50140586 0.87460869 3.94702846 3.6647978 ] \n", + "\n", + "New evaluation:\n", + "loss: 209.0255468989132\n", + "gradient: [1.11097747 1.09861823 2.23462539 1.91933373] \n", + "\n", + "New evaluation:\n", + "loss: 208.90648790399834\n", + "gradient: [0.32554374 0.4763294 0.22986958 0.35521805] \n", + "\n", + "New evaluation:\n", + "loss: 208.88586515209911\n", + "gradient: [-0.05440473 0.10144481 -0.0059447 -0.10521989] \n", + "\n", + "New evaluation:\n", + "loss: 208.87697358695286\n", + "gradient: [-0.04523425 0.08723804 -0.16462321 -0.02558974] \n", + "\n", + "New evaluation:\n", + "loss: 208.87476262933492\n", + "gradient: [-0.01035067 0.01518465 0.01880018 0.01102824] \n", + "\n", + "New evaluation:\n", + "loss: 208.87452529351228\n", + "gradient: [0.01083059 0.00984268 0.01144664 0.01587712] \n", + "\n", + "New evaluation:\n", + "loss: 208.87450614942486\n", + "gradient: [0.00315144 0.00098567 0.00411748 0.00263992] \n", + "\n", + "New evaluation:\n", + "loss: 208.87450582210687\n", + "gradient: [3.53598645e-04 4.98039088e-05 3.80301115e-04 2.13229290e-04] \n", + "\n", + "tot chi2: 889.995997900537\n", + "tot gradient: [29.22166146]\n", + "log10 hyperpars: [0.38421514] ['beta']\n", + "New evaluation:\n", + "loss: 232.03396939608317\n", + "gradient: [-71.76903903 -5.50396973 -51.47297004 -14.96441254] \n", + "\n", + "New evaluation:\n", + "loss: 212.04568915484313\n", + "gradient: [ 3.38947134 -0.48124256 8.80772026 -4.30358087] \n", + "\n", + "New evaluation:\n", + "loss: 666.8171379026545\n", + "gradient: [ 93.65441089 -107.85286177 -9.50518232 76.81650619] \n", + "\n", + "New evaluation:\n", + "loss: 211.2837485978145\n", + "gradient: [ 3.38789891 0.61503935 9.39879795 -2.28538601] \n", + "\n", + "New evaluation:\n", + "loss: 209.75211004107572\n", + "gradient: [ 3.86758695 0.28926267 10.07141324 -1.29148567] \n", + "\n", + "New evaluation:\n", + "loss: 209.83394370095203\n", + "gradient: [ 4.24968664 7.79759846 -16.98565031 10.03063423] \n", + "\n", + "New evaluation:\n", + "loss: 207.21114984993562\n", + "gradient: [4.08995487 1.76850814 6.02201705 2.77785479] \n", + "\n", + "New evaluation:\n", + "loss: 210.83935271951788\n", + "gradient: [ 4.78991379 10.82094121 -25.21720998 10.29654185] \n", + "\n", + "New evaluation:\n", + "loss: 207.03003969189177\n", + "gradient: [4.05222897 2.61238888 3.18257354 3.5200807 ] \n", + "\n", + "New evaluation:\n", + "loss: 206.75920481847206\n", + "gradient: [4.45280084 1.27034774 2.93505747 2.70540322] \n", + "\n", + "New evaluation:\n", + "loss: 206.25405679130856\n", + "gradient: [4.86691474 0.34223605 2.79838961 1.36245465] \n", + "\n", + "New evaluation:\n", + "loss: 205.3604281138922\n", + "gradient: [ 4.40947811 -1.08619235 2.19922321 -0.69944533] \n", + "\n", + "New evaluation:\n", + "loss: 208.17022544477564\n", + "gradient: [-22.11922566 -4.39302695 -16.64752112 -7.01256422] \n", + "\n", + "New evaluation:\n", + "loss: 205.02552113156412\n", + "gradient: [ 1.98668858 -1.74023682 0.46663949 -1.78997654] \n", + "\n", + "New evaluation:\n", + "loss: 204.89681025126873\n", + "gradient: [-0.18019824 -1.39424673 -0.47820019 -1.92264266] \n", + "\n", + "New evaluation:\n", + "loss: 204.81742283420004\n", + "gradient: [ 0.09589706 -0.28296669 0.11359714 -0.8879087 ] \n", + "\n", + "New evaluation:\n", + "loss: 204.79469664227088\n", + "gradient: [ 0.03286061 0.0113333 -0.03918368 -0.17615353] \n", + "\n", + "New evaluation:\n", + "loss: 204.79251906761823\n", + "gradient: [0.01767569 0.00780288 0.00400552 0.00800996] \n", + "\n", + "New evaluation:\n", + "loss: 204.79251280550264\n", + "gradient: [-0.001524 0.00100099 -0.00262762 0.0009533 ] \n", + "\n", + "New evaluation:\n", + "loss: 204.79251271800513\n", + "gradient: [ 4.39391404e-05 -2.11134106e-05 9.15505684e-05 -3.43898847e-07] \n", + "\n", + "New evaluation:\n", + "loss: 221.23567772331504\n", + "gradient: [-49.15856977 -1.00016728 -37.85442478 -6.89416624] \n", + "\n", + "New evaluation:\n", + "loss: 221.66381830127872\n", + "gradient: [ 7.6790779 4.47394218 15.911469 12.81206889] \n", + "\n", + "New evaluation:\n", + "loss: 209.64091135212422\n", + "gradient: [0.39080867 4.08513538 5.00761758 4.33449183] \n", + "\n", + "New evaluation:\n", + "loss: 311.1776835338745\n", + "gradient: [ 28.63356798 3.70348788 12.61420318 -35.49603353] \n", + "\n", + "New evaluation:\n", + "loss: 208.93726321789606\n", + "gradient: [1.74752102 1.16514654 4.29744219 0.34885573] \n", + "\n", + "New evaluation:\n", + "loss: 209.46436012012373\n", + "gradient: [ 3.59648305 4.4807359 -5.77655745 2.1060583 ] \n", + "\n", + "New evaluation:\n", + "loss: 208.57163071539298\n", + "gradient: [1.46861366 1.94736125 1.42479938 0.77218542] \n", + "\n", + "New evaluation:\n", + "loss: 208.4234783605237\n", + "gradient: [1.69087979 1.38214391 3.78564379 3.54060682] \n", + "\n", + "New evaluation:\n", + "loss: 208.19350349904786\n", + "gradient: [0.88763835 1.06066076 1.73682221 1.95178029] \n", + "\n", + "New evaluation:\n", + "loss: 208.01907843862497\n", + "gradient: [ 0.04730803 0.51677269 -0.05658037 -0.08939249] \n", + "\n", + "New evaluation:\n", + "loss: 207.82189908842207\n", + "gradient: [-0.09346888 1.03796431 -1.82002473 0.06434797] \n", + "\n", + "New evaluation:\n", + "loss: 208.2685216791058\n", + "gradient: [-0.49925967 1.13956947 -8.11565136 4.26157843] \n", + "\n", + "New evaluation:\n", + "loss: 207.73073824706995\n", + "gradient: [-0.21833657 1.22324086 -2.92393415 0.71746923] \n", + "\n", + "New evaluation:\n", + "loss: 207.60045651003009\n", + "gradient: [-0.61249834 0.82273199 -3.03499472 0.85907047] \n", + "\n", + "New evaluation:\n", + "loss: 207.4850867700933\n", + "gradient: [-0.39285518 -0.01893304 -0.26135872 -0.57043319] \n", + "\n", + "New evaluation:\n", + "loss: 207.4789503935545\n", + "gradient: [-0.06009742 -0.02127262 -0.18975204 -0.01242968] \n", + "\n", + "New evaluation:\n", + "loss: 207.47821268051658\n", + "gradient: [-0.0234221 -0.00325716 -0.06007535 -0.03783993] \n", + "\n", + "New evaluation:\n", + "loss: 207.47815796319986\n", + "gradient: [ 0.00140344 0.00036995 -0.00589995 -0.00730404] \n", + "\n", + "New evaluation:\n", + "loss: 207.47815618585565\n", + "gradient: [ 0.00145693 0.00016418 0.00068296 -0.00026561] \n", + "\n", + "New evaluation:\n", + "loss: 207.4781561577433\n", + "gradient: [2.55512943e-04 2.05997923e-05 1.86046297e-04 5.48213586e-05] \n", + "\n", + "tot chi2: 887.4661931067969\n", + "tot gradient: [-3.69541277]\n", + "log10 hyperpars: [0.4458335] ['beta']\n", + "New evaluation:\n", + "loss: 232.03396939608317\n", + "gradient: [-71.76903903 -5.50396973 -51.47297004 -14.96441254] \n", + "\n", + "New evaluation:\n", + "loss: 212.7523686136294\n", + "gradient: [ 3.77107377 -0.552434 9.24522154 -4.22367437] \n", + "\n", + "New evaluation:\n", + "loss: 641.3324217635671\n", + "gradient: [ 95.63238095 -117.69247433 -18.98608795 75.57387073] \n", + "\n", + "New evaluation:\n", + "loss: 211.98374324541965\n", + "gradient: [ 3.77646286 0.54686365 9.8481762 -2.20442015] \n", + "\n", + "New evaluation:\n", + "loss: 210.43677378343565\n", + "gradient: [ 4.25599522 0.25970364 10.51950266 -1.18519089] \n", + "\n", + "New evaluation:\n", + "loss: 210.62576282219504\n", + "gradient: [ 4.6495577 8.08571695 -17.23905842 10.33134846] \n", + "\n", + "New evaluation:\n", + "loss: 207.89480977378184\n", + "gradient: [4.48785766 1.80058708 6.43177287 2.89308574] \n", + "\n", + "New evaluation:\n", + "loss: 211.61343144535914\n", + "gradient: [ 5.24413561 11.32278962 -25.55324328 10.52939372] \n", + "\n", + "New evaluation:\n", + "loss: 207.6945134263444\n", + "gradient: [4.45821183 2.71917444 3.44188797 3.66669505] \n", + "\n", + "New evaluation:\n", + "loss: 207.3937289773722\n", + "gradient: [4.90960439 1.31873765 3.14474702 2.88290116] \n", + "\n", + "New evaluation:\n", + "loss: 206.82363893267328\n", + "gradient: [5.37739454 0.40062453 3.02172098 1.56655888] \n", + "\n", + "New evaluation:\n", + "loss: 205.8004458440483\n", + "gradient: [ 4.86949625 -1.05365171 2.32793528 -0.48823356] \n", + "\n", + "New evaluation:\n", + "loss: 208.91700728772705\n", + "gradient: [-24.10001112 -4.60762004 -18.21949297 -7.29103685] \n", + "\n", + "New evaluation:\n", + "loss: 205.4141121973198\n", + "gradient: [ 2.14535026 -1.76653319 0.38995579 -1.67303566] \n", + "\n", + "New evaluation:\n", + "loss: 205.27804469028933\n", + "gradient: [-0.22050788 -1.46461754 -0.5474545 -1.98398545] \n", + "\n", + "New evaluation:\n", + "loss: 205.19801598964574\n", + "gradient: [ 0.15675817 -0.39065584 0.15352709 -1.05168344] \n", + "\n", + "New evaluation:\n", + "loss: 205.16916080888038\n", + "gradient: [ 0.05105295 0.0029771 -0.0325884 -0.23357981] \n", + "\n", + "New evaluation:\n", + "loss: 205.16585967674632\n", + "gradient: [0.02895541 0.00965887 0.0082039 0.01092303] \n", + "\n", + "New evaluation:\n", + "loss: 205.16584629925828\n", + "gradient: [-0.00259192 0.00164673 -0.00431723 0.00145452] \n", + "\n", + "New evaluation:\n", + "loss: 205.16584606851404\n", + "gradient: [7.94710713e-06 2.58742846e-05 3.23890261e-05 4.59236454e-05] \n", + "\n", + "New evaluation:\n", + "loss: 221.23567772331504\n", + "gradient: [-49.15856977 -1.00016728 -37.85442478 -6.89416624] \n", + "\n", + "New evaluation:\n", + "loss: 222.38920629269052\n", + "gradient: [ 8.05906563 4.38856545 16.3530543 12.87943104] \n", + "\n", + "New evaluation:\n", + "loss: 209.8071476437492\n", + "gradient: [0.25436565 4.00183284 4.9018021 4.1920044 ] \n", + "\n", + "New evaluation:\n", + "loss: 311.3810695617588\n", + "gradient: [ 30.51437644 4.80417571 14.49535704 -36.66286951] \n", + "\n", + "New evaluation:\n", + "loss: 209.12128729176206\n", + "gradient: [1.62333107 1.12665314 4.19537128 0.28213748] \n", + "\n", + "New evaluation:\n", + "loss: 209.61428055497058\n", + "gradient: [ 3.46017809 4.34412466 -5.57350443 2.11569426] \n", + "\n", + "New evaluation:\n", + "loss: 208.76583353749476\n", + "gradient: [1.37335251 1.90539093 1.35245643 0.75235796] \n", + "\n", + "New evaluation:\n", + "loss: 208.67728264991712\n", + "gradient: [1.63164459 1.21635878 3.84487365 3.5797089 ] \n", + "\n", + "New evaluation:\n", + "loss: 208.52455956521493\n", + "gradient: [1.12532789 1.0166501 2.60011236 2.58780453] \n", + "\n", + "New evaluation:\n", + "loss: 208.3455747655091\n", + "gradient: [0.23672521 0.38514756 0.30201198 0.20414537] \n", + "\n", + "New evaluation:\n", + "loss: 208.30352952850288\n", + "gradient: [ 0.03635141 0.4308279 -0.34081622 -0.0323984 ] \n", + "\n", + "New evaluation:\n", + "loss: 208.2169694916916\n", + "gradient: [-0.20091014 0.59449954 -1.01090313 -0.03871337] \n", + "\n", + "New evaluation:\n", + "loss: 209.31259452250944\n", + "gradient: [-0.78003804 0.89647309 -9.7708917 6.0935469 ] \n", + "\n", + "New evaluation:\n", + "loss: 208.15377631093327\n", + "gradient: [-0.34949639 0.84663101 -1.89598071 0.45386686] \n", + "\n", + "New evaluation:\n", + "loss: 209.17289828313977\n", + "gradient: [-1.48417344 0.10838997 -8.96093914 5.66561765] \n", + "\n", + "New evaluation:\n", + "loss: 208.11439353174507\n", + "gradient: [-0.55875429 0.83367011 -2.42139398 0.80036006] \n", + "\n", + "New evaluation:\n", + "loss: 208.05141073267492\n", + "gradient: [-0.82299328 0.50313292 -1.99326245 0.37084344] \n", + "\n", + "New evaluation:\n", + "loss: 208.005780465015\n", + "gradient: [-0.19611367 0.03849557 -0.41945636 -0.16381012] \n", + "\n", + "New evaluation:\n", + "loss: 208.0043954397089\n", + "gradient: [-0.04164906 -0.00340166 -0.15028751 -0.05184661] \n", + "\n", + "New evaluation:\n", + "loss: 208.00413699300728\n", + "gradient: [ 0.0135647 -0.01458267 0.0441525 -0.05192956] \n", + "\n", + "New evaluation:\n", + "loss: 208.00407534688708\n", + "gradient: [ 0.00185338 -0.00251095 0.00534223 -0.00327808] \n", + "\n", + "New evaluation:\n", + "loss: 208.00407421912914\n", + "gradient: [-0.00050894 -0.00012593 -0.0004843 -0.00018283] \n", + "\n", + "tot chi2: 887.3288621393083\n", + "tot gradient: [-0.38020489]\n" + ] + } + ], + "source": [ + "starting_beta = 1\n", + "\n", + "mini = hyper_minimizer(data, regularization = regularization, starting_beta = starting_beta, random_states = 2)" + ] + }, + { + "cell_type": "code", + "execution_count": 37, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + " fun: 887.3288621393083\n", + " hess_inv: array([[0.02972008]])\n", + " jac: array([-0.38020489])\n", + " message: 'Optimization terminated successfully.'\n", + " nfev: 8\n", + " nit: 4\n", + " njev: 8\n", + " status: 0\n", + " success: True\n", + " x: array([0.4458335])" + ] + }, + "execution_count": 37, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "mini" + ] + }, + { + "cell_type": "code", + "execution_count": 46, + "metadata": {}, + "outputs": [], + "source": [ + "log10_betas = np.arange(-2, 7, 0.5)\n", + "random_states = np.arange(2)\n", + "\n", + "Results = {}\n", + "\n", + "for random_state in random_states:\n", + " \n", + " Results[random_state] = {}\n", + "\n", + " data_train, data_test, test_obs, test_frames = select_traintest(data, random_state = random_state)\n", + "\n", + " for log10_beta in log10_betas:\n", + "\n", + " print(random_state, log10_beta)\n", + "\n", + " beta = 10**np.float64(log10_beta)\n", + " Results[random_state][log10_beta] = minimizer(data_train, regularization = regularization, beta = beta, data_test = data_test)\n", + "\n", + " clear_output()" + ] + }, + { + "cell_type": "code", + "execution_count": 47, + "metadata": {}, + "outputs": [], + "source": [ + "chi2s = []\n", + "chi2s_test1 = []\n", + "chi2s_test2 = []\n", + "\n", + "for random_state in random_states:\n", + "\n", + " chi2s.append([np.sum(unwrap_dict(Results[random_state][log10_beta].chi2)) for log10_beta in log10_betas])\n", + " chi2s_test1.append([np.sum(unwrap_dict(Results[random_state][log10_beta].chi2_test)) for log10_beta in log10_betas]) # .chi2_test\n", + " chi2s_test2.append([np.sum(unwrap_dict(Results[random_state][log10_beta].chi2_new_obs)) for log10_beta in log10_betas]) # .chi2_test\n" + ] + }, + { + "cell_type": "code", + "execution_count": 50, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([809.5228564 , 809.52341081, 809.52885058, 809.58025051,\n", + " 810.03572158, 814.556873 , 826.18925646, 846.9433294 ,\n", + " 875.85522829, 894.73193725, 902.54606228, 905.24866257,\n", + " 906.12830864, 906.40904183, 906.49807601, 906.52625701,\n", + " 906.53517122, 906.5379904 ])" + ] + }, + "execution_count": 50, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "np.sum(chi2s, axis = 0)" + ] + }, + { + "cell_type": "code", + "execution_count": 56, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "# plt.plot(log10_betas, np.mean(chi2s, axis = 0), '.-', label = 'training', color = 'tab:blue')\n", + "plt.plot(log10_betas, np.mean(chi2s_test1, axis = 0), '.-', label = 'test frames', color = 'tab:orange')\n", + "# plt.plot(log10_betas, np.mean(chi2s_test2, axis = 0), '.-', label = 'test observables', color = 'tab:green')\n", + "\n", + "for i in range(len(chi2s)):\n", + " # plt.plot(log10_betas, chi2s[i], '.--', color = 'tab:blue')\n", + " plt.plot(log10_betas, chi2s_test1[i], '.--', color = 'tab:orange')\n", + " # plt.plot(log10_betas, chi2s_test2[i], '.--', color = 'tab:green')\n", + "\n", + "plt.legend()\n", + "plt.title('$\\chi^2$')\n", + "plt.xlabel(r'$\\log_{10}\\beta$')\n", + "plt.grid()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 2b. Force-field refinement - alchemical calculations" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### a. Load data" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [], + "source": [ + "infos = {}\n", + "\n", + "infos['global'] = {}\n", + "infos['global']['temperature'] = 2.476\n", + "infos['global']['path_directory'] = 'DATA_alchemical'\n", + "\n", + "# for alchemical calculations, we have both system_names (names of each molecular system) and cycle_names (names of\n", + "# the thermodynamic cycles); each cycle is composed by 4 systems; system_names with corresponding thermodynamic\n", + "# cycle must be defined as 'cycle_name'+'_'+s for s in ['AS','AD','MS','MD'] (A for adenosine, M for methylated;\n", + "# S for single, D for double strand). The experimental DG is between (AS, AD) and (MS, MD), the simulated one is\n", + "# between (AS, MS) and (AD, MD).\n", + "\n", + "infos['global']['cycle_names'] = ['A1','A2','A3','A4','A5']#,'B1','B2','B3','B4','B5']\n", + "\n", + "system_names = []\n", + "for name in infos['global']['cycle_names']:\n", + " for string in ['AS','AD','MS','MD']:\n", + " system_names.append(name+'_'+string)\n", + "\n", + "infos['global']['system_names'] = system_names\n", + "\n", + "# force-field correction terms\n", + "\n", + "n_charges = 5\n", + "\n", + "infos['global']['names_ff_pars'] = ['DQ %i' % (i+1) for i in range(n_charges)] + ['cos eta']\n", + "\n", + "columns = []\n", + "for i in range(n_charges):\n", + " columns.append('DQ %i' % (i+1))\n", + " columns.append('DQ %i%i' % (i+1,i+1))\n", + "for i in range(n_charges):\n", + " for j in range(i+1,n_charges):\n", + " columns.append('DQ %i%i' % (i+1,j+1))\n", + "columns.append('cos eta')\n", + "\n", + "# only methylated (M) systems have a force-field correction\n", + "\n", + "for name in system_names: infos[name] = {}\n", + "\n", + "for name in infos['global']['cycle_names']:\n", + " for s in ['D','S']:\n", + " infos[name + '_M' + s]['ff_terms'] = columns" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "define the force-field correction:\n", + "- use jax.numpy rather than numpy in order to do automatic differentiation\n", + "- phi is: ['DQ %i' for i in range(n_charges)] + ['cos eta']\n", + "- phi_vector is\n", + "\n", + "['DQ 1', 'DQ 11', 'DQ 2', 'DQ 22', 'DQ 3', 'DQ 33', 'DQ 4', 'DQ 44', 'DQ 5', 'DQ 55', 'DQ 12', 'DQ 13', 'DQ 14', 'DQ 15', 'DQ 23', 'DQ 24', 'DQ 25', 'DQ 34', 'DQ 35', 'DQ 45', 'cos eta']\n", + "\n", + "where 2 numbers (such as 'DQ 11' or 'DQ 23') mean the product 'DQ 1 * DQ 1' or 'DQ 2 * DQ 3'." + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [], + "source": [ + "import jax.numpy as jnp" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [], + "source": [ + "def ff_correction(phi, ff_terms):\n", + "\n", + " n_charges = 5\n", + "\n", + " phi_vector = []\n", + " for i in range(n_charges):\n", + " phi_vector.extend([phi[i], phi[i]**2])\n", + " for i in range(n_charges):\n", + " for j in range(i+1,n_charges):\n", + " phi_vector.append(phi[i]*phi[j])\n", + " phi_vector.append(phi[-1])\n", + " phi_vector = jnp.array(phi_vector)\n", + "\n", + " correction = jnp.matmul(ff_terms, phi_vector)\n", + "\n", + " return correction" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [], + "source": [ + "for k in system_names:\n", + " if k[-2] == 'M': \n", + " infos[k]['ff_correction'] = ff_correction" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "WARNING:absl:No GPU/TPU found, falling back to CPU. (Set TF_CPP_MIN_LOG_LEVEL=0 and rerun for more info.)\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "loading data from directory...\n", + "loading A1_AS\n", + "loading A1_AD\n", + "loading A1_MS\n", + "loading A1_MD\n", + "loading A2_AS\n", + "loading A2_AD\n", + "loading A2_MS\n", + "loading A2_MD\n", + "loading A3_AS\n", + "loading A3_AD\n", + "loading A3_MS\n", + "loading A3_MD\n", + "loading A4_AS\n", + "loading A4_AD\n", + "loading A4_MS\n", + "loading A4_MD\n", + "loading A5_AS\n", + "loading A5_AD\n", + "loading A5_MS\n", + "loading A5_MD\n", + "done\n" + ] + } + ], + "source": [ + "data = load_data(infos)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Define regularization. Rather than 'plain l2', we now have a constraint due to the requirement $\\sum_{i=0}^5 \\Delta Q_i + 2\\Delta Q_4 = 0$ (total charge constant, with 3 $Q_4$ charges), so we have defined 'constraint 1' as regularization in Functions.py\n", + "\n", + "\\begin{equation}\n", + "\\sum_{i=0}^4 \\Delta Q_i^2 + \\Delta Q_5^2 = \\sum_{i=0}^4 \\Delta Q_i^2 + \\Bigl(\\sum_{i=0}^4 \\Delta Q_i + 2 \\Delta Q_4\\Bigr)^2.\n", + "\\end{equation}" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [], + "source": [ + "regularization = {'force_field_reg': 'constraint 1'}" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "It can also be defined by the user" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [], + "source": [ + "def my_ff_reg(pars):\n", + " lossf_reg = jnp.sum(pars[:-1]**2)+(np.sum(pars[:-1])+2*pars[4])**2\n", + " return lossf_reg" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [], + "source": [ + "regularization = {'force_field_reg': my_ff_reg}" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In order to avoid numerical issues, put to zero the force-field correction terms corresponding to zero original weights; you could also this in a different way, by selecting only frames with non-zero weights, but then you would have to take this into account when computing the relative entropy or the Kish sample size." + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [], + "source": [ + "for s in data['global'].system_names:\n", + " # BE CAREFUL!!!\n", + " # if you do this, then when you compute the relative entropy or Kish size,\n", + " # you have to take into account how many zero frames there was\n", + "\n", + " # wh = np.argwhere(data.weights[s]!=0).flatten()\n", + "\n", + " # data.weights[s] = data.weights[s][wh]\n", + " # if s in data.f.keys():\n", + " # data.f[s] = data.f[s].iloc[wh]\n", + "\n", + " # otherwise, you can put to zero the corresponding force-field correction terms\n", + "\n", + " if hasattr(data[s], 'f'):\n", + " wh = np.argwhere(data[s].weights == 0).flatten()\n", + " data[s].f[wh] = 0" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Valerio put uncertainties = 1" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [], + "source": [ + "for s in data['global'].cycle_names:\n", + " data[s].gexp_DDG[1] = 1" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### b. Minimize the loss function and analyse the results - scan over $\\beta$" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [], + "source": [ + "betas = np.array([0.1, 0.5, 1, 2, 5, 10, 20, 50, 100, 200, 500, 1000, 10000, 100000])" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "beta: 0.1\n", + "New evaluation:\n", + "logZ_P A1 MD -1.1102230246251565e-16\n", + "logZ_P A1 MS 0.0\n", + "DDG A1: 1.7104488457556373\n", + "logZ_P A2 MD 0.0\n", + "logZ_P A2 MS 0.0\n", + "DDG A2: 1.0928541288835474\n", + "logZ_P A3 MD 0.0\n", + "logZ_P A3 MS 0.0\n", + "DDG A3: 3.581180450804952\n", + "logZ_P A4 MD 0.0\n", + "logZ_P A4 MS -2.2204460492503136e-16\n", + "DDG A4: -2.352317534738276\n", + "logZ_P A5 MD 0.0\n", + "logZ_P A5 MS 0.0\n", + "DDG A5: -0.898174253203229\n", + "DDG loss: 17.239715782404367\n", + "loss: 17.239715782404367\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-1.11022302e-16, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(0., dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(1.71044885, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(0., dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(0., dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.09285413, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(0., dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(0., dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(3.58118045, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(0., dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-2.22044605e-16, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.35231753, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(0., dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(0., dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.89817425, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(17.23971578, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ -59.13012539 13.42119932 -159.92372304 4.94716807 -214.32616084\n", + " 17.13657393] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD 1006.7577376784199\n", + "logZ_P A1 MS 939.7778109380296\n", + "DDG A1: -164.13184976345045\n", + "logZ_P A2 MD 974.8972355044262\n", + "logZ_P A2 MS 943.2582091009479\n", + "DDG A2: -77.24537524612882\n", + "logZ_P A3 MD 990.5815404433171\n", + "logZ_P A3 MS 935.160148342064\n", + "DDG A3: -133.6421863918977\n", + "logZ_P A4 MD 959.0058460528109\n", + "logZ_P A4 MS 944.7166389943977\n", + "DDG A4: -37.73239421136925\n", + "logZ_P A5 MD 929.5784480542364\n", + "logZ_P A5 MS 954.2829294045308\n", + "DDG A5: 60.27012157012564\n", + "DDG loss: 30084.684143098293\n", + "loss: 30085.74737005484\n" + ] + }, + { + "ename": "KeyboardInterrupt", + "evalue": "", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mKeyboardInterrupt\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[1;32m 4\u001b[0m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'beta: '\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mbeta\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 5\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 6\u001b[0;31m \u001b[0mResults\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mbeta\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mminimizer\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdata\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mregularization\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mregularization\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mbeta\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mbeta\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 7\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 8\u001b[0m \u001b[0mclear_output\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/3_alphabetagamma/Functions.py\u001b[0m in \u001b[0;36mminimizer\u001b[0;34m(original_data, regularization, alpha, beta, gamma, gtol, gtol_inn, data_test, starting_pars)\u001b[0m\n\u001b[1;32m 1246\u001b[0m \u001b[0mgradient_fun\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mjax\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mgrad\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mloss_function\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0margnums\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;36m0\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1247\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1248\u001b[0;31m \u001b[0mmini\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mminimize\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mloss_function_and_grad\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mpars_ff_fm_0\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0margs\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0mdata\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mregularization\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0malpha\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mbeta\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mgamma\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mgtol_inn\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mmethod\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mbounds\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mgradient_fun\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mmethod\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m'BFGS'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mjac\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;32mTrue\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0moptions\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m{\u001b[0m\u001b[0;34m'gtol'\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mgtol\u001b[0m\u001b[0;34m}\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1249\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1250\u001b[0m \u001b[0mpars_ff_fm\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mmini\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mx\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/.local/lib/python3.6/site-packages/scipy/optimize/_minimize.py\u001b[0m in \u001b[0;36mminimize\u001b[0;34m(fun, x0, args, method, jac, hess, hessp, bounds, constraints, tol, callback, options)\u001b[0m\n\u001b[1;32m 610\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0m_minimize_cg\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfun\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mx0\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mjac\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcallback\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0moptions\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 611\u001b[0m \u001b[0;32melif\u001b[0m \u001b[0mmeth\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0;34m'bfgs'\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 612\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0m_minimize_bfgs\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfun\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mx0\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mjac\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcallback\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0moptions\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 613\u001b[0m \u001b[0;32melif\u001b[0m \u001b[0mmeth\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0;34m'newton-cg'\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 614\u001b[0m return _minimize_newtoncg(fun, x0, args, jac, hess, hessp, callback,\n", + "\u001b[0;32m~/.local/lib/python3.6/site-packages/scipy/optimize/optimize.py\u001b[0m in \u001b[0;36m_minimize_bfgs\u001b[0;34m(fun, x0, args, jac, callback, gtol, norm, eps, maxiter, disp, return_all, finite_diff_rel_step, **unknown_options)\u001b[0m\n\u001b[1;32m 1134\u001b[0m \u001b[0malpha_k\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mfc\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mgc\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mold_fval\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mold_old_fval\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mgfkp1\u001b[0m \u001b[0;34m=\u001b[0m\u001b[0;31m \u001b[0m\u001b[0;31m\\\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1135\u001b[0m _line_search_wolfe12(f, myfprime, xk, pk, gfk,\n\u001b[0;32m-> 1136\u001b[0;31m old_fval, old_old_fval, amin=1e-100, amax=1e100)\n\u001b[0m\u001b[1;32m 1137\u001b[0m \u001b[0;32mexcept\u001b[0m \u001b[0m_LineSearchError\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1138\u001b[0m \u001b[0;31m# Line search failed to find a better solution.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/.local/lib/python3.6/site-packages/scipy/optimize/optimize.py\u001b[0m in \u001b[0;36m_line_search_wolfe12\u001b[0;34m(f, fprime, xk, pk, gfk, old_fval, old_old_fval, **kwargs)\u001b[0m\n\u001b[1;32m 934\u001b[0m ret = line_search_wolfe1(f, fprime, xk, pk, gfk,\n\u001b[1;32m 935\u001b[0m \u001b[0mold_fval\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mold_old_fval\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 936\u001b[0;31m **kwargs)\n\u001b[0m\u001b[1;32m 937\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 938\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mret\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0;32mNone\u001b[0m \u001b[0;32mand\u001b[0m \u001b[0mextra_condition\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/.local/lib/python3.6/site-packages/scipy/optimize/linesearch.py\u001b[0m in \u001b[0;36mline_search_wolfe1\u001b[0;34m(f, fprime, xk, pk, gfk, old_fval, old_old_fval, args, c1, c2, amax, amin, xtol)\u001b[0m\n\u001b[1;32m 96\u001b[0m stp, fval, old_fval = scalar_search_wolfe1(\n\u001b[1;32m 97\u001b[0m \u001b[0mphi\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mderphi\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mold_fval\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mold_old_fval\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mderphi0\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 98\u001b[0;31m c1=c1, c2=c2, amax=amax, amin=amin, xtol=xtol)\n\u001b[0m\u001b[1;32m 99\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 100\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mstp\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mfc\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mgc\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mfval\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mold_fval\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mgval\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/.local/lib/python3.6/site-packages/scipy/optimize/linesearch.py\u001b[0m in \u001b[0;36mscalar_search_wolfe1\u001b[0;34m(phi, derphi, phi0, old_phi0, derphi0, c1, c2, amax, amin, xtol)\u001b[0m\n\u001b[1;32m 170\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mtask\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;36m2\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0;34mb'FG'\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 171\u001b[0m \u001b[0malpha1\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mstp\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 172\u001b[0;31m \u001b[0mphi1\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mphi\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mstp\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 173\u001b[0m \u001b[0mderphi1\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mderphi\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mstp\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 174\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/.local/lib/python3.6/site-packages/scipy/optimize/linesearch.py\u001b[0m in \u001b[0;36mphi\u001b[0;34m(s)\u001b[0m\n\u001b[1;32m 82\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mphi\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0ms\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 83\u001b[0m \u001b[0mfc\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m+=\u001b[0m \u001b[0;36m1\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 84\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mf\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mxk\u001b[0m \u001b[0;34m+\u001b[0m \u001b[0ms\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0mpk\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 85\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 86\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mderphi\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0ms\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/.local/lib/python3.6/site-packages/scipy/optimize/_differentiable_functions.py\u001b[0m in \u001b[0;36mfun\u001b[0;34m(self, x)\u001b[0m\n\u001b[1;32m 180\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0marray_equal\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mx\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mx\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 181\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_update_x_impl\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mx\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 182\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_update_fun\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 183\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mf\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 184\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/.local/lib/python3.6/site-packages/scipy/optimize/_differentiable_functions.py\u001b[0m in \u001b[0;36m_update_fun\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 164\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m_update_fun\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 165\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mf_updated\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 166\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_update_fun_impl\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 167\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mf_updated\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;32mTrue\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 168\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/.local/lib/python3.6/site-packages/scipy/optimize/_differentiable_functions.py\u001b[0m in \u001b[0;36mupdate_fun\u001b[0;34m()\u001b[0m\n\u001b[1;32m 71\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 72\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mupdate_fun\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 73\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mf\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mfun_wrapped\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mx\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 74\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 75\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_update_fun_impl\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mupdate_fun\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/.local/lib/python3.6/site-packages/scipy/optimize/_differentiable_functions.py\u001b[0m in \u001b[0;36mfun_wrapped\u001b[0;34m(x)\u001b[0m\n\u001b[1;32m 68\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mfun_wrapped\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mx\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 69\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mnfev\u001b[0m \u001b[0;34m+=\u001b[0m \u001b[0;36m1\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 70\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mfun\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mx\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 71\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 72\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mupdate_fun\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/.local/lib/python3.6/site-packages/scipy/optimize/optimize.py\u001b[0m in \u001b[0;36m__call__\u001b[0;34m(self, x, *args)\u001b[0m\n\u001b[1;32m 72\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m__call__\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mx\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 73\u001b[0m \u001b[0;34m\"\"\" returns the the function value \"\"\"\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 74\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_compute_if_needed\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mx\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 75\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_value\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 76\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/.local/lib/python3.6/site-packages/scipy/optimize/optimize.py\u001b[0m in \u001b[0;36m_compute_if_needed\u001b[0;34m(self, x, *args)\u001b[0m\n\u001b[1;32m 66\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mall\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mx\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mx\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mor\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_value\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mNone\u001b[0m \u001b[0;32mor\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mjac\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 67\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mx\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0masarray\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mx\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcopy\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 68\u001b[0;31m \u001b[0mfg\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfun\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mx\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 69\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mjac\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mfg\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 70\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_value\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mfg\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/3_alphabetagamma/Functions.py\u001b[0m in \u001b[0;36mloss_function_and_grad\u001b[0;34m(pars, data, regularization, alpha, beta, gamma, gtol_inn, method, boundaries, gradient_fun)\u001b[0m\n\u001b[1;32m 1067\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1068\u001b[0m \u001b[0;34m''' now evaluate the gradient w.r.t. pars at lambdas fixed (you are in the minimum: its contribute to the derivative is zero) '''\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1069\u001b[0;31m \u001b[0mgradient\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mgradient_fun\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mpars\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdata\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mregularization\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0malpha\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0malpha\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mbeta\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mbeta\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mgamma\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mgamma\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mfixed_lambdas\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mlambdas\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1070\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1071\u001b[0m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'gradient: '\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mgradient\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m'\\n'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + " \u001b[0;31m[... skipping hidden 1 frame]\u001b[0m\n", + "\u001b[0;32m~/.local/lib/python3.6/site-packages/jax/_src/api.py\u001b[0m in \u001b[0;36mgrad_f\u001b[0;34m(*args, **kwargs)\u001b[0m\n\u001b[1;32m 827\u001b[0m \u001b[0;34m@\u001b[0m\u001b[0mapi_boundary\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 828\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mgrad_f\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 829\u001b[0;31m \u001b[0m_\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mg\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mvalue_and_grad_f\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 830\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mg\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 831\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", + " \u001b[0;31m[... skipping hidden 1 frame]\u001b[0m\n", + "\u001b[0;32m~/.local/lib/python3.6/site-packages/jax/_src/api.py\u001b[0m in \u001b[0;36mvalue_and_grad_f\u001b[0;34m(*args, **kwargs)\u001b[0m\n\u001b[1;32m 899\u001b[0m \u001b[0mtree_map\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mpartial\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0m_check_input_dtype_grad\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mholomorphic\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mallow_int\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdyn_args\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 900\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0mhas_aux\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 901\u001b[0;31m \u001b[0mans\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mvjp_py\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0m_vjp\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mf_partial\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m*\u001b[0m\u001b[0mdyn_args\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mreduce_axes\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mreduce_axes\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 902\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 903\u001b[0m ans, vjp_py, aux = _vjp(\n", + "\u001b[0;32m~/.local/lib/python3.6/site-packages/jax/_src/api.py\u001b[0m in \u001b[0;36m_vjp\u001b[0;34m(fun, has_aux, reduce_axes, *primals)\u001b[0m\n\u001b[1;32m 1995\u001b[0m \u001b[0mflat_fun\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mout_tree\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mflatten_fun_nokwargs\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfun\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0min_tree\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1996\u001b[0m out_primal, out_vjp = ad.vjp(\n\u001b[0;32m-> 1997\u001b[0;31m flat_fun, primals_flat, reduce_axes=reduce_axes)\n\u001b[0m\u001b[1;32m 1998\u001b[0m \u001b[0mout_tree\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mout_tree\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1999\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/.local/lib/python3.6/site-packages/jax/interpreters/ad.py\u001b[0m in \u001b[0;36mvjp\u001b[0;34m(traceable, primals, has_aux, reduce_axes)\u001b[0m\n\u001b[1;32m 113\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mvjp\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mtraceable\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mprimals\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mhas_aux\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mFalse\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mreduce_axes\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 114\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0mhas_aux\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 115\u001b[0;31m \u001b[0mout_primals\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mpvals\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mjaxpr\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mconsts\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mlinearize\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mtraceable\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m*\u001b[0m\u001b[0mprimals\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 116\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 117\u001b[0m \u001b[0mout_primals\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mpvals\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mjaxpr\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mconsts\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0maux\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mlinearize\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mtraceable\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m*\u001b[0m\u001b[0mprimals\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mhas_aux\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mTrue\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/.local/lib/python3.6/site-packages/jax/interpreters/ad.py\u001b[0m in \u001b[0;36mlinearize\u001b[0;34m(traceable, *primals, **kwargs)\u001b[0m\n\u001b[1;32m 100\u001b[0m \u001b[0m_\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0min_tree\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mtree_flatten\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mprimals\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mprimals\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m{\u001b[0m\u001b[0;34m}\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 101\u001b[0m \u001b[0mjvpfun_flat\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mout_tree\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mflatten_fun\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mjvpfun\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0min_tree\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 102\u001b[0;31m \u001b[0mjaxpr\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mout_pvals\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mconsts\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mpe\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mtrace_to_jaxpr\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mjvpfun_flat\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0min_pvals\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 103\u001b[0m \u001b[0mout_primals_pvals\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mout_tangents_pvals\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mtree_unflatten\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mout_tree\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mout_pvals\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 104\u001b[0m \u001b[0;32massert\u001b[0m \u001b[0mall\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mout_primal_pval\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mis_known\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mout_primal_pval\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mout_primals_pvals\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/.local/lib/python3.6/site-packages/jax/interpreters/partial_eval.py\u001b[0m in \u001b[0;36mtrace_to_jaxpr\u001b[0;34m(fun, pvals, instantiate)\u001b[0m\n\u001b[1;32m 503\u001b[0m \u001b[0;32mwith\u001b[0m \u001b[0mcore\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mnew_main\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mJaxprTrace\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0mmain\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 504\u001b[0m \u001b[0mfun\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mtrace_to_subjaxpr\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfun\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mmain\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0minstantiate\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 505\u001b[0;31m \u001b[0mjaxpr\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0mout_pvals\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mconsts\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0menv\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mfun\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcall_wrapped\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mpvals\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 506\u001b[0m \u001b[0;32massert\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0menv\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 507\u001b[0m \u001b[0;32mdel\u001b[0m \u001b[0mmain\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mfun\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0menv\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/.local/lib/python3.6/site-packages/jax/linear_util.py\u001b[0m in \u001b[0;36mcall_wrapped\u001b[0;34m(self, *args, **kwargs)\u001b[0m\n\u001b[1;32m 164\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 165\u001b[0m \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 166\u001b[0;31m \u001b[0mans\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mf\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mdict\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mparams\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 167\u001b[0m \u001b[0;32mexcept\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 168\u001b[0m \u001b[0;31m# Some transformations yield from inside context managers, so we have to\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/3_alphabetagamma/Functions.py\u001b[0m in \u001b[0;36mloss_function\u001b[0;34m(pars_ff_fm, data, regularization, alpha, beta, gamma, fixed_lambdas, gtol_inn, if_save, method, bounds)\u001b[0m\n\u001b[1;32m 860\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0misinf\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mbeta\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 861\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mhasattr\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdata\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mname_sys\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m'ff_correction'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 862\u001b[0;31m \u001b[0mcorrection_ff\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mname_sys\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mcompute_ff_correction\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdata\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mname_sys\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mff_correction\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdata\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mname_sys\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mf\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mpars_ff\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;31m#, names_ff_pars)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 863\u001b[0m \u001b[0mweights_P\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mname_sys\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mlogZ_P\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mname_sys\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mcompute_new_weights\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdata\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mname_sys\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mweights\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcorrection_ff\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mname_sys\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m/\u001b[0m\u001b[0mdata\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mname_sys\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mtemperature\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 864\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/3_alphabetagamma/Functions.py\u001b[0m in \u001b[0;36mcompute_ff_correction\u001b[0;34m(ff_correction, f, pars)\u001b[0m\n\u001b[1;32m 549\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 550\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 551\u001b[0;31m \u001b[0mcorrection_ff\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mff_correction\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mpars\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mf\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;31m#,False)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 552\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 553\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mcorrection_ff\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m\u001b[0m in \u001b[0;36mff_correction\u001b[0;34m(phi, ff_terms)\u001b[0m\n\u001b[1;32m 10\u001b[0m \u001b[0mphi_vector\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mappend\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mphi\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mi\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0mphi\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mj\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 11\u001b[0m \u001b[0mphi_vector\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mappend\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mphi\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m-\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 12\u001b[0;31m \u001b[0mphi_vector\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mjnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0marray\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mphi_vector\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 13\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 14\u001b[0m \u001b[0mcorrection\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mjnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmatmul\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mff_terms\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mphi_vector\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/.local/lib/python3.6/site-packages/jax/_src/numpy/lax_numpy.py\u001b[0m in \u001b[0;36marray\u001b[0;34m(object, dtype, copy, order, ndmin)\u001b[0m\n\u001b[1;32m 3052\u001b[0m \u001b[0;32melif\u001b[0m \u001b[0misinstance\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mobject\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0mlist\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtuple\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 3053\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mobject\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 3054\u001b[0;31m \u001b[0mout\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mstack\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0masarray\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0melt\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdtype\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mdtype\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0melt\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mobject\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 3055\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 3056\u001b[0m \u001b[0mout\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0m_device_put_raw\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0m_np_array\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdtype\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mdtype\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/.local/lib/python3.6/site-packages/jax/_src/numpy/lax_numpy.py\u001b[0m in \u001b[0;36m\u001b[0;34m(.0)\u001b[0m\n\u001b[1;32m 3052\u001b[0m \u001b[0;32melif\u001b[0m \u001b[0misinstance\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mobject\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0mlist\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtuple\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 3053\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mobject\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 3054\u001b[0;31m \u001b[0mout\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mstack\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0masarray\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0melt\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdtype\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mdtype\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0melt\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mobject\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 3055\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 3056\u001b[0m \u001b[0mout\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0m_device_put_raw\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0m_np_array\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdtype\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mdtype\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/.local/lib/python3.6/site-packages/jax/_src/numpy/lax_numpy.py\u001b[0m in \u001b[0;36masarray\u001b[0;34m(a, dtype, order)\u001b[0m\n\u001b[1;32m 3080\u001b[0m \u001b[0mlax\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_check_user_dtype_supported\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdtype\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m\"asarray\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 3081\u001b[0m \u001b[0mdtype\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mdtypes\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcanonicalize_dtype\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdtype\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mdtype\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0;32mNone\u001b[0m \u001b[0;32melse\u001b[0m \u001b[0mdtype\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 3082\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0marray\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0ma\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdtype\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mdtype\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcopy\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mFalse\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0morder\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0morder\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 3083\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 3084\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/.local/lib/python3.6/site-packages/jax/_src/numpy/lax_numpy.py\u001b[0m in \u001b[0;36marray\u001b[0;34m(object, dtype, copy, order, ndmin)\u001b[0m\n\u001b[1;32m 3065\u001b[0m \u001b[0;32mraise\u001b[0m \u001b[0mTypeError\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"Unexpected input type for array: {}\"\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mformat\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mtype\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mobject\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 3066\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 3067\u001b[0;31m \u001b[0mout\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mlax\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_convert_element_type\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mout\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdtype\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mweak_type\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mweak_type\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 3068\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 3069\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mndmin\u001b[0m \u001b[0;34m>\u001b[0m \u001b[0mndim\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mout\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/.local/lib/python3.6/site-packages/jax/_src/lax/lax.py\u001b[0m in \u001b[0;36m_convert_element_type\u001b[0;34m(operand, new_dtype, weak_type)\u001b[0m\n\u001b[1;32m 430\u001b[0m \u001b[0;31m# un-canonicalized operands to be passed in.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 431\u001b[0m \u001b[0mold_dtype\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mresult_type\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0moperand\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 432\u001b[0;31m \u001b[0mold_weak_type\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mdtypes\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mis_weakly_typed\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0moperand\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 433\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 434\u001b[0m \u001b[0mnew_dtype\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mdtypes\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcanonicalize_dtype\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mnew_dtype\u001b[0m \u001b[0;32mor\u001b[0m \u001b[0mold_dtype\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/.local/lib/python3.6/site-packages/jax/_src/dtypes.py\u001b[0m in \u001b[0;36mis_weakly_typed\u001b[0;34m(x)\u001b[0m\n\u001b[1;32m 329\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mis_weakly_typed\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mx\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 330\u001b[0m \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 331\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mx\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0maval\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mweak_type\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 332\u001b[0m \u001b[0;32mexcept\u001b[0m \u001b[0mAttributeError\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 333\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mtype\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mx\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32min\u001b[0m \u001b[0m_weak_types\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/.local/lib/python3.6/site-packages/jax/interpreters/ad.py\u001b[0m in \u001b[0;36maval\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 398\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0maval\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 399\u001b[0m \u001b[0;31m# TODO(dougalm): add epsilon ball\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 400\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mget_aval\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mprimal\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 401\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 402\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mfull_lower\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/.local/lib/python3.6/site-packages/jax/core.py\u001b[0m in \u001b[0;36mget_aval\u001b[0;34m(x)\u001b[0m\n\u001b[1;32m 922\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mx\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0maval\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 923\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 924\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mconcrete_aval\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mx\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 925\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 926\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/.local/lib/python3.6/site-packages/jax/core.py\u001b[0m in \u001b[0;36mconcrete_aval\u001b[0;34m(x)\u001b[0m\n\u001b[1;32m 911\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mtyp\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mtype\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mx\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmro\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 912\u001b[0m \u001b[0mhandler\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mpytype_aval_mappings\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mtyp\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 913\u001b[0;31m \u001b[0;32mif\u001b[0m \u001b[0mhandler\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mhandler\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mx\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 914\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mhasattr\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mx\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m'__jax_array__'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 915\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mconcrete_aval\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mx\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m__jax_array__\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/.local/lib/python3.6/site-packages/jax/core.py\u001b[0m in \u001b[0;36m__init__\u001b[0;34m(self, val, weak_type)\u001b[0m\n\u001b[1;32m 1119\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1120\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m__init__\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mval\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mweak_type\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mFalse\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1121\u001b[0;31m super(ConcreteArray, self).__init__(np.shape(val), np.result_type(val),\n\u001b[0m\u001b[1;32m 1122\u001b[0m weak_type=weak_type)\n\u001b[1;32m 1123\u001b[0m \u001b[0;31m# Note: canonicalized self.dtype doesn't necessarily match self.val\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m<__array_function__ internals>\u001b[0m in \u001b[0;36mresult_type\u001b[0;34m(*args, **kwargs)\u001b[0m\n", + "\u001b[0;31mKeyboardInterrupt\u001b[0m: " + ] + } + ], + "source": [ + "Results = {}\n", + "\n", + "for beta in betas:\n", + " print('beta: ', beta)\n", + " \n", + " Results[beta] = minimizer(data, regularization = regularization, beta = beta)\n", + "\n", + " clear_output()" + ] + }, + { + "cell_type": "code", + "execution_count": 45, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "loss = [Results[beta].loss for beta in betas]\n", + "\n", + "plt.plot(betas, loss, '.--')\n", + "plt.xscale('log')\n", + "plt.title('loss function')\n", + "plt.xlabel(r'$\\beta$')\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 47, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "plt.plot(betas, [Results[beta].pars[:-1] for beta in betas], '.--')\n", + "plt.grid()\n", + "plt.xscale('log')\n", + "plt.title('$\\Delta Q$ parameters')\n", + "plt.xlabel(r'$\\beta$')\n", + "\n", + "plt.figure()\n", + "plt.plot(betas, [Results[beta].pars[-1] for beta in betas], '.--')\n", + "plt.xscale('log')\n", + "plt.grid()\n", + "plt.title('$V_\\eta$ parameter')\n", + "plt.show()\n" + ] + }, + { + "cell_type": "code", + "execution_count": 48, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "dict_keys(['loss', 'pars', 'mini', 'time', 'reg_ff', 'av_g', 'chi2', 'weights_new', 'logZ_new'])" + ] + }, + "execution_count": 48, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "vars(Results[beta]).keys()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Comparison with relative entropy regularization" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": {}, + "outputs": [], + "source": [ + "regularization = {'force_field_reg': 'KL divergence'}" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "metadata": {}, + "outputs": [], + "source": [ + "betas = np.array([1e-3, 5e-3, 0.01, 0.05, 0.1, 0.5, 1, 2, 5, 10, 20, 50, 100, 200, 500, 1000, 10000, 100000, 1e6, 1e7])" + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "beta: 0.001\n", + "New evaluation:\n", + "logZ_P A1 MD -1.1102230246251565e-16\n", + "logZ_P A1 MS 0.0\n", + "DDG A1: 1.7104488457556373\n", + "logZ_P A2 MD 0.0\n", + "logZ_P A2 MS 0.0\n", + "DDG A2: 1.0928541288835474\n", + "logZ_P A3 MD 0.0\n", + "logZ_P A3 MS 0.0\n", + "DDG A3: 3.581180450804952\n", + "logZ_P A4 MD 0.0\n", + "logZ_P A4 MS -2.2204460492503136e-16\n", + "DDG A4: -2.352317534738276\n", + "logZ_P A5 MD 0.0\n", + "logZ_P A5 MS 0.0\n", + "DDG A5: -0.898174253203229\n", + "DDG loss: 17.239715782404367\n", + "loss: 17.239715782404367\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-1.11022302e-16, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(0., dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(1.71044885, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(0., dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(0., dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.09285413, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(0., dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(0., dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(3.58118045, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(0., dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-2.22044605e-16, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.35231753, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(0., dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(0., dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.89817425, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(17.23971578, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ -59.13012539 13.42119932 -159.92372304 4.94716807 -214.32616084\n", + " 17.13657393] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD 1006.7577376784187\n", + "logZ_P A1 MS 939.7778109380283\n", + "DDG A1: -164.13184976345073\n", + "logZ_P A2 MD 974.8972355044249\n", + "logZ_P A2 MS 943.2582091009465\n", + "DDG A2: -77.24537524612882\n", + "logZ_P A3 MD 990.5815404433159\n", + "logZ_P A3 MS 935.1601483420624\n", + "DDG A3: -133.64218639189883\n", + "logZ_P A4 MD 959.005846052809\n", + "logZ_P A4 MS 944.7166389943962\n", + "DDG A4: -37.7323942113684\n", + "logZ_P A5 MD 929.5784480542352\n", + "logZ_P A5 MS 954.2829294045292\n", + "DDG A5: 60.27012157012479\n", + "DDG loss: 30084.684143098417\n", + "loss: 30085.017600151026\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(1006.75773768, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(939.77781094, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(-164.13184976, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(974.8972355, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(943.2582091, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(-77.24537525, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(990.58154044, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(935.16014834, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(-133.64218639, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(959.00584605, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(944.71663899, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-37.73239421, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(929.57844805, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(954.2829294, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(60.27012157, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(30084.6841431, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ -2394.59681033 -28234.98676945 95399.11190212 28300.3446432\n", + " 126470.23848657 775.45275158] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD 40.19197459862338\n", + "logZ_P A1 MS 41.46964006007903\n", + "DDG A1: 4.873948528319839\n", + "logZ_P A2 MD 34.930997772642954\n", + "logZ_P A2 MS 40.12303321779471\n", + "DDG A2: 13.948333891079304\n", + "logZ_P A3 MD 35.57374056942929\n", + "logZ_P A3 MS 40.72261168930413\n", + "DDG A3: 16.329785343615058\n", + "logZ_P A4 MD 40.06429862133871\n", + "logZ_P A4 MS 44.602049385342426\n", + "DDG A4: 8.88315335693493\n", + "logZ_P A5 MD 38.21053625023394\n", + "logZ_P A5 MS 40.59155825669605\n", + "DDG A5: 4.997236234796939\n", + "DDG loss: 205.83669846431522\n", + "loss: 205.91963757084\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(40.1919746, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(41.46964006, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(4.87394853, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(34.93099777, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(40.12303322, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(13.94833389, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(35.57374057, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(40.72261169, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(16.32978534, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(40.06429862, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(44.60204939, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(8.88315336, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(38.21053625, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(40.59155826, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(4.99723623, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(205.83669846, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 277.33971334 -49.69256416 91.91379025 385.30153668 1696.02715163\n", + " -39.49082186] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -2.049237941960184\n", + "logZ_P A1 MS -1.8081811031432262\n", + "DDG A1: 2.307305578666429\n", + "logZ_P A2 MD -2.216251638713762\n", + "logZ_P A2 MS -1.8210413406666244\n", + "DDG A2: 2.0713948268482474\n", + "logZ_P A3 MD -2.200669143662097\n", + "logZ_P A3 MS -1.847093997738358\n", + "DDG A3: 4.456632512112137\n", + "logZ_P A4 MD -1.9124528365242504\n", + "logZ_P A4 MS -1.8109104444965072\n", + "DDG A4: -2.100898572077596\n", + "logZ_P A5 MD -1.9465162612463636\n", + "logZ_P A5 MS -1.7781115913536156\n", + "DDG A5: -0.4812042905488109\n", + "DDG loss: 12.355839733363391\n", + "loss: 12.357620451947325\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-2.04923794, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-1.8081811, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(2.30730558, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-2.21625164, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-1.82104134, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(2.07139483, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-2.20066914, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-1.847094, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(4.45663251, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-1.91245284, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-1.81091044, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.10089857, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-1.94651626, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-1.77811159, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.48120429, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(12.35583973, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ -46.75215944 -1.62458779 -96.5754782 8.14956514 -134.59771153\n", + " 12.315452 ] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD 15.365045734918226\n", + "logZ_P A1 MS 17.733015906129907\n", + "DDG A1: 7.57354298967576\n", + "logZ_P A2 MD 14.266245313129827\n", + "logZ_P A2 MS 16.376941799010268\n", + "DDG A2: 6.318938627923514\n", + "logZ_P A3 MD 14.151991629094434\n", + "logZ_P A3 MS 16.32293536907502\n", + "DDG A3: 8.956437150996848\n", + "logZ_P A4 MD 16.55768045918081\n", + "logZ_P A4 MS 16.92864841010055\n", + "DDG A4: -1.433800888260979\n", + "logZ_P A5 MD 15.339496072950402\n", + "logZ_P A5 MS 16.148125383692246\n", + "DDG A5: 1.1039919201935913\n", + "DDG loss: 17.70100796253077\n", + "loss: 17.75208628055611\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(15.36504573, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(17.73301591, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(7.57354299, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(14.26624531, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(16.3769418, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(6.31893863, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(14.15199163, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(16.32293537, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(8.95643715, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(16.55768046, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(16.92864841, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-1.43380089, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(15.33949607, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(16.14812538, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(1.10399192, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(17.70100796, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [149.27097149 209.47688689 114.70252246 97.85787167 582.06042375\n", + " -15.26052145] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD 3.6345924443353983\n", + "logZ_P A1 MS 4.437435383922469\n", + "DDG A1: 3.698287964173213\n", + "logZ_P A2 MD 3.4985077306701564\n", + "logZ_P A2 MS 4.291725176469442\n", + "DDG A2: 3.056860524682579\n", + "logZ_P A3 MD 3.4671417807998184\n", + "logZ_P A3 MS 4.229884637299329\n", + "DDG A3: 5.469731763497749\n", + "logZ_P A4 MD 4.200276830967778\n", + "logZ_P A4 MS 4.314888406792613\n", + "DDG A4: -2.0685392729959764\n", + "logZ_P A5 MD 3.807792440538776\n", + "logZ_P A5 MS 4.240095985545186\n", + "DDG A5: 0.17220932423263088\n", + "DDG loss: 7.479538318223226\n", + "loss: 7.496152993815184\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(3.63459244, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(4.43743538, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(3.69828796, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(3.49850773, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(4.29172518, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(3.05686052, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(3.46714178, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(4.22988464, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(5.46973176, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(4.20027683, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(4.31488841, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.06853927, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(3.80779244, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(4.24009599, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(0.17220932, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(7.47953832, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [-32.56227166 -21.92233745 -29.43454278 16.93190859 -6.28511927\n", + " 5.65272146] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD 9.212496352619834\n", + "logZ_P A1 MS 10.676014446075746\n", + "DDG A1: 5.3341196451524535\n", + "logZ_P A2 MD 8.625294128593579\n", + "logZ_P A2 MS 10.040694641500115\n", + "DDG A2: 4.597385798840115\n", + "logZ_P A3 MD 8.570387477534064\n", + "logZ_P A3 MS 9.990956435399108\n", + "DDG A3: 7.0985091904788\n", + "logZ_P A4 MD 10.091457447129114\n", + "logZ_P A4 MS 10.287563099471305\n", + "DDG A4: -1.8667599395390309\n", + "logZ_P A5 MD 9.298547073468967\n", + "logZ_P A5 MS 9.898345740558357\n", + "DDG A5: 0.5869272465100956\n", + "DDG loss: 7.47940037735834\n", + "loss: 7.5147621953108334\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(9.21249635, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(10.67601445, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(5.33411965, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(8.62529413, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(10.04069464, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(4.5973858, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(8.57038748, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(9.99095644, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(7.09850919, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(10.09145745, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(10.2875631, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-1.86675994, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(9.29854707, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(9.89834574, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(0.58692725, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(7.47940038, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 32.83554089 43.54606744 50.64448601 59.00799567 282.04997894\n", + " -3.80146925] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD 6.398168008039308\n", + "logZ_P A1 MS 7.5004365297074305\n", + "DDG A1: 4.4396657054059085\n", + "logZ_P A2 MD 6.057025763461867\n", + "logZ_P A2 MS 7.150499023096076\n", + "DDG A2: 3.800293919737848\n", + "logZ_P A3 MD 6.015944312634094\n", + "logZ_P A3 MS 7.09029598541799\n", + "DDG A3: 6.241275192617901\n", + "logZ_P A4 MD 7.123668328271252\n", + "logZ_P A4 MS 7.264436393723631\n", + "DDG A4: -2.00377580467819\n", + "logZ_P A5 MD 6.534287956896226\n", + "logZ_P A5 MS 7.052612845837571\n", + "DDG A5: 0.38519817181555494\n", + "DDG loss: 6.601888199754901\n", + "loss: 6.628070861505725\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(6.39816801, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(7.50043653, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(4.43966571, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(6.05702576, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(7.15049902, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(3.80029392, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(6.01594431, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(7.09029599, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(6.24127519, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(7.12366833, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(7.26443639, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.0037758, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(6.53428796, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(7.05261285, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(0.38519817, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(6.6018882, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ -7.77117585 -3.70052579 10.88027024 34.58125967 122.75997255\n", + " 1.21483824] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD 0.9938208880845778\n", + "logZ_P A1 MS 6.145531441945311\n", + "DDG A1: 14.466084177114825\n", + "logZ_P A2 MD 1.1300808683788492\n", + "logZ_P A2 MS 3.0924732676529842\n", + "DDG A2: 5.951737709486275\n", + "logZ_P A3 MD -0.43106961267641175\n", + "logZ_P A3 MS 3.9835928306097834\n", + "DDG A3: 14.511884660381558\n", + "logZ_P A4 MD 3.824600262176183\n", + "logZ_P A4 MS 3.6457159246881563\n", + "DDG A4: -2.7952351543586\n", + "logZ_P A5 MD 3.0032848092182878\n", + "logZ_P A5 MS 3.8258516163217315\n", + "DDG A5: 1.1385011611848934\n", + "DDG loss: 73.92124559760464\n", + "loss: 73.99214698138009\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(0.99382089, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(6.14553144, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(14.46608418, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(1.13008087, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(3.09247327, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(5.95173771, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-0.43106961, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(3.98359283, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(14.51188466, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(3.82460026, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(3.64571592, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.79523515, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(3.00328481, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(3.82585162, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(1.13850116, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(73.9212456, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [343.39520244 814.60018956 763.45796018 82.73356467 983.77183373\n", + " -38.88757238] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD 5.36958636997611\n", + "logZ_P A1 MS 6.714322591699638\n", + "DDG A1: 5.0400157307431135\n", + "logZ_P A2 MD 5.098250002103822\n", + "logZ_P A2 MS 6.240157298410065\n", + "DDG A2: 3.920216594537806\n", + "logZ_P A3 MD 4.9274245946057835\n", + "logZ_P A3 MS 6.218902187518504\n", + "DDG A3: 6.778878970856865\n", + "logZ_P A4 MD 6.2648658500712\n", + "logZ_P A4 MS 6.3576974131836685\n", + "DDG A4: -2.122466584471803\n", + "logZ_P A5 MD 5.601472335698418\n", + "logZ_P A5 MS 6.13625059643611\n", + "DDG A5: 0.4259367203833054\n", + "DDG loss: 5.641089609854159\n", + "loss: 5.67021862208232\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(5.36958637, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(6.71432259, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(5.04001573, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(5.09825, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(6.2401573, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(3.92021659, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(4.92742459, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(6.21890219, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(6.77887897, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(6.26486585, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(6.35769741, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.12246658, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(5.60147234, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(6.1362506, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(0.42593672, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(5.64108961, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 9.63628316 13.34693605 31.56116523 37.55148364 165.24403345\n", + " -1.26049032] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -0.4541908894545763\n", + "logZ_P A1 MS 1.025188667826181\n", + "DDG A1: 5.3733926295828125\n", + "logZ_P A2 MD -0.2249896543840757\n", + "logZ_P A2 MS 0.8127494179448398\n", + "DDG A2: 3.6622960719699487\n", + "logZ_P A3 MD -0.28007979914319403\n", + "logZ_P A3 MS 0.7203476625813119\n", + "DDG A3: 6.058238846034846\n", + "logZ_P A4 MD 0.8302919403608948\n", + "logZ_P A4 MS 0.8529171906147459\n", + "DDG A4: -2.2962974151097364\n", + "logZ_P A5 MD 0.24762409616227377\n", + "logZ_P A5 MS 0.6392094586308632\n", + "DDG A5: 0.07139110426899845\n", + "DDG loss: 4.486897291132635\n", + "loss: 4.509645813458796\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-0.45419089, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(1.02518867, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(5.37339263, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-0.22498965, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(0.81274942, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(3.66229607, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-0.2800798, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(0.72034766, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(6.05823885, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(0.83029194, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(0.85291719, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.29629742, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(0.2476241, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(0.63920946, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(0.0713911, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(4.48689729, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 8.18206204e-01 9.75123036e-01 -4.92292315e+00 2.19199634e+01\n", + " 8.93820357e+01 5.06192669e-03] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -38.36704278565958\n", + "logZ_P A1 MS -37.60150371347229\n", + "DDG A1: 3.605923588491344\n", + "logZ_P A2 MD -38.97360550042321\n", + "logZ_P A2 MS -37.89556410344464\n", + "DDG A2: 3.762084627802469\n", + "logZ_P A3 MD -39.575109409115576\n", + "logZ_P A3 MS -37.27444456976885\n", + "DDG A3: 9.277626593027474\n", + "logZ_P A4 MD -37.68632644386203\n", + "logZ_P A4 MS -37.839087712239866\n", + "DDG A4: -2.7305544352417486\n", + "logZ_P A5 MD -37.902162957302174\n", + "logZ_P A5 MS -37.85328505383906\n", + "DDG A5: -0.7771525642285737\n", + "DDG loss: 8.578550519623294\n", + "loss: 8.612539645703743\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-38.36704279, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-37.60150371, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(3.60592359, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-38.9736055, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-37.8955641, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(3.76208463, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-39.57510941, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-37.27444457, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(9.27762659, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-37.68632644, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-37.83908771, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.73055444, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-37.90216296, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-37.85328505, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.77715256, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(8.57855052, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [-30.82786704 19.04596355 175.12196438 -45.3998775 -75.79102516\n", + " -3.04193067] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -12.139439735589157\n", + "logZ_P A1 MS -10.822052336310016\n", + "DDG A1: 4.972300046370756\n", + "logZ_P A2 MD -11.90198164905458\n", + "logZ_P A2 MS -11.032180760831341\n", + "DDG A2: 3.2464811281242865\n", + "logZ_P A3 MD -12.107583118016512\n", + "logZ_P A3 MS -10.940050408811237\n", + "DDG A3: 6.471991438797214\n", + "logZ_P A4 MD -11.00196322634298\n", + "logZ_P A4 MS -11.070304590742623\n", + "DDG A4: -2.5215307529917927\n", + "logZ_P A5 MD -11.528611180647825\n", + "logZ_P A5 MS -11.125540550732794\n", + "DDG A5: 0.09982862646639835\n", + "DDG loss: 3.8943162287139854\n", + "loss: 3.914630273336834\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-12.13943974, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-10.82205234, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(4.97230005, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-11.90198165, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-11.03218076, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(3.24648113, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-12.10758312, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-10.94005041, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(6.47199144, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-11.00196323, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-11.07030459, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.52153075, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-11.52861118, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-11.12554055, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(0.09982863, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(3.89431623, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [-6.78897231 -4.53795365 -0.4669859 15.49017167 55.53068381 0.80031955] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -3.125645005649994\n", + "logZ_P A1 MS -1.6893612719533735\n", + "DDG A1: 5.2666873703884844\n", + "logZ_P A2 MD -2.5571440945271924\n", + "logZ_P A2 MS -1.7352189922528432\n", + "DDG A2: 3.127940682114836\n", + "logZ_P A3 MD -2.8834036706007873\n", + "logZ_P A3 MS -1.7886438345536004\n", + "DDG A3: 6.291805804857791\n", + "logZ_P A4 MD -1.7011450164215853\n", + "logZ_P A4 MS -1.7347115270139106\n", + "DDG A4: -2.435428214964867\n", + "logZ_P A5 MD -2.145906036819591\n", + "logZ_P A5 MS -1.8910664940523199\n", + "DDG A5: -0.2671915453114645\n", + "DDG loss: 2.9085185112321907\n", + "loss: 2.9275763085776774\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-3.12564501, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-1.68936127, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(5.26668737, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-2.55714409, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-1.73521899, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(3.12794068, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-2.88340367, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-1.78864383, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(6.2918058, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-1.70114502, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-1.73471153, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.43542821, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-2.14590604, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-1.89106649, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.26719155, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(2.90851851, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [-6.43535524 -7.56980886 -1.46667568 12.04395596 39.60945701 0.80745095] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -7.073118984837052\n", + "logZ_P A1 MS -5.485510346041346\n", + "DDG A1: 5.641367835413791\n", + "logZ_P A2 MD -6.280519048002903\n", + "logZ_P A2 MS -5.407068386453824\n", + "DDG A2: 3.2555179668790486\n", + "logZ_P A3 MD -6.947662541751894\n", + "logZ_P A3 MS -5.345035301667048\n", + "DDG A3: 7.549285497255022\n", + "logZ_P A4 MD -5.316728888550697\n", + "logZ_P A4 MS -5.451366431364468\n", + "DDG A4: -2.6856800907451546\n", + "logZ_P A5 MD -5.598677708720484\n", + "logZ_P A5 MS -5.474063080960225\n", + "DDG A5: -0.5896284348688099\n", + "DDG loss: 2.161346020152877\n", + "loss: 2.1873202483243013\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-7.07311898, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-5.48551035, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(5.64136784, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-6.28051905, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-5.40706839, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(3.25551797, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-6.94766254, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-5.3450353, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(7.5492855, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-5.31672889, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-5.45136643, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.68568009, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-5.59867771, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-5.47406308, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.58962843, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(2.16134602, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [11.54246102 22.46204062 56.60167439 3.76496594 50.57156623 -2.65614008] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -3.9925223154905023\n", + "logZ_P A1 MS -2.2325741874595995\n", + "DDG A1: 6.068080410760144\n", + "logZ_P A2 MD -2.745277173222692\n", + "logZ_P A2 MS -1.822226351134514\n", + "DDG A2: 3.3783279643738604\n", + "logZ_P A3 MD -3.352554536011681\n", + "logZ_P A3 MS -2.1832917667743397\n", + "DDG A3: 6.476275067436593\n", + "logZ_P A4 MD -1.9200090508112142\n", + "logZ_P A4 MS -1.9321617060602403\n", + "DDG A4: -2.382407509134863\n", + "logZ_P A5 MD -2.137103243403736\n", + "logZ_P A5 MS -2.1914513384160603\n", + "DDG A5: -1.0327401364537219\n", + "DDG loss: 1.85933398139069\n", + "loss: 1.8846559161808158\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-3.99252232, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-2.23257419, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(6.06808041, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-2.74527717, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-1.82222635, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(3.37832796, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-3.35255454, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-2.18329177, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(6.47627507, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-1.92000905, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-1.93216171, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.38240751, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-2.13710324, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-2.19145134, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.03274014, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(1.85933398, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [11.95464287 6.2790827 7.72034331 2.07580369 23.56527086 -1.62937875] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -10.17055806849283\n", + "logZ_P A1 MS -8.564506882000828\n", + "DDG A1: 5.687031583509819\n", + "logZ_P A2 MD -9.1108643061872\n", + "logZ_P A2 MS -8.33561693235822\n", + "DDG A2: 3.01236662648409\n", + "logZ_P A3 MD -9.631726231616025\n", + "logZ_P A3 MS -8.475446762158533\n", + "DDG A3: 6.444128417181691\n", + "logZ_P A4 MD -8.33036440826825\n", + "logZ_P A4 MS -8.415678706459142\n", + "DDG A4: -2.5635557370589312\n", + "logZ_P A5 MD -8.575340286177314\n", + "logZ_P A5 MS -8.560264478213737\n", + "DDG A5: -0.8608465526854313\n", + "DDG loss: 1.6182109074626663\n", + "loss: 1.6390251997274616\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-10.17055807, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-8.56450688, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(5.68703158, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-9.11086431, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-8.33561693, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(3.01236663, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-9.63172623, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-8.47544676, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(6.44412842, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-8.33036441, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-8.41567871, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.56355574, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-8.57534029, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-8.56026448, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.86084655, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(1.61821091, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 0.36294701 -2.97756625 0.7480434 5.87400178 23.08988664 -0.09277192] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -17.962329698375044\n", + "logZ_P A1 MS -16.415261846638142\n", + "DDG A1: 5.540988846656197\n", + "logZ_P A2 MD -16.95267556401302\n", + "logZ_P A2 MS -16.19068970825863\n", + "DDG A2: 2.979531107731415\n", + "logZ_P A3 MD -17.527936578641132\n", + "logZ_P A3 MS -16.24140978169292\n", + "DDG A3: 6.766620800048718\n", + "logZ_P A4 MD -16.176942591988904\n", + "logZ_P A4 MS -16.3065303731998\n", + "DDG A4: -2.6731768810164325\n", + "logZ_P A5 MD -16.33392462689116\n", + "logZ_P A5 MS -16.357721453067573\n", + "DDG A5: -0.9570951948160155\n", + "DDG loss: 1.4531686295984312\n", + "loss: 1.4765548863857583\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-17.9623297, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-16.41526185, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(5.54098885, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-16.95267556, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-16.19068971, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(2.97953111, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-17.52793658, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-16.24140978, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(6.7666208, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-16.17694259, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-16.30653037, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.67317688, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-16.33392463, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-16.35772145, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.95709519, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(1.45316863, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [-0.67737441 -1.83539067 12.10202804 3.08795623 17.27115693 -0.37454008] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -32.95451575154945\n", + "logZ_P A1 MS -31.533698596134933\n", + "DDG A1: 5.228392122562002\n", + "logZ_P A2 MD -32.0647298799544\n", + "logZ_P A2 MS -31.31870757571016\n", + "DDG A2: 2.9400053541922735\n", + "logZ_P A3 MD -32.74086591626928\n", + "logZ_P A3 MS -31.209985820346215\n", + "DDG A3: 7.3716395683105\n", + "logZ_P A4 MD -31.355194352227006\n", + "logZ_P A4 MS -31.444907998364815\n", + "DDG A4: -2.574448522575458\n", + "logZ_P A5 MD -31.228996132986875\n", + "logZ_P A5 MS -31.431752108369867\n", + "DDG A5: -1.4001980482514995\n", + "DDG loss: 1.4275842846352353\n", + "loss: 1.4608116610789639\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-32.95451575, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-31.5336986, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(5.22839212, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-32.06472988, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-31.31870758, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(2.94000535, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-32.74086592, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-31.20998582, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(7.37163957, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-31.35519435, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-31.444908, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.57444852, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-31.22899613, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-31.43175211, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.40019805, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(1.42758428, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ -4.93601786 3.85067943 36.17469672 -11.62165776 -23.6079785\n", + " -0.87012323] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -22.43434714835365\n", + "logZ_P A1 MS -20.907879159368967\n", + "DDG A1: 5.489983586481734\n", + "logZ_P A2 MD -21.437429034384714\n", + "logZ_P A2 MS -20.679915781063478\n", + "DDG A2: 2.968456944106926\n", + "logZ_P A3 MD -22.038622394020038\n", + "logZ_P A3 MS -20.699067928555007\n", + "DDG A3: 6.897917307296361\n", + "logZ_P A4 MD -20.674159473504613\n", + "logZ_P A4 MS -20.805473442748454\n", + "DDG A4: -2.6774509225860097\n", + "logZ_P A5 MD -20.76534132068256\n", + "logZ_P A5 MS -20.829823430297253\n", + "DDG A5: -1.0578319566092294\n", + "DDG loss: 1.374907824895693\n", + "loss: 1.400754210169635\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-22.43434715, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-20.90787916, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(5.48998359, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-21.43742903, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-20.67991578, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(2.96845694, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-22.03862239, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-20.69906793, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(6.89791731, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-20.67415947, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-20.80547344, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.67745092, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-20.76534132, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-20.82982343, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.05783196, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(1.37490782, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [-1.20540392 -1.64625526 16.70709208 1.07189495 11.76540424 -0.51032072] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -29.793962339535216\n", + "logZ_P A1 MS -28.297860493803398\n", + "DDG A1: 5.41479701578761\n", + "logZ_P A2 MD -28.806486670320833\n", + "logZ_P A2 MS -28.064757176675478\n", + "DDG A2: 2.929376355149438\n", + "logZ_P A3 MD -29.443546955205555\n", + "logZ_P A3 MS -28.034558075857333\n", + "DDG A3: 7.069836916071167\n", + "logZ_P A4 MD -28.090453391494695\n", + "logZ_P A4 MS -28.194664319986405\n", + "DDG A4: -2.610343793683751\n", + "logZ_P A5 MD -28.04839250530953\n", + "logZ_P A5 MS -28.194335795726463\n", + "DDG A5: -1.2595298402755664\n", + "DDG loss: 1.2510250359516626\n", + "loss: 1.2818483558767075\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-29.79396234, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-28.29786049, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(5.41479702, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-28.80648667, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-28.06475718, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(2.92937636, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-29.44354696, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-28.03455808, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(7.06983692, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-28.09045339, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-28.19466432, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.61034379, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-28.04839251, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-28.1943358, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.25952984, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(1.25102504, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [-2.53634663 -1.01638783 21.97030974 -3.40337097 -2.21444686 -0.62258731] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -35.188631568892006\n", + "logZ_P A1 MS -33.65813709794777\n", + "DDG A1: 5.499953155813525\n", + "logZ_P A2 MD -34.08680897809341\n", + "logZ_P A2 MS -33.35481595868489\n", + "DDG A2: 2.9052688449390436\n", + "logZ_P A3 MD -34.7712060686393\n", + "logZ_P A3 MS -33.36625869618184\n", + "DDG A3: 7.05983014500965\n", + "logZ_P A4 MD -33.472485349002035\n", + "logZ_P A4 MS -33.52667528050455\n", + "DDG A4: -2.486491805138517\n", + "logZ_P A5 MD -33.28728789463159\n", + "logZ_P A5 MS -33.506527565803296\n", + "DDG A5: -1.4410116790243395\n", + "DDG loss: 1.0808094902267935\n", + "loss: 1.117511948843502\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-35.18863157, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-33.6581371, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(5.49995316, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-34.08680898, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-33.35481596, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(2.90526884, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-34.77120607, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-33.3662587, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(7.05983015, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-33.47248535, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-33.52667528, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.48649181, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-33.28728789, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-33.50652757, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.44101168, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(1.08080949, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ -1.90591753 -1.45765905 20.35863325 -6.74239301 -14.59219673\n", + " -0.72195993] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -41.647432260307845\n", + "logZ_P A1 MS -40.11882045222153\n", + "DDG A1: 5.495291682577378\n", + "logZ_P A2 MD -40.45258503302099\n", + "logZ_P A2 MS -39.796611358688885\n", + "DDG A2: 2.717044946529833\n", + "logZ_P A3 MD -41.13170590598916\n", + "logZ_P A3 MS -39.793596157900275\n", + "DDG A3: 6.894340187073025\n", + "logZ_P A4 MD -39.96218161732508\n", + "logZ_P A4 MS -39.9381316274809\n", + "DDG A4: -2.292769759884105\n", + "logZ_P A5 MD -39.59779493189422\n", + "logZ_P A5 MS -39.89077055027975\n", + "DDG A5: -1.6235818843257916\n", + "DDG loss: 0.8865079794329327\n", + "loss: 0.9286312475778733\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-41.64743226, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-40.11882045, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(5.49529168, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-40.45258503, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-39.79661136, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(2.71704495, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-41.13170591, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-39.79359616, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(6.89434019, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-39.96218162, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-39.93813163, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.29276976, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-39.59779493, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-39.89077055, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.62358188, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(0.88650798, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [-5.12585900e+00 -3.92255334e+00 5.60008339e+00 -7.82712847e+00\n", + " -2.68475574e+01 -1.29672075e-02] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -37.23341838247774\n", + "logZ_P A1 MS -35.33485206077412\n", + "DDG A1: 6.411299058293816\n", + "logZ_P A2 MD -35.6695652425437\n", + "logZ_P A2 MS -34.92848472007068\n", + "DDG A2: 2.9277695025267616\n", + "logZ_P A3 MD -36.28721316847656\n", + "logZ_P A3 MS -35.124609926579964\n", + "DDG A3: 6.4597860777409455\n", + "logZ_P A4 MD -35.17050754462389\n", + "logZ_P A4 MS -35.101368143725225\n", + "DDG A4: -2.1811283781131503\n", + "logZ_P A5 MD -34.92233972618821\n", + "logZ_P A5 MS -35.08361324803537\n", + "DDG A5: -1.2974874932968075\n", + "DDG loss: 1.096687363631731\n", + "loss: 1.1407373653568325\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-37.23341838, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-35.33485206, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(6.41129906, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-35.66956524, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-34.92848472, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(2.9277695, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-36.28721317, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-35.12460993, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(6.45978608, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-35.17050754, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-35.10136814, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.18112838, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-34.92233973, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-35.08361325, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.29748749, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(1.09668736, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 12.81627082 -13.09749651 -4.33559964 13.80701223 50.77944139\n", + " -1.37577304] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -40.15862976131251\n", + "logZ_P A1 MS -38.515397668635565\n", + "DDG A1: 5.779091507223739\n", + "logZ_P A2 MD -38.830002768436856\n", + "logZ_P A2 MS -38.15407019692301\n", + "DDG A2: 2.7664631759518157\n", + "logZ_P A3 MD -39.49456277730207\n", + "logZ_P A3 MS -38.23009228763801\n", + "DDG A3: 6.712009383213138\n", + "logZ_P A4 MD -38.342959333570064\n", + "logZ_P A4 MS -38.31066466737128\n", + "DDG A4: -2.272355941230062\n", + "logZ_P A5 MD -38.01197558413046\n", + "logZ_P A5 MS -38.264959502584176\n", + "DDG A5: -1.5245624352946103\n", + "DDG loss: 0.8209131194126639\n", + "loss: 0.8634664776396633\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-40.15862976, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-38.51539767, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(5.77909151, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-38.83000277, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-38.1540702, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(2.76646318, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-39.49456278, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-38.23009229, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(6.71200938, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-38.34295933, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-38.31066467, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.27235594, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-38.01197558, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-38.2649595, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.52456244, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(0.82091312, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [-0.71875785 -8.67961087 -0.19689757 -0.76457063 -3.20477921 -0.31067649] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -43.1454097102564\n", + "logZ_P A1 MS -41.47203043298895\n", + "DDG A1: 5.853735936269827\n", + "logZ_P A2 MD -41.770339091050396\n", + "logZ_P A2 MS -41.128194132499296\n", + "DDG A2: 2.6828050462560356\n", + "logZ_P A3 MD -42.4264669171528\n", + "logZ_P A3 MS -41.15418502392638\n", + "DDG A3: 6.731350418433534\n", + "logZ_P A4 MD -41.30101056526513\n", + "logZ_P A4 MS -41.224332460318514\n", + "DDG A4: -2.1624625468904726\n", + "logZ_P A5 MD -40.862470133671636\n", + "logZ_P A5 MS -41.168366533781935\n", + "DDG A5: -1.6555737398764003\n", + "DDG loss: 0.7084325561763312\n", + "loss: 0.754086944043718\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-43.14540971, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-41.47203043, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(5.85373594, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-41.77033909, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-41.12819413, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(2.68280505, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-42.42646692, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-41.15418502, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(6.73135042, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-41.30101057, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-41.22433246, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.16246255, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-40.86247013, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-41.16836653, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.65557374, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(0.70843256, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [-0.56253108 -8.10693203 -2.17959222 -0.3089421 1.25453128 -0.32965887] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -44.15583761079068\n", + "logZ_P A1 MS -42.35276507839508\n", + "DDG A1: 6.174856435967151\n", + "logZ_P A2 MD -42.747864668899126\n", + "logZ_P A2 MS -42.124825081865794\n", + "DDG A2: 2.635500146378149\n", + "logZ_P A3 MD -43.3614530513519\n", + "logZ_P A3 MS -41.98539262826272\n", + "DDG A3: 6.988306058373776\n", + "logZ_P A4 MD -42.1852169347936\n", + "logZ_P A4 MS -42.05020749173388\n", + "DDG A4: -2.018034153722421\n", + "logZ_P A5 MD -41.62685503474396\n", + "logZ_P A5 MS -42.02840505398398\n", + "DDG A5: -1.8924121008415529\n", + "DDG loss: 0.5863052328083536\n", + "loss: 0.6377286774979913\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-44.15583761, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-42.35276508, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(6.17485644, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-42.74786467, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-42.12482508, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(2.63550015, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-43.36145305, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-41.98539263, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(6.98830606, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-42.18521693, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-42.05020749, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.01803415, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-41.62685503, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-42.02840505, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.8924121, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(0.58630523, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 7.73929772 -0.28899321 9.77667593 4.34364925 36.09160159 -1.37478515] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -40.02274083239086\n", + "logZ_P A1 MS -38.229423094624416\n", + "DDG A1: 6.1507035644653865\n", + "logZ_P A2 MD -38.693264059416194\n", + "logZ_P A2 MS -38.09754048032759\n", + "DDG A2: 2.567865710706918\n", + "logZ_P A3 MD -39.277562526337725\n", + "logZ_P A3 MS -37.86156515881572\n", + "DDG A3: 7.087189932789414\n", + "logZ_P A4 MD -38.05622392966959\n", + "logZ_P A4 MS -37.943052964447986\n", + "DDG A4: -2.0721062248495974\n", + "logZ_P A5 MD -37.57189028163532\n", + "logZ_P A5 MS -37.9533209885614\n", + "DDG A5: -1.842596683552173\n", + "DDG loss: 0.48953565613932326\n", + "loss: 0.541299185909719\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-40.02274083, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-38.22942309, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(6.15070356, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-38.69326406, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-38.09754048, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(2.56786571, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-39.27756253, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-37.86156516, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(7.08718993, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-38.05622393, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-37.94305296, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.07210622, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-37.57189028, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-37.95332099, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.84259668, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(0.48953566, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 7.20780987 0.32667625 12.50096662 3.50706454 34.49903678 -1.38893629] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -22.911231295581974\n", + "logZ_P A1 MS -21.0360326349982\n", + "DDG A1: 6.353440729361069\n", + "logZ_P A2 MD -21.907992470792404\n", + "logZ_P A2 MS -21.419836147106917\n", + "DDG A2: 2.301529186328814\n", + "logZ_P A3 MD -22.420980474226976\n", + "logZ_P A3 MS -20.83659959567784\n", + "DDG A3: 7.504107506092624\n", + "logZ_P A4 MD -20.986827853925398\n", + "logZ_P A4 MS -20.984747066212872\n", + "DDG A4: -2.347165504362054\n", + "logZ_P A5 MD -20.894999623106894\n", + "logZ_P A5 MS -21.117491670859632\n", + "DDG A5: -1.4490645634390076\n", + "DDG loss: 0.307161563209705\n", + "loss: 0.3614621108500959\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-22.9112313, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-21.03603263, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(6.35344073, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-21.90799247, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-21.41983615, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(2.30152919, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-22.42098047, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-20.8365996, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(7.50410751, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-20.98682785, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-20.98474707, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.3471655, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-20.89499962, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-21.11749167, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.44906456, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(0.30716156, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [16.24009867 12.50392102 32.98259578 12.48472552 67.97604835 -2.08537095] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -19.357789592882064\n", + "logZ_P A1 MS -17.80296967543085\n", + "DDG A1: 5.560182961364839\n", + "logZ_P A2 MD -18.461903780541242\n", + "logZ_P A2 MS -18.135170345302555\n", + "DDG A2: 1.9018461145345535\n", + "logZ_P A3 MD -18.95556043818089\n", + "logZ_P A3 MS -17.489005317979572\n", + "DDG A3: 7.212370928423422\n", + "logZ_P A4 MD -17.61580525908418\n", + "logZ_P A4 MS -17.61398101553878\n", + "DDG A4: -2.347800707719866\n", + "logZ_P A5 MD -17.49462950793298\n", + "logZ_P A5 MS -17.758147053884816\n", + "DDG A5: -1.550643696979955\n", + "DDG loss: 0.3230851299923634\n", + "loss: 0.37779584122596066\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-19.35778959, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-17.80296968, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(5.56018296, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-18.46190378, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-18.13517035, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.90184611, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-18.95556044, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-17.48900532, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(7.21237093, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-17.61580526, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-17.61398102, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.34780071, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-17.49462951, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-17.75814705, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.5506437, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(0.32308513, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [-16.18994155 -14.62544978 -10.40259463 -17.22683392 -67.11748605\n", + " 0.83910062] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -21.250253356006915\n", + "logZ_P A1 MS -19.529583963040256\n", + "DDG A1: 5.970826262741077\n", + "logZ_P A2 MD -20.29761989364311\n", + "logZ_P A2 MS -19.886184146524318\n", + "DDG A2: 2.1115690387496646\n", + "logZ_P A3 MD -20.801160767096363\n", + "logZ_P A3 MS -19.27087377829184\n", + "DDG A3: 7.370171035084942\n", + "logZ_P A4 MD -19.411479466008576\n", + "logZ_P A4 MS -19.41142753374983\n", + "DDG A4: -2.3521889504656306\n", + "logZ_P A5 MD -19.302111228103666\n", + "logZ_P A5 MS -19.547597214239353\n", + "DDG A5: -1.5059975548751643\n", + "DDG loss: 0.20511093311803272\n", + "loss: 0.2595880881018102\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-21.25025336, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-19.52958396, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(5.97082626, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-20.29761989, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-19.88618415, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(2.11156904, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-20.80116077, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-19.27087378, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(7.37017104, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-19.41147947, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-19.41142753, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.35218895, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-19.30211123, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-19.54759721, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.50599755, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(0.20511093, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 0.37693748 -1.48724017 13.07200389 -1.89626484 2.88676705 -0.69400484] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -17.14830019013289\n", + "logZ_P A1 MS -15.379207283083383\n", + "DDG A1: 6.0907228836101925\n", + "logZ_P A2 MD -16.31014938386469\n", + "logZ_P A2 MS -16.065863029803104\n", + "DDG A2: 1.6977071415400344\n", + "logZ_P A3 MD -16.745058754855958\n", + "logZ_P A3 MS -15.244295114233449\n", + "DDG A3: 7.297071224986284\n", + "logZ_P A4 MD -15.364800742448786\n", + "logZ_P A4 MS -15.31934102388185\n", + "DDG A4: -2.239759271566554\n", + "logZ_P A5 MD -15.346067141323829\n", + "logZ_P A5 MS -15.64185951322942\n", + "DDG A5: -1.630556166041473\n", + "DDG loss: 0.07759345958618752\n", + "loss: 0.13813887233685596\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-17.14830019, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-15.37920728, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(6.09072288, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-16.31014938, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-16.06586303, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.69770714, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-16.74505875, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-15.24429511, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(7.29707122, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-15.36480074, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-15.31934102, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.23975927, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-15.34606714, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-15.64185951, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.63055617, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(0.07759346, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ -2.79767464 -2.74035619 -1.90185694 -5.28023478 -19.37843011\n", + " 0.02874979] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -13.214298960289833\n", + "logZ_P A1 MS -11.321521775440537\n", + "DDG A1: 6.3969651554425235\n", + "logZ_P A2 MD -12.506851618393137\n", + "logZ_P A2 MS -12.296283439495824\n", + "DDG A2: 1.6142209398333083\n", + "logZ_P A3 MD -12.903422110224023\n", + "logZ_P A3 MS -11.400342478721242\n", + "DDG A3: 7.302805618405849\n", + "logZ_P A4 MD -11.468210163197659\n", + "logZ_P A4 MS -11.45095639741735\n", + "DDG A4: -2.3095972106662277\n", + "logZ_P A5 MD -11.640049229731355\n", + "logZ_P A5 MS -11.879759480176922\n", + "DDG A5: -1.4916968333064222\n", + "DDG loss: 0.06876691941535307\n", + "loss: 0.1310229742925144\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-13.21429896, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-11.32152178, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(6.39696516, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-12.50685162, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-12.29628344, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.61422094, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-12.90342211, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-11.40034248, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(7.30280562, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-11.46821016, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-11.4509564, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.30959721, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-11.64004923, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-11.87975948, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.49169683, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(0.06876692, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 7.20707778 6.95759217 6.07835776 7.7919611 25.25772365 -0.42217819] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -15.224268343674652\n", + "logZ_P A1 MS -13.398819661985735\n", + "DDG A1: 6.230259781617382\n", + "logZ_P A2 MD -14.450890810064383\n", + "logZ_P A2 MS -14.225120086326019\n", + "DDG A2: 1.651862440859737\n", + "logZ_P A3 MD -14.865768711826668\n", + "logZ_P A3 MS -13.363522403069563\n", + "DDG A3: 7.300742311287517\n", + "logZ_P A4 MD -13.45927191103985\n", + "logZ_P A4 MS -13.42673064279398\n", + "DDG A4: -2.271745354561515\n", + "logZ_P A5 MD -13.53123628464593\n", + "logZ_P A5 MS -13.802086793287174\n", + "DDG A5: -1.5688001125989537\n", + "DDG loss: 0.058395995909693944\n", + "loss: 0.11979699625761775\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-15.22426834, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-13.39881966, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(6.23025978, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-14.45089081, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-14.22512009, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.65186244, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-14.86576871, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-13.3635224, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(7.30074231, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-13.45927191, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-13.42673064, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.27174535, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-13.53123628, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-13.80208679, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.56880011, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(0.058396, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 1.53753506 1.22285317 1.39709247 0.31798802 -0.5925268 -0.16342918] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -17.227800563005427\n", + "logZ_P A1 MS -15.34106104492549\n", + "DDG A1: 6.382015892521556\n", + "logZ_P A2 MD -16.531502049950934\n", + "logZ_P A2 MS -16.290597336327707\n", + "DDG A2: 1.689334199814648\n", + "logZ_P A3 MD -16.917450195018084\n", + "logZ_P A3 MS -15.426613128450757\n", + "DDG A3: 7.272493027625679\n", + "logZ_P A4 MD -15.490829915837324\n", + "logZ_P A4 MS -15.471777684812288\n", + "DDG A4: -2.30514421072027\n", + "logZ_P A5 MD -15.60010710664222\n", + "logZ_P A5 MS -15.910956443124109\n", + "DDG A5: -1.6678372103323986\n", + "DDG loss: 0.03779871707710189\n", + "loss: 0.09987514507878296\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-17.22780056, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-15.34106104, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(6.38201589, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-16.53150205, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-16.29059734, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.6893342, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-16.9174502, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-15.42661313, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(7.27249303, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-15.49082992, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-15.47177768, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.30514421, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-15.60010711, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-15.91095644, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.66783721, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(0.03779872, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 6.13554122 6.26110597 7.44884238 4.72902136 20.63175573 -0.48057537] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -17.201732317925202\n", + "logZ_P A1 MS -15.311189559319589\n", + "DDG A1: 6.39143271606315\n", + "logZ_P A2 MD -16.59348207559957\n", + "logZ_P A2 MS -16.34780339405545\n", + "DDG A2: 1.70115454438679\n", + "logZ_P A3 MD -16.953010726536537\n", + "logZ_P A3 MS -15.502583128201074\n", + "DDG A3: 7.172439184283566\n", + "logZ_P A4 MD -15.50909094444758\n", + "logZ_P A4 MS -15.523679921800468\n", + "DDG A4: -2.388439842664023\n", + "logZ_P A5 MD -15.702900058008382\n", + "logZ_P A5 MS -16.00297465031971\n", + "DDG A5: -1.641158943766089\n", + "DDG loss: 0.014758324281322217\n", + "loss: 0.0766056468143616\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-17.20173232, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-15.31118956, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(6.39143272, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-16.59348208, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-16.34780339, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.70115454, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-16.95301073, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-15.50258313, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(7.17243918, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-15.50909094, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-15.52367992, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.38843984, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-15.70290006, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-16.00297465, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.64115894, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(0.01475832, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 5.08408791 4.56998329 4.17590021 5.43470688 20.59237216 -0.32492695] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -19.652820245969565\n", + "logZ_P A1 MS -17.82396330224848\n", + "DDG A1: 6.238698638409027\n", + "logZ_P A2 MD -19.109061778167824\n", + "logZ_P A2 MS -18.843100241652838\n", + "DDG A2: 1.7513748932946707\n", + "logZ_P A3 MD -19.452684715661288\n", + "logZ_P A3 MS -18.051669820642246\n", + "DDG A3: 7.050093330872109\n", + "logZ_P A4 MD -18.009342892278323\n", + "logZ_P A4 MS -18.063417740718336\n", + "DDG A4: -2.4862068594757405\n", + "logZ_P A5 MD -18.213849892902594\n", + "logZ_P A5 MS -18.536438322581322\n", + "DDG A5: -1.6969032050877326\n", + "DDG loss: 0.0045438765408186785\n", + "loss: 0.06521840079082517\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-19.65282025, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-17.8239633, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(6.23869864, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-19.10906178, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-18.84310024, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.75137489, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-19.45268472, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-18.05166982, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(7.05009333, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-18.00934289, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-18.06341774, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.48620686, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-18.21384989, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-18.53643832, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.69690321, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(0.00454388, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [-2.0554755 -3.28586601 -3.37788113 -1.55965438 -6.25533044 0.11881109] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -18.457310731917755\n", + "logZ_P A1 MS -16.60045319460096\n", + "DDG A1: 6.3080281081520315\n", + "logZ_P A2 MD -17.931978262817143\n", + "logZ_P A2 MS -17.683210751750018\n", + "DDG A2: 1.7088024862857236\n", + "logZ_P A3 MD -18.275070159312886\n", + "logZ_P A3 MS -16.859099234785536\n", + "DDG A3: 7.087124459934689\n", + "logZ_P A4 MD -16.817029880097827\n", + "logZ_P A4 MS -16.878039327246924\n", + "DDG A4: -2.5033769258794223\n", + "logZ_P A5 MD -17.04523850659366\n", + "logZ_P A5 MS -17.364967785754956\n", + "DDG A5: -1.6898239484065924\n", + "DDG loss: 0.00021133473585565016\n", + "loss: 0.06160095354724894\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-18.45731073, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-16.60045319, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(6.30802811, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-17.93197826, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-17.68321075, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.70880249, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-18.27507016, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-16.85909923, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(7.08712446, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-16.81702988, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-16.87803933, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.50337693, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-17.04523851, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-17.36496779, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.68982395, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(0.00021133, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 0.31526579 0.21172286 -0.21336005 0.63790295 2.10360134 -0.00757251] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -18.516006317899233\n", + "logZ_P A1 MS -16.665201107704245\n", + "DDG A1: 6.2930425461984365\n", + "logZ_P A2 MD -17.976212414858733\n", + "logZ_P A2 MS -17.72685388887535\n", + "DDG A2: 1.7102658392184016\n", + "logZ_P A3 MD -18.32461933193083\n", + "logZ_P A3 MS -16.900572877013367\n", + "DDG A3: 7.10711947318058\n", + "logZ_P A4 MD -16.869680810592076\n", + "logZ_P A4 MS -16.926430134834504\n", + "DDG A4: -2.492828861562538\n", + "logZ_P A5 MD -17.079632089832955\n", + "logZ_P A5 MS -17.402746232668136\n", + "DDG A5: -1.6982048708631359\n", + "DDG loss: 0.0001295641158676135\n", + "loss: 0.06144620457359187\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-18.51600632, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-16.66520111, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(6.29304255, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-17.97621241, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-17.72685389, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.71026584, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-18.32461933, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-16.90057288, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(7.10711947, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-16.86968081, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-16.92643013, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.49282886, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-17.07963209, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-17.40274623, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.69820487, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(0.00012956, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 0.12115629 0.10113957 0.26940572 -0.02080299 0.2265451 -0.02045203] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -18.501896248014067\n", + "logZ_P A1 MS -16.650694152441556\n", + "DDG A1: 6.294025234393156\n", + "logZ_P A2 MD -17.968554711947704\n", + "logZ_P A2 MS -17.71955450960687\n", + "DDG A2: 1.7093786298794622\n", + "logZ_P A3 MD -18.315448478657473\n", + "logZ_P A3 MS -16.893995590111558\n", + "DDG A3: 7.100697802844636\n", + "logZ_P A4 MD -16.858909666595995\n", + "logZ_P A4 MS -16.918803996889288\n", + "DDG A4: -2.5006158965444962\n", + "logZ_P A5 MD -17.075083607578183\n", + "logZ_P A5 MS -17.397394851724595\n", + "DDG A5: -1.6962168937097637\n", + "DDG loss: 6.941733651969844e-05\n", + "loss: 0.06138625200033689\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-18.50189625, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-16.65069415, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(6.29402523, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-17.96855471, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-17.71955451, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.70937863, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-18.31544848, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-16.89399559, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(7.1006978, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-16.85890967, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-16.918804, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.5006159, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-17.07508361, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-17.39739485, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.69621689, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(6.94173365e-05, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 0.03254387 0.02060278 0.07110982 0.01340319 0.16022255 -0.00797111] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -18.50151570965378\n", + "logZ_P A1 MS -16.650246033905677\n", + "DDG A1: 6.294192562907932\n", + "logZ_P A2 MD -17.968525674077608\n", + "logZ_P A2 MS -17.719786063815764\n", + "DDG A2: 1.708733403891889\n", + "logZ_P A3 MD -18.315403424235214\n", + "logZ_P A3 MS -16.894054944916647\n", + "DDG A3: 7.100439285597724\n", + "logZ_P A4 MD -16.858894219925\n", + "logZ_P A4 MS -16.91900062883957\n", + "DDG A4: -2.5011410032107713\n", + "logZ_P A5 MD -17.075271305508238\n", + "logZ_P A5 MS -17.39765778346416\n", + "DDG A5: -1.696403172622078\n", + "DDG loss: 6.221534823356044e-05\n", + "loss: 0.061383547832108705\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-18.50151571, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-16.65024603, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(6.29419256, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-17.96852567, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-17.71978606, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.7087334, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-18.31540342, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-16.89405494, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(7.10043929, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-16.85889422, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-16.91900063, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.501141, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-17.07527131, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-17.39765778, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.69640317, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(6.22153482e-05, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 0.02158218 0.02149753 0.05484581 0.00180883 0.10309159 -0.00652724] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -18.509298389917774\n", + "logZ_P A1 MS -16.657977705974634\n", + "DDG A1: 6.29431885919886\n", + "logZ_P A2 MD -17.976412151248613\n", + "logZ_P A2 MS -17.727929324128606\n", + "DDG A2: 1.7080976088326678\n", + "logZ_P A3 MD -18.323417140391584\n", + "logZ_P A3 MS -16.902133680485147\n", + "DDG A3: 7.100278297533282\n", + "logZ_P A4 MD -16.86712659025079\n", + "logZ_P A4 MS -16.927474770200483\n", + "DDG A4: -2.501739628293731\n", + "logZ_P A5 MD -17.083442741120137\n", + "logZ_P A5 MS -17.40588515843876\n", + "DDG A5: -1.696541678484148\n", + "DDG loss: 5.645518671682954e-05\n", + "loss: 0.061378496573339804\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-18.50929839, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-16.65797771, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(6.29431886, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-17.97641215, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-17.72792932, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.70809761, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-18.32341714, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-16.90213368, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(7.1002783, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-16.86712659, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-16.92747477, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.50173963, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-17.08344274, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-17.40588516, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.69654168, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(5.64551867e-05, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 0.01124974 0.02378644 0.0437323 -0.00965282 0.04740452 -0.00521414] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -18.532493625795997\n", + "logZ_P A1 MS -16.681113311763024\n", + "DDG A1: 6.29446650330126\n", + "logZ_P A2 MD -17.999373640413285\n", + "logZ_P A2 MS -17.75121043203066\n", + "DDG A2: 1.7073062328389177\n", + "logZ_P A3 MD -18.346709412506943\n", + "logZ_P A3 MS -16.925506564034393\n", + "DDG A3: 7.1000787036229775\n", + "logZ_P A4 MD -16.890996592148785\n", + "logZ_P A4 MS -16.95163340247892\n", + "DDG A4: -2.5024542771156977\n", + "logZ_P A5 MD -17.106852346925688\n", + "logZ_P A5 MS -17.429368320538515\n", + "DDG A5: -1.6967238038685797\n", + "DDG loss: 5.0381877761941735e-05\n", + "loss: 0.06136890254028123\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-18.53249363, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-16.68111331, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(6.2944665, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-17.99937364, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-17.75121043, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.70730623, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-18.34670941, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-16.92550656, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(7.1000787, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-16.89099659, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-16.9516334, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.50245428, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-17.10685235, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-17.42936832, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.6967238, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(5.03818778e-05, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [-0.00195316 0.02609288 0.02902924 -0.02449828 -0.02393301 -0.00356245] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -18.5854337653826\n", + "logZ_P A1 MS -16.733971483558406\n", + "DDG A1: 6.29466945555235\n", + "logZ_P A2 MD -18.051443715253484\n", + "logZ_P A2 MS -17.803721195091743\n", + "DDG A2: 1.7062150888040264\n", + "logZ_P A3 MD -18.3995074729427\n", + "logZ_P A3 MS -16.978415267006913\n", + "DDG A3: 7.099804752701974\n", + "logZ_P A4 MD -16.94506028263485\n", + "logZ_P A4 MS -17.00609507801633\n", + "DDG A4: -2.5034396881028407\n", + "logZ_P A5 MD -17.159701945685185\n", + "logZ_P A5 MS -17.48231538787176\n", + "DDG A5: -1.6969651360571996\n", + "DDG loss: 4.406100392691057e-05\n", + "loss: 0.06135065982984575\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-18.58543377, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-16.73397148, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(6.29466946, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-18.05144372, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-17.8037212, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.70621509, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-18.39950747, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-16.97841527, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(7.09980475, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-16.94506028, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-17.00609508, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.50343969, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-17.15970195, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-17.48231539, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.69696514, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(4.40610039e-05, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [-0.02008718 0.02924316 0.00864177 -0.04473828 -0.12171087 -0.00128646] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -18.698377468259533\n", + "logZ_P A1 MS -16.84679175045433\n", + "DDG A1: 6.29497508304133\n", + "logZ_P A2 MD -18.162198064455573\n", + "logZ_P A2 MS -17.91513520032571\n", + "DDG A2: 1.7045817804691132\n", + "logZ_P A3 MD -18.51178667247534\n", + "logZ_P A3 MS -17.090867415913465\n", + "DDG A3: 7.099376530052151\n", + "logZ_P A4 MD -17.059988092513503\n", + "logZ_P A4 MS -17.121608827861984\n", + "DDG A4: -2.5048904754611225\n", + "logZ_P A5 MD -17.27188367308748\n", + "logZ_P A5 MS -17.594633998504513\n", + "DDG A5: -1.697304058935838\n", + "DDG loss: 3.890803297091017e-05\n", + "loss: 0.061316273074846994\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-18.69837747, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-16.84679175, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(6.29497508, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-18.16219806, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-17.9151352, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.70458178, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-18.51178667, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-17.09086742, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(7.09937653, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-17.05998809, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-17.12160883, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.50489048, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-17.27188367, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-17.594634, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.69730406, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(3.8908033e-05, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [-0.04724996 0.03323646 -0.0234997 -0.07443067 -0.26705827 0.00215268] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -18.933061323094616\n", + "logZ_P A1 MS -17.08127225698965\n", + "DDG A1: 6.295478573431544\n", + "logZ_P A2 MD -18.391932539688494\n", + "logZ_P A2 MS -18.145924847903608\n", + "DDG A2: 1.7019691737429514\n", + "logZ_P A3 MD -18.744661658352612\n", + "logZ_P A3 MS -17.324054249875854\n", + "DDG A3: 7.098604394193398\n", + "logZ_P A4 MD -17.298307836961694\n", + "logZ_P A4 MS -17.360830625615545\n", + "DDG A4: -2.5071239594452117\n", + "logZ_P A5 MD -17.504334360486126\n", + "logZ_P A5 MS -17.827268197969072\n", + "DDG A5: -1.6977584348110122\n", + "DDG loss: 4.102203584239497e-05\n", + "loss: 0.06125288965051038\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-18.93306132, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-17.08127226, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(6.29547857, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-18.39193254, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-18.14592485, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.70196917, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-18.74466166, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-17.32405425, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(7.09860439, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-17.29830784, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-17.36083063, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.50712396, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-17.50433436, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-17.8272682, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.69775843, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(4.10220358e-05, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [-0.09075175 0.03669244 -0.08134864 -0.1193121 -0.49503104 0.00779779] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -19.415448620431707\n", + "logZ_P A1 MS -17.563288762909416\n", + "DDG A1: 6.296396652980841\n", + "logZ_P A2 MD -18.863594406056013\n", + "logZ_P A2 MS -18.61940810608225\n", + "DDG A2: 1.697459407618583\n", + "logZ_P A3 MD -19.222764150368434\n", + "logZ_P A3 MS -17.802840399085227\n", + "DDG A3: 7.096911658982172\n", + "logZ_P A4 MD -17.78753082983408\n", + "logZ_P A4 MS -17.851478814153932\n", + "DDG A4: -2.5106527439142323\n", + "logZ_P A5 MD -17.981359282587423\n", + "logZ_P A5 MS -18.304477603598745\n", + "DDG A5: -1.6982152160272612\n", + "DDG loss: 7.282148818147554e-05\n", + "loss: 0.0611428329707738\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-19.41544862, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-17.56328876, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(6.29639665, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-18.86359441, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-18.61940811, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.69745941, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-19.22276415, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-17.8028404, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(7.09691166, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-17.78753083, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-17.85147881, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.51065274, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-17.98135928, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-18.3044776, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.69821522, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(7.28214882e-05, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [-0.16665226 0.03050501 -0.20653376 -0.18720255 -0.8732828 0.01815964] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -20.397943857312722\n", + "logZ_P A1 MS -18.545064715165648\n", + "DDG A1: 6.298177601711793\n", + "logZ_P A2 MD -19.823361867398827\n", + "logZ_P A2 MS -19.582604573452898\n", + "DDG A2: 1.688969188693677\n", + "logZ_P A3 MD -20.195708856035655\n", + "logZ_P A3 MS -18.77760052025094\n", + "DDG A3: 7.092416690207891\n", + "logZ_P A4 MD -18.782981630172138\n", + "logZ_P A4 MS -18.84917760247562\n", + "DDG A4: -2.5162187621616816\n", + "logZ_P A5 MD -18.9520663976438\n", + "logZ_P A5 MS -19.27508354831349\n", + "DDG A5: -1.6979647182613686\n", + "DDG loss: 0.00022484856940622645\n", + "loss: 0.060991325123101126\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-20.39794386, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-18.54506472, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(6.2981776, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-19.82336187, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-19.58260457, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.68896919, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-20.19570886, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-18.77760052, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(7.09241669, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-18.78298163, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-18.8491776, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.51621876, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-18.9520664, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-19.27508355, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.69796472, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(0.00022485, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [-0.31665878 -0.02984664 -0.53283674 -0.28564904 -1.54886938 0.04016064] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -21.178650069955133\n", + "logZ_P A1 MS -19.325435166099385\n", + "DDG A1: 6.2990089477024584\n", + "logZ_P A2 MD -20.585451281110295\n", + "logZ_P A2 MS -20.346248931206954\n", + "DDG A2: 1.6851191472442102\n", + "logZ_P A3 MD -20.96816682513236\n", + "logZ_P A3 MS -19.55095996823125\n", + "DDG A3: 7.090184628492083\n", + "logZ_P A4 MD -19.572035306852225\n", + "logZ_P A4 MS -19.639434708647087\n", + "DDG A4: -2.5191984535823466\n", + "logZ_P A5 MD -19.721044109062568\n", + "logZ_P A5 MS -20.044137194746884\n", + "DDG A5: -1.6981527333575706\n", + "DDG loss: 0.0003453782476180641\n", + "loss: 0.06085516017654155\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-21.17865007, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-19.32543517, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(6.29900895, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-20.58545128, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-20.34624893, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.68511915, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-20.96816683, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-19.55095997, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(7.09018463, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-19.57203531, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-19.63943471, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.51919845, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-19.72104411, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-20.04413719, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.69815273, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(0.00034538, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [-0.38752009 -0.06077352 -0.67186923 -0.3341461 -1.86774385 0.05047293] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -22.082795070071676\n", + "logZ_P A1 MS -20.229446837470025\n", + "DDG A1: 6.29933906967735\n", + "logZ_P A2 MD -21.46711017406517\n", + "logZ_P A2 MS -21.22854348426356\n", + "DDG A2: 1.683545252832312\n", + "logZ_P A3 MD -21.861748337089274\n", + "logZ_P A3 MS -20.4451721386038\n", + "DDG A3: 7.088623118254947\n", + "logZ_P A4 MD -20.48373856445752\n", + "logZ_P A4 MS -20.55177977184664\n", + "DDG A4: -2.5207875642337245\n", + "logZ_P A5 MD -20.609071593486302\n", + "logZ_P A5 MS -20.93227187101393\n", + "DDG A5: -1.6984181403616478\n", + "DDG loss: 0.0004176270390857537\n", + "loss: 0.06061278682022787\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-22.08279507, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-20.22944684, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(6.29933907, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-21.46711017, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-21.22854348, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.68354525, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-21.86174834, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-20.44517214, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(7.08862312, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-20.48373856, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-20.55177977, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.52078756, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-20.60907159, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-20.93227187, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.69841814, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(0.00041763, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [-0.42648007 -0.09220503 -0.74737656 -0.35667382 -2.02237877 0.05599066] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -23.30313665809527\n", + "logZ_P A1 MS -21.449909222975123\n", + "DDG A1: 6.2990399751131205\n", + "logZ_P A2 MD -22.65550217867808\n", + "logZ_P A2 MS -22.41684462369284\n", + "DDG A2: 1.683770235026997\n", + "logZ_P A3 MD -23.066336916630135\n", + "logZ_P A3 MS -21.65060795863669\n", + "DDG A3: 7.086525350796773\n", + "logZ_P A4 MD -21.711901978787335\n", + "logZ_P A4 MS -21.779902489972212\n", + "DDG A4: -2.520686800432032\n", + "logZ_P A5 MD -21.805067367944726\n", + "logZ_P A5 MS -22.12803795846439\n", + "DDG A5: -1.697849435329906\n", + "DDG loss: 0.0004392308652636721\n", + "loss: 0.06018436201073947\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-23.30313666, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-21.44990922, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(6.29903998, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-22.65550218, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-22.41684462, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.68377024, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-23.06633692, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-21.65060796, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(7.08652535, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-21.71190198, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-21.77990249, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.5206868, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-21.80506737, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-22.12803796, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.69784944, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(0.00043923, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [-0.45686588 -0.17136835 -0.85355339 -0.3457863 -2.05710375 0.06029149] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -25.023643796976295\n", + "logZ_P A1 MS -23.17103189257189\n", + "DDG A1: 6.297515921060962\n", + "logZ_P A2 MD -24.32827109337501\n", + "logZ_P A2 MS -24.088329311426786\n", + "DDG A2: 1.6869499809873707\n", + "logZ_P A3 MD -24.76234164652977\n", + "logZ_P A3 MS -23.347885834252644\n", + "DDG A3: 7.083373042003116\n", + "logZ_P A4 MD -23.439633288323623\n", + "logZ_P A4 MS -23.50645793839591\n", + "DDG A4: -2.5177753683172703\n", + "logZ_P A5 MD -23.48741044172206\n", + "logZ_P A5 MS -23.80941357898091\n", + "DDG A5: -1.695454021056133\n", + "DDG loss: 0.00039477951000410036\n", + "loss: 0.05946526013206601\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-25.0236438, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-23.17103189, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(6.29751592, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-24.32827109, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-24.08832931, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.68694998, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-24.76234165, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-23.34788583, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(7.08337304, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-23.43963329, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-23.50645794, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.51777537, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-23.48741044, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-23.80941358, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.69545402, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(0.00039478, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [-0.47953642 -0.34363295 -1.02924524 -0.27649537 -1.89826867 0.0633126 ] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -27.30017579138438\n", + "logZ_P A1 MS -25.448734290035166\n", + "DDG A1: 6.294618003096291\n", + "logZ_P A2 MD -26.536545421781643\n", + "logZ_P A2 MS -26.291953253754222\n", + "DDG A2: 1.698464336919449\n", + "logZ_P A3 MD -27.00225497823195\n", + "logZ_P A3 MS -25.588137285536618\n", + "DDG A3: 7.082535857918549\n", + "logZ_P A4 MD -25.7175174450496\n", + "logZ_P A4 MS -25.781103357412032\n", + "DDG A4: -2.509756253747681\n", + "logZ_P A5 MD -25.704604117306033\n", + "logZ_P A5 MS -26.024974060470694\n", + "DDG A5: -1.691410232478902\n", + "DDG loss: 0.0002526445018326266\n", + "loss: 0.058371363073705655\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-27.30017579, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-25.44873429, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(6.294618, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-26.53654542, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-26.29195325, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.69846434, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-27.00225498, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-25.58813729, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(7.08253586, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-25.71751745, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-25.78110336, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.50975625, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-25.70460412, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-26.02497406, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.69141023, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(0.00025264, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [-0.36732621 -0.49901311 -1.00161769 -0.0667012 -1.00201205 0.04812652] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -29.41833323390727\n", + "logZ_P A1 MS -27.566548102351284\n", + "DDG A1: 6.2954688314882565\n", + "logZ_P A2 MD -28.583193435647697\n", + "logZ_P A2 MS -28.33192061352172\n", + "DDG A2: 1.7150056364674473\n", + "logZ_P A3 MD -29.080968609016395\n", + "logZ_P A3 MS -27.663634412663413\n", + "DDG A3: 7.090499920974971\n", + "logZ_P A4 MD -27.827289146104206\n", + "logZ_P A4 MS -27.8863810579613\n", + "DDG A4: -2.498629108496409\n", + "logZ_P A5 MD -27.755118629560585\n", + "logZ_P A5 MS -28.07442041914026\n", + "DDG A5: -1.6887654842024884\n", + "DDG loss: 0.00023202290203796914\n", + "loss: 0.05744507932545578\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-29.41833323, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-27.5665481, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(6.29546883, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-28.58319344, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-28.33192061, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.71500564, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-29.08096861, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-27.66363441, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(7.09049992, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-27.82728915, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-27.88638106, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.49862911, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-27.75511863, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-28.07442042, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.68876548, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(0.00023202, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 0.06490951 -0.21808592 -0.35221208 0.3053312 0.95373647 -0.00172031] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -34.42788909431896\n", + "logZ_P A1 MS -32.593196265247435\n", + "DDG A1: 6.253148290536742\n", + "logZ_P A2 MD -33.42566494611509\n", + "logZ_P A2 MS -33.18923420859747\n", + "DDG A2: 1.678256634977251\n", + "logZ_P A3 MD -34.00261449008268\n", + "logZ_P A3 MS -32.63035951749902\n", + "DDG A3: 6.9788837629220275\n", + "logZ_P A4 MD -32.849823471947126\n", + "logZ_P A4 MS -32.902587277470396\n", + "DDG A4: -2.4829607172138575\n", + "logZ_P A5 MD -32.68292326721468\n", + "logZ_P A5 MS -32.97456253282882\n", + "DDG A5: -1.6202730748638672\n", + "DDG loss: 0.011991859617799128\n", + "loss: 0.0668797546450529\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-34.42788909, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-32.59319627, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(6.25314829, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-33.42566495, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-33.18923421, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.67825663, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-34.00261449, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-32.63035952, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(6.97888376, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-32.84982347, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-32.90258728, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.48296072, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-32.68292327, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-32.97456253, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.62027307, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(0.01199186, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [-2.74438998 -6.03464237 -8.04635521 0.28658848 -5.62012258 0.37481553] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -30.140161088523225\n", + "logZ_P A1 MS -28.289419864861298\n", + "DDG A1: 6.292884115542569\n", + "logZ_P A2 MD -29.281427242838276\n", + "logZ_P A2 MS -29.031399311117784\n", + "DDG A2: 1.7119232878234947\n", + "logZ_P A3 MD -29.790492561286097\n", + "logZ_P A3 MS -28.376500083807688\n", + "DDG A3: 7.082225825041475\n", + "logZ_P A4 MD -28.55038222181654\n", + "logZ_P A4 MS -28.608793039753714\n", + "DDG A4: -2.496942719950751\n", + "logZ_P A5 MD -28.461650249368592\n", + "logZ_P A5 MS -28.77855565065714\n", + "DDG A5: -1.682832026793611\n", + "DDG loss: 0.00040640408245222936\n", + "loss: 0.05730320896994983\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-30.14016109, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-28.28941986, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(6.29288412, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-29.28142724, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-29.03139931, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.71192329, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-29.79049256, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-28.37650008, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(7.08222583, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-28.55038222, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-28.60879304, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.49694272, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-28.46165025, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-28.77855565, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.68283203, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(0.0004064, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [-0.13661143 -0.62936448 -0.96799807 0.31368372 0.48100711 0.02580965] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -30.824770483317305\n", + "logZ_P A1 MS -28.974285331276608\n", + "DDG A1: 6.292250082208386\n", + "logZ_P A2 MD -29.942138899193466\n", + "logZ_P A2 MS -29.69189023919997\n", + "DDG A2: 1.7124698110274597\n", + "logZ_P A3 MD -30.462809179781257\n", + "logZ_P A3 MS -29.04848150356303\n", + "DDG A3: 7.083055777121302\n", + "logZ_P A4 MD -29.233024894902798\n", + "logZ_P A4 MS -29.290719153792725\n", + "DDG A4: -2.495168519749764\n", + "logZ_P A5 MD -29.12574802621315\n", + "logZ_P A5 MS -29.44216208148042\n", + "DDG A5: -1.6816154540449275\n", + "DDG loss: 0.0004319994165914439\n", + "loss: 0.057047308760372485\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-30.82477048, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-28.97428533, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(6.29225008, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-29.9421389, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-29.69189024, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.71246981, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-30.46280918, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-29.0484815, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(7.08305578, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-29.23302489, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-29.29071915, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.49516852, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-29.12574803, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-29.44216208, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.68161545, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(0.000432, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [-0.12228955 -0.64604893 -0.96058815 0.33272486 0.54402002 0.02435235] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -31.850141930015024\n", + "logZ_P A1 MS -29.99994595177845\n", + "DDG A1: 6.29153408786935\n", + "logZ_P A2 MD -30.932136539280318\n", + "logZ_P A2 MS -30.6820903110832\n", + "DDG A2: 1.7119685898995838\n", + "logZ_P A3 MD -31.470829232349796\n", + "logZ_P A3 MS -30.05514384234223\n", + "DDG A3: 7.086417476463689\n", + "logZ_P A4 MD -30.2554297443467\n", + "logZ_P A4 MS -30.312630552819268\n", + "DDG A4: -2.4939467365163654\n", + "logZ_P A5 MD -30.12023503616473\n", + "logZ_P A5 MS -30.43678836745223\n", + "DDG A5: -1.6819603014710998\n", + "DDG loss: 0.00038073823990931945\n", + "loss: 0.05660191988725937\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-31.85014193, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-29.99994595, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(6.29153409, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-30.93213654, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-30.68209031, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.71196859, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-31.47082923, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-30.05514384, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(7.08641748, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-30.25542974, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-30.31263055, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.49394674, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-30.12023504, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-30.43678837, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.6819603, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(0.00038074, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [-0.10030756 -0.58433311 -0.83586477 0.29646528 0.48455627 0.02009714] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -33.717088456441175\n", + "logZ_P A1 MS -31.86798897350681\n", + "DDG A1: 6.288819165501121\n", + "logZ_P A2 MD -32.73688849717709\n", + "logZ_P A2 MS -32.488064713433225\n", + "DDG A2: 1.7089418174333422\n", + "logZ_P A3 MD -33.30870534544659\n", + "logZ_P A3 MS -31.89244728601365\n", + "DDG A3: 7.087835405960897\n", + "logZ_P A4 MD -32.118250821545416\n", + "logZ_P A4 MS -32.17519096570071\n", + "DDG A4: -2.4933013316668124\n", + "logZ_P A5 MD -31.93623844862363\n", + "logZ_P A5 MS -32.25273471475819\n", + "DDG A5: -1.6818190081523743\n", + "DDG loss: 0.00036418256462009233\n", + "loss: 0.05591030683905124\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-33.71708846, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-31.86798897, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(6.28881917, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-32.7368885, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-32.48806471, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.70894182, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-33.30870535, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-31.89244729, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(7.08783541, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-32.11825082, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-32.17519097, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.49330133, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-31.93623845, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-32.25273471, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.68181901, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(0.00036418, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [-0.19932216 -0.6730142 -0.8963418 0.17793651 -0.03870321 0.02857597] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -35.819191451103045\n", + "logZ_P A1 MS -33.968806190234\n", + "DDG A1: 6.2920027516674315\n", + "logZ_P A2 MD -34.768498560836605\n", + "logZ_P A2 MS -34.51927901376322\n", + "DDG A2: 1.7099217274372374\n", + "logZ_P A3 MD -35.380656342001444\n", + "logZ_P A3 MS -33.95834647273781\n", + "DDG A3: 7.102819687101767\n", + "logZ_P A4 MD -34.21185812468442\n", + "logZ_P A4 MS -34.268766052945175\n", + "DDG A4: -2.4932215651119085\n", + "logZ_P A5 MD -33.976344821029684\n", + "logZ_P A5 MS -34.29589608311841\n", + "DDG A5: -1.6893831781348716\n", + "DDG loss: 0.0001645056888157159\n", + "loss: 0.055102602022419636\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-35.81919145, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-33.96880619, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(6.29200275, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-34.76849856, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-34.51927901, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.70992173, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-35.38065634, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-33.95834647, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(7.10281969, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-34.21185812, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-34.26876605, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.49322157, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-33.97634482, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-34.29589608, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.68938318, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(0.00016451, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 0.06866962 -0.03083954 -0.02445996 0.09388107 0.3412688 -0.00928717] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -41.11537378137893\n", + "logZ_P A1 MS -39.285753522805685\n", + "DDG A1: 6.240588605983023\n", + "logZ_P A2 MD -39.89101937817663\n", + "logZ_P A2 MS -39.63973171564395\n", + "DDG A2: 1.715042381314487\n", + "logZ_P A3 MD -40.60279249143614\n", + "logZ_P A3 MS -39.223005141707404\n", + "DDG A3: 6.997533928733252\n", + "logZ_P A4 MD -39.50846877817215\n", + "logZ_P A4 MS -39.55466773811863\n", + "DDG A4: -2.466706159565761\n", + "logZ_P A5 MD -39.19556083559167\n", + "logZ_P A5 MS -39.49128131057849\n", + "DDG A5: -1.6303781492706368\n", + "DDG loss: 0.010105482322667735\n", + "loss: 0.06333222633411698\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-41.11537378, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-39.28575352, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(6.24058861, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-39.89101938, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-39.63973172, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.71504238, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-40.60279249, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-39.22300514, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(6.99753393, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-39.50846878, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-39.55466774, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.46670616, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-39.19556084, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-39.49128131, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.63037815, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(0.01010548, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [-2.10709158 -5.72136555 -6.07507056 0.54666285 -3.26539365 0.29017194] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -36.7070458522877\n", + "logZ_P A1 MS -34.858314705232694\n", + "DDG A1: 6.287907165863831\n", + "logZ_P A2 MD -35.62777956684886\n", + "logZ_P A2 MS -35.378901842425066\n", + "DDG A2: 1.7090753745568923\n", + "logZ_P A3 MD -36.25599345169496\n", + "logZ_P A3 MS -34.83718372089826\n", + "DDG A3: 7.09415334425757\n", + "logZ_P A4 MD -35.09879340383795\n", + "logZ_P A4 MS -35.15499887364751\n", + "DDG A4: -2.491482277986735\n", + "logZ_P A5 MD -34.846598717893094\n", + "logZ_P A5 MS -35.164154738522164\n", + "DDG A5: -1.6844429602808058\n", + "DDG loss: 0.00028867775864155527\n", + "loss: 0.05493348112797179\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-36.70704585, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-34.85831471, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(6.28790717, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-35.62777957, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-35.37890184, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.70907537, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-36.25599345, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-34.83718372, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(7.09415334, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-35.0987934, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-35.15499887, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.49148228, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-34.84659872, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-35.16415474, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.68444296, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(0.00028868, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [-0.14297952 -0.50149617 -0.57837841 0.09474367 -0.11333714 0.01759184] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -37.93305832167475\n", + "logZ_P A1 MS -36.085254999710884\n", + "DDG A1: 6.28560987093824\n", + "logZ_P A2 MD -36.81717898970483\n", + "logZ_P A2 MS -36.56875392787173\n", + "DDG A2: 1.707954581982311\n", + "logZ_P A3 MD -37.46829050538485\n", + "logZ_P A3 MS -36.050639033209784\n", + "DDG A3: 7.091285495910451\n", + "logZ_P A4 MD -36.323878963049786\n", + "logZ_P A4 MS -36.37983585828723\n", + "DDG A4: -2.4908668073461864\n", + "logZ_P A5 MD -36.0476798554118\n", + "logZ_P A5 MS -36.36534053675391\n", + "DDG A5: -1.6847021002062448\n", + "DDG loss: 0.0003318673583028107\n", + "loss: 0.054677928378751954\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-37.93305832, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-36.085255, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(6.28560987, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-36.81717899, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-36.56875393, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.70795458, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-37.46829051, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-36.05063903, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(7.0912855, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-36.32387896, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-36.37983586, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.49086681, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-36.04767986, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-36.36534054, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.6847021, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(0.00033187, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [-0.25971093 -0.68546264 -0.77124897 0.02806263 -0.50556439 0.02997779] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -39.31957944739758\n", + "logZ_P A1 MS -37.47160531922502\n", + "DDG A1: 6.286032787110912\n", + "logZ_P A2 MD -38.167703435461014\n", + "logZ_P A2 MS -37.9204838577041\n", + "DDG A2: 1.7049698034096525\n", + "logZ_P A3 MD -38.84488353224424\n", + "logZ_P A3 MS -37.42530750848265\n", + "DDG A3: 7.096050685638656\n", + "logZ_P A4 MD -37.71165530339119\n", + "logZ_P A4 MS -37.76828684410909\n", + "DDG A4: -2.4925372295558366\n", + "logZ_P A5 MD -37.4089308924425\n", + "logZ_P A5 MS -37.72958041683333\n", + "DDG A5: -1.6921024755949259\n", + "DDG loss: 0.00017672145008771416\n", + "loss: 0.054316669761223235\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-39.31957945, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-37.47160532, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(6.28603279, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-38.16770344, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-37.92048386, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.7049698, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-38.84488353, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-37.42530751, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(7.09605069, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-37.7116553, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-37.76828684, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.49253723, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-37.40893089, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-37.72958042, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.69210248, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(0.00017672, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [-0.27537512 -0.47848054 -0.53399354 -0.15164377 -0.92596333 0.02554901] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -40.49039441046552\n", + "logZ_P A1 MS -38.641564893032026\n", + "DDG A1: 6.28815073092095\n", + "logZ_P A2 MD -39.30780291109126\n", + "logZ_P A2 MS -39.06078050481234\n", + "DDG A2: 1.7044816068301427\n", + "logZ_P A3 MD -40.00738137909184\n", + "logZ_P A3 MS -38.5875626257434\n", + "DDG A3: 7.0966516840957174\n", + "logZ_P A4 MD -38.88355941537933\n", + "logZ_P A4 MS -38.93976533626285\n", + "DDG A4: -2.491483394845856\n", + "logZ_P A5 MD -38.56123381706289\n", + "logZ_P A5 MS -38.88277066821514\n", + "DDG A5: -1.694299496656189\n", + "DDG loss: 0.00013836474930347935\n", + "loss: 0.05413373602441345\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-40.49039441, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-38.64156489, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(6.28815073, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-39.30780291, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-39.0607805, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.70448161, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-40.00738138, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-38.58756263, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(7.09665168, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-38.88355942, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-38.93976534, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.49148339, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-38.56123382, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-38.88277067, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.6942995, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(0.00013836, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [-0.21525637 -0.37222446 -0.45906679 -0.13510876 -0.79247085 0.02114796] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -41.4703794430162\n", + "logZ_P A1 MS -39.620957561655\n", + "DDG A1: 6.289617424005992\n", + "logZ_P A2 MD -40.26859144001922\n", + "logZ_P A2 MS -40.02193650892862\n", + "DDG A2: 1.703571738263881\n", + "logZ_P A3 MD -40.98668537255655\n", + "logZ_P A3 MS -39.56356911642708\n", + "DDG A3: 7.104816300981497\n", + "logZ_P A4 MD -39.867355962939904\n", + "logZ_P A4 MS -39.92485637563029\n", + "DDG A4: -2.4946885565596766\n", + "logZ_P A5 MD -39.53012272669183\n", + "logZ_P A5 MS -39.85411661368321\n", + "DDG A5: -1.700383117393907\n", + "DDG loss: 8.605508199933221e-05\n", + "loss: 0.05401022697079908\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-41.47037944, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-39.62095756, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(6.28961742, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-40.26859144, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-40.02193651, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.70357174, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-40.98668537, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-39.56356912, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(7.1048163, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-39.86735596, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-39.92485638, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.49468856, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-39.53012273, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-39.85411661, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.70038312, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(8.6055082e-05, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [-0.13767728 -0.0055243 -0.00501932 -0.26730527 -0.87810743 0.00386368] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -43.72448311019249\n", + "logZ_P A1 MS -41.88123507638364\n", + "DDG A1: 6.274330977466345\n", + "logZ_P A2 MD -42.46634858390224\n", + "logZ_P A2 MS -42.216638635699425\n", + "DDG A2: 1.7111359606337309\n", + "logZ_P A3 MD -43.229911909690045\n", + "logZ_P A3 MS -41.81410708371419\n", + "DDG A3: 7.086713199921167\n", + "logZ_P A4 MD -42.129234047680384\n", + "logZ_P A4 MS -42.183127776224104\n", + "DDG A4: -2.485758406612474\n", + "logZ_P A5 MD -41.76597713493778\n", + "logZ_P A5 MS -42.08511485491818\n", + "DDG A5: -1.6883592478747087\n", + "DDG loss: 0.0006488887428311163\n", + "loss: 0.05429644254588272\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-43.72448311, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-41.88123508, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(6.27433098, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-42.46634858, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-42.21663864, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.71113596, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-43.22991191, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-41.81410708, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(7.0867132, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-42.12923405, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-42.18312778, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.48575841, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-41.76597713, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-42.08511485, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.68835925, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(0.00064889, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [-0.58116159 -1.24279602 -1.01419721 -0.20684992 -1.54397956 0.0548619 ] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -42.15304216674944\n", + "logZ_P A1 MS -40.30480590237493\n", + "DDG A1: 6.286681836346915\n", + "logZ_P A2 MD -40.93430434746166\n", + "logZ_P A2 MS -40.68706862606353\n", + "DDG A2: 1.7050097750653448\n", + "logZ_P A3 MD -41.665868626562045\n", + "logZ_P A3 MS -40.24421442668552\n", + "DDG A3: 7.101196249699235\n", + "logZ_P A4 MD -40.55198163270134\n", + "logZ_P A4 MS -40.60880119744225\n", + "DDG A4: -2.493002777036723\n", + "logZ_P A5 MD -40.20609192196351\n", + "logZ_P A5 MS -40.52912212217175\n", + "DDG A5: -1.6979970289187882\n", + "DDG loss: 0.00012843768249430057\n", + "loss: 0.05396210083145067\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-42.15304217, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-40.3048059, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(6.28668184, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-40.93430435, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-40.68706863, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.70500978, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-41.66586863, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-40.24421443, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(7.10119625, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-40.55198163, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-40.6088012, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.49300278, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-40.20609192, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-40.52912212, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.69799703, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(0.00012844, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [-0.2272746 -0.24836457 -0.20977648 -0.25702275 -1.01565742 0.01397143] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -42.826253009504235\n", + "logZ_P A1 MS -40.97650062921336\n", + "DDG A1: 6.2904357393558215\n", + "logZ_P A2 MD -41.592918293532094\n", + "logZ_P A2 MS -41.34606954869389\n", + "DDG A2: 1.7040516211029042\n", + "logZ_P A3 MD -42.33703897912878\n", + "logZ_P A3 MS -40.916207916069816\n", + "DDG A3: 7.09915816293896\n", + "logZ_P A4 MD -41.228081495684016\n", + "logZ_P A4 MS -41.28417396437295\n", + "DDG A4: -2.4912024872120337\n", + "logZ_P A5 MD -40.874942461052434\n", + "logZ_P A5 MS -41.197216380618535\n", + "DDG A5: -1.6961244780488942\n", + "DDG loss: 0.00010050765325827502\n", + "loss: 0.05391331031492966\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-42.82625301, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-40.97650063, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(6.29043574, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-41.59291829, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-41.34606955, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.70405162, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-42.33703898, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-40.91620792, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(7.09915816, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-41.2280815, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-41.28417396, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.49120249, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-40.87494246, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-41.19721638, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.69612448, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(0.00010051, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [-0.1249709 -0.19936654 -0.274879 -0.11610691 -0.59287397 0.01252677] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -43.261474963528634\n", + "logZ_P A1 MS -41.411150567570076\n", + "DDG A1: 6.291852050148976\n", + "logZ_P A2 MD -42.02494056606296\n", + "logZ_P A2 MS -41.778830633515135\n", + "DDG A2: 1.7022223218719608\n", + "logZ_P A3 MD -42.775681968012535\n", + "logZ_P A3 MS -41.354102679450364\n", + "DDG A3: 7.101010769284887\n", + "logZ_P A4 MD -41.66785939915378\n", + "logZ_P A4 MS -41.725003797713384\n", + "DDG A4: -2.4938070655718825\n", + "logZ_P A5 MD -41.31241278678969\n", + "logZ_P A5 MS -41.63480567895134\n", + "DDG A5: -1.6964190541954616\n", + "DDG loss: 6.176253275533457e-05\n", + "loss: 0.05385110800168193\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-43.26147496, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-41.41115057, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(6.29185205, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-42.02494057, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-41.77883063, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.70222232, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-42.77568197, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-41.35410268, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(7.10101077, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-41.6678594, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-41.7250038, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.49380707, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-41.31241279, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-41.63480568, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.69641905, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(6.17625328e-05, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [-0.09261646 -0.08338865 -0.17532457 -0.11962382 -0.55926315 0.00967073] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -44.20647208465363\n", + "logZ_P A1 MS -42.35679053237899\n", + "DDG A1: 6.290260369187661\n", + "logZ_P A2 MD -42.96402194359863\n", + "logZ_P A2 MS -42.718173798195316\n", + "DDG A2: 1.70157413690219\n", + "logZ_P A3 MD -43.72822812842429\n", + "logZ_P A3 MS -42.30623999481549\n", + "DDG A3: 7.102023069620322\n", + "logZ_P A4 MD -42.62268514297684\n", + "logZ_P A4 MS -42.681648976883494\n", + "DDG A4: -2.4983119874910953\n", + "logZ_P A5 MD -42.26383432112118\n", + "logZ_P A5 MS -42.58570227614297\n", + "DDG A5: -1.695119309837174\n", + "DDG loss: 6.40508243659476e-05\n", + "loss: 0.053760041161558726\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-44.20647208, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-42.35679053, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(6.29026037, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-42.96402194, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-42.7181738, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.70157414, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-43.72822813, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-42.30623999, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(7.10202307, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-42.62268514, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-42.68164898, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.49831199, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-42.26383432, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-42.58570228, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.69511931, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(6.40508244e-05, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [-0.14108534 -0.10723432 -0.1197799 -0.15867914 -0.71536984 0.01205743] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -44.962507058659945\n", + "logZ_P A1 MS -43.109435362439946\n", + "DDG A1: 6.298654365596355\n", + "logZ_P A2 MD -43.729331608066744\n", + "logZ_P A2 MS -43.48396801619562\n", + "DDG A2: 1.7003743823564546\n", + "logZ_P A3 MD -44.49761843236532\n", + "logZ_P A3 MS -43.07362732717657\n", + "DDG A3: 7.106982427252326\n", + "logZ_P A4 MD -43.39006565024568\n", + "logZ_P A4 MS -43.45240842758159\n", + "DDG A4: -2.506678251421999\n", + "logZ_P A5 MD -43.035355037737396\n", + "logZ_P A5 MS -43.357396845738\n", + "DDG A5: -1.6955497698127635\n", + "DDG loss: 5.755438760297803e-05\n", + "loss: 0.05368387717699112\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-44.96250706, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-43.10943536, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(6.29865437, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-43.72933161, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-43.48396802, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.70037438, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-44.49761843, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-43.07362733, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(7.10698243, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-43.39006565, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-43.45240843, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.50667825, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-43.03535504, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-43.35739685, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.69554977, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(5.75543876e-05, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 0.12266785 0.41049486 0.31187745 -0.03478184 0.02451253 -0.01190683] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -46.55584602317113\n", + "logZ_P A1 MS -44.70689796340605\n", + "DDG A1: 6.288444241733901\n", + "logZ_P A2 MD -45.31458356720628\n", + "logZ_P A2 MS -45.06867275907228\n", + "DDG A2: 1.7017292898233292\n", + "logZ_P A3 MD -46.10288004707127\n", + "logZ_P A3 MS -44.682048960721644\n", + "DDG A3: 7.099158220606617\n", + "logZ_P A4 MD -45.00073434342068\n", + "logZ_P A4 MS -45.06340189846289\n", + "DDG A4: -2.507482401022825\n", + "logZ_P A5 MD -44.643992930376136\n", + "logZ_P A5 MS -44.9631795798677\n", + "DDG A5: -1.6884803973443565\n", + "DDG loss: 0.00016296107767749864\n", + "loss: 0.05363073888725466\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-46.55584602, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-44.70689796, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(6.28844424, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-45.31458357, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-45.06867276, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.70172929, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-46.10288005, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-44.68204896, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(7.09915822, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-45.00073434, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-45.0634019, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.5074824, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-44.64399293, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-44.96317958, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.6884804, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(0.00016296, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [-0.20321074 -0.29179437 -0.18261664 -0.08713879 -0.6605634 0.02098071] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -46.09420231005107\n", + "logZ_P A1 MS -44.2423187087714\n", + "DDG A1: 6.295712642524057\n", + "logZ_P A2 MD -44.85912617002362\n", + "logZ_P A2 MS -44.6123401924771\n", + "DDG A2: 1.703896209288738\n", + "logZ_P A3 MD -45.63803925537879\n", + "logZ_P A3 MS -44.21617878672935\n", + "DDG A3: 7.101706971181004\n", + "logZ_P A4 MD -44.53333776447668\n", + "logZ_P A4 MS -44.596316025572946\n", + "DDG A4: -2.5082517092126566\n", + "logZ_P A5 MD -44.178488719380475\n", + "logZ_P A5 MS -44.499411833508034\n", + "DDG A5: -1.6927798837830839\n", + "DDG loss: 7.834820733848373e-05\n", + "loss: 0.05357415839791028\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-46.09420231, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-44.24231871, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(6.29571264, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-44.85912617, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-44.61234019, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.70389621, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-45.63803926, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-44.21617879, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(7.10170697, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-44.53333776, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-44.59631603, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.50825171, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-44.17848872, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-44.49941183, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.69277988, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(7.83482073e-05, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 0.03404941 0.12555298 0.12120603 -0.00106282 -0.01937409 -0.00262715] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -46.56924139619098\n", + "logZ_P A1 MS -44.716614022843764\n", + "DDG A1: 6.2975542221633845\n", + "logZ_P A2 MD -45.33854154671448\n", + "logZ_P A2 MS -45.090638286865385\n", + "DDG A2: 1.7066626002698388\n", + "logZ_P A3 MD -46.11801150307124\n", + "logZ_P A3 MS -44.697084819336915\n", + "DDG A3: 7.099394919731134\n", + "logZ_P A4 MD -45.01358935116976\n", + "logZ_P A4 MS -45.077193946196765\n", + "DDG A4: -2.509802512025097\n", + "logZ_P A5 MD -44.66059064592596\n", + "logZ_P A5 MS -44.98191525312605\n", + "DDG A5: -1.6937739806306693\n", + "DDG loss: 9.27953764514799e-05\n", + "loss: 0.05352870621269441\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-46.5692414, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-44.71661402, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(6.29755422, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-45.33854155, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-45.09063829, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.7066626, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-46.1180115, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-44.69708482, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(7.09939492, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-45.01358935, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-45.07719395, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.50980251, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-44.66059065, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-44.98191525, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.69377398, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(9.27953765e-05, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 0.08596208 0.14870218 0.13591631 0.05325912 0.22750515 -0.00713162] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -47.60744328578419\n", + "logZ_P A1 MS -45.755378923821944\n", + "DDG A1: 6.296160205974201\n", + "logZ_P A2 MD -46.383641040124346\n", + "logZ_P A2 MS -46.134522756392684\n", + "DDG A2: 1.7096709994031412\n", + "logZ_P A3 MD -47.16713917074548\n", + "logZ_P A3 MS -45.748511169483244\n", + "DDG A3: 7.093703381930245\n", + "logZ_P A4 MD -46.064432118370675\n", + "logZ_P A4 MS -46.12911127273639\n", + "DDG A4: -2.5124631209478347\n", + "logZ_P A5 MD -45.714291741399705\n", + "logZ_P A5 MS -46.035854778490155\n", + "DDG A5: -1.6943643330391636\n", + "DDG loss: 0.00016750488629314834\n", + "loss: 0.05348965125235918\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-47.60744329, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-45.75537892, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(6.29616021, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-46.38364104, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-46.13452276, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.709671, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-47.16713917, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-45.74851117, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(7.09370338, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-46.06443212, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-46.12911127, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.51246312, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-45.71429174, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-46.03585478, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.69436433, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(0.0001675, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 0.00629545 -0.0695066 -0.03562957 0.05831346 0.14261373 0.00092544] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -47.73839685586129\n", + "logZ_P A1 MS -45.88619257030958\n", + "DDG A1: 6.2965066567816645\n", + "logZ_P A2 MD -46.51644618951271\n", + "logZ_P A2 MS -46.267429102788135\n", + "DDG A2: 1.7094204356135674\n", + "logZ_P A3 MD -47.29976656661066\n", + "logZ_P A3 MS -45.881254245698685\n", + "DDG A3: 7.0934169573829955\n", + "logZ_P A4 MD -46.197211026428455\n", + "logZ_P A4 MS -46.26218829425317\n", + "DDG A4: -2.513201249872308\n", + "logZ_P A5 MD -45.847291570724565\n", + "logZ_P A5 MS -46.1694526014695\n", + "DDG A5: -1.6958449653276573\n", + "DDG loss: 0.00016791090770361923\n", + "loss: 0.05348479116659198\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-47.73839686, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-45.88619257, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(6.29650666, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-46.51644619, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-46.2674291, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.70942044, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-47.29976657, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-45.88125425, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(7.09341696, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-46.19721103, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-46.26218829, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.51320125, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-45.84729157, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-46.1694526, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.69584497, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(0.00016791, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [-0.0033516 -0.05541982 -0.03629073 0.03494342 0.0774906 0.00129658] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -48.02800363493518\n", + "logZ_P A1 MS -46.17596313860801\n", + "DDG A1: 6.296101114661728\n", + "logZ_P A2 MD -46.80689794463017\n", + "logZ_P A2 MS -46.558144532209866\n", + "DDG A2: 1.7087675780362441\n", + "logZ_P A3 MD -47.59202804619319\n", + "logZ_P A3 MS -46.173779948207574\n", + "DDG A3: 7.09276274141729\n", + "logZ_P A4 MD -46.490310070471004\n", + "logZ_P A4 MS -46.55540870230122\n", + "DDG A4: -2.5135017471499475\n", + "logZ_P A5 MD -46.139995929918385\n", + "logZ_P A5 MS -46.46273295092275\n", + "DDG A5: -1.6972711172099828\n", + "DDG loss: 0.00016709681033919664\n", + "loss: 0.05348012412456685\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-48.02800363, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-46.17596314, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(6.29610111, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-46.80689794, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-46.55814453, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.70876758, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-47.59202805, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-46.17377995, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(7.09276274, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-46.49031007, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-46.5554087, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.51350175, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-46.13999593, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-46.46273295, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.69727112, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(0.0001671, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [-0.0426946 -0.089969 -0.07941104 -0.00419957 -0.08168028 0.0046665 ] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -48.31843625900541\n", + "logZ_P A1 MS -46.466435665230335\n", + "DDG A1: 6.296002315942685\n", + "logZ_P A2 MD -47.09719052869037\n", + "logZ_P A2 MS -46.848640346732665\n", + "DDG A2: 1.7082643794108396\n", + "logZ_P A3 MD -47.88485173254946\n", + "logZ_P A3 MS -46.466580251326384\n", + "DDG A3: 7.09282063831328\n", + "logZ_P A4 MD -46.78394440572529\n", + "logZ_P A4 MS -46.84898458221828\n", + "DDG A4: -2.5133570117349433\n", + "logZ_P A5 MD -46.432873124663224\n", + "logZ_P A5 MS -46.75603580012003\n", + "DDG A5: -1.6983250376343004\n", + "DDG loss: 0.0001585199702555394\n", + "loss: 0.05347583444713949\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-48.31843626, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-46.46643567, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(6.29600232, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-47.09719053, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-46.84864035, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.70826438, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-47.88485173, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-46.46658025, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(7.09282064, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-46.78394441, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-46.84898458, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.51335701, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-46.43287312, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-46.7560358, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.69832504, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(0.00015852, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [-0.05889409 -0.09077448 -0.088371 -0.03053122 -0.17139792 0.00573369] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -48.890755635123604\n", + "logZ_P A1 MS -47.039014921813354\n", + "DDG A1: 6.295358851911851\n", + "logZ_P A2 MD -47.669075932924734\n", + "logZ_P A2 MS -47.42066138133072\n", + "DDG A2: 1.7079285586303161\n", + "logZ_P A3 MD -48.462176292590236\n", + "logZ_P A3 MS -47.04389336358622\n", + "DDG A3: 7.092848983018874\n", + "logZ_P A4 MD -47.362714960556474\n", + "logZ_P A4 MS -47.427491612227826\n", + "DDG A4: -2.512704524276508\n", + "logZ_P A5 MD -47.01074193868758\n", + "logZ_P A5 MS -47.33407344868996\n", + "DDG A5: -1.698743071969147\n", + "DDG loss: 0.00014926207328097726\n", + "loss: 0.05346960697249694\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-48.89075564, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-47.03901492, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(6.29535885, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-47.66907593, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-47.42066138, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.70792856, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-48.46217629, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-47.04389336, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(7.09284898, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-47.36271496, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-47.42749161, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.51270452, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-47.01074194, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-47.33407345, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.69874307, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(0.00014926, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [-0.08301401 -0.12090799 -0.10995281 -0.05323813 -0.26624472 0.00760403] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -49.41495601224048\n", + "logZ_P A1 MS -47.562913461416166\n", + "DDG A1: 6.2961062015966585\n", + "logZ_P A2 MD -48.19300692125331\n", + "logZ_P A2 MS -47.9446338543622\n", + "DDG A2: 1.7078258425059236\n", + "logZ_P A3 MD -48.99130342305743\n", + "logZ_P A3 MS -47.57242941264718\n", + "DDG A3: 7.094312500580659\n", + "logZ_P A4 MD -47.89280357116486\n", + "logZ_P A4 MS -47.95723127909543\n", + "DDG A4: -2.5118405395743135\n", + "logZ_P A5 MD -47.54006200501796\n", + "logZ_P A5 MS -47.86348407361795\n", + "DDG A5: -1.6989672950567483\n", + "DDG loss: 0.00012500899174454276\n", + "loss: 0.05346362872771279\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-49.41495601, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-47.56291346, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(6.2961062, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-48.19300692, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-47.94463385, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.70782584, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-48.99130342, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-47.57242941, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(7.0943125, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-47.89280357, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-47.95723128, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.51184054, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-47.54006201, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-47.86348407, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.6989673, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(0.00012501, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [-0.0447272 -0.04353488 -0.04413249 -0.04671532 -0.18535754 0.0034465 ] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -49.85268224702975\n", + "logZ_P A1 MS -48.00084817910948\n", + "DDG A1: 6.295589997926179\n", + "logZ_P A2 MD -48.63234420055184\n", + "logZ_P A2 MS -48.38380145678414\n", + "DDG A2: 1.7082459624523736\n", + "logZ_P A3 MD -49.43420465259088\n", + "logZ_P A3 MS -48.01537507832038\n", + "DDG A3: 7.094202476698649\n", + "logZ_P A4 MD -48.33632224168784\n", + "logZ_P A4 MS -48.40063115402532\n", + "DDG A4: -2.5115464016858784\n", + "logZ_P A5 MD -47.98446630291448\n", + "logZ_P A5 MS -48.30733706471328\n", + "DDG A5: -1.697602259417014\n", + "DDG loss: 0.00013006192164086177\n", + "loss: 0.05346170672047738\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-49.85268225, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-48.00084818, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(6.29559, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-48.6323442, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-48.38380146, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.70824596, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-49.43420465, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-48.01537508, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(7.09420248, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-48.33632224, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-48.40063115, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.5115464, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-47.9844663, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-48.30733706, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.69760226, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(0.00013006, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [-0.04435777 -0.07601541 -0.05347268 -0.0264185 -0.13692975 0.00385799] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -49.86738472087805\n", + "logZ_P A1 MS -48.014771299708336\n", + "DDG A1: 6.297519676571867\n", + "logZ_P A2 MD -48.64861412879801\n", + "logZ_P A2 MS -48.39991039885984\n", + "DDG A2: 1.708644564210459\n", + "logZ_P A3 MD -49.4500708905445\n", + "logZ_P A3 MS -48.030780148557525\n", + "DDG A3: 7.095344327964725\n", + "logZ_P A4 MD -48.35154448328857\n", + "logZ_P A4 MS -48.41614280355052\n", + "DDG A4: -2.5122629757068657\n", + "logZ_P A5 MD -48.00056887436456\n", + "logZ_P A5 MS -48.3232690676567\n", + "DDG A5: -1.697179931794521\n", + "DDG loss: 0.00013044456733383403\n", + "loss: 0.05346079765835286\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-49.86738472, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-48.0147713, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(6.29751968, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-48.64861413, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-48.3999104, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.70864456, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-49.45007089, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-48.03078015, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(7.09534433, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-48.35154448, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-48.4161428, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.51226298, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-48.00056887, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-48.32326907, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.69717993, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(0.00013044, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 0.03155005 0.04883244 0.04027707 0.01812342 0.09736351 -0.00297466] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -49.902571357735454\n", + "logZ_P A1 MS -48.05023886240038\n", + "DDG A1: 6.2968241042052515\n", + "logZ_P A2 MD -48.68380828932202\n", + "logZ_P A2 MS -48.435183286358296\n", + "DDG A2: 1.7084496362217545\n", + "logZ_P A3 MD -49.48551683982816\n", + "logZ_P A3 MS -48.06642312038786\n", + "DDG A3: 7.094856500139164\n", + "logZ_P A4 MD -48.38723567676507\n", + "logZ_P A4 MS -48.451797077091555\n", + "DDG A4: -2.512171561946647\n", + "logZ_P A5 MD -48.03619915589527\n", + "logZ_P A5 MS -48.35893502883702\n", + "DDG A5: -1.697268274606964\n", + "DDG loss: 0.00013177375052076206\n", + "loss: 0.05346034561754515\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-49.90257136, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-48.05023886, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(6.2968241, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-48.68380829, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-48.43518329, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.70844964, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-49.48551684, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-48.06642312, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(7.0948565, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-48.38723568, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-48.45179708, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.51217156, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-48.03619916, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-48.35893503, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.69726827, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(0.00013177, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 0.00262154 0.0010241 0.00324718 0.00270549 0.01098832 -0.00025995] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -49.92873248747684\n", + "logZ_P A1 MS -48.076410601886664\n", + "DDG A1: 6.2967978344769024\n", + "logZ_P A2 MD -48.71024798324441\n", + "logZ_P A2 MS -48.46164156884785\n", + "DDG A2: 1.7084036109294352\n", + "logZ_P A3 MD -49.512043346267404\n", + "logZ_P A3 MS -48.09297335444001\n", + "DDG A3: 7.094797750569557\n", + "logZ_P A4 MD -48.41380081894886\n", + "logZ_P A4 MS -48.478387300983535\n", + "DDG A4: -2.512233664256155\n", + "logZ_P A5 MD -48.062854786541045\n", + "logZ_P A5 MS -48.38560634242448\n", + "DDG A5: -1.697307105570668\n", + "DDG loss: 0.00013242608068351344\n", + "loss: 0.053460310898187736\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-49.92873249, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-48.0764106, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(6.29679783, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-48.71024798, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-48.46164157, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.70840361, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-49.51204335, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-48.09297335, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(7.09479775, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-48.41380082, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-48.4783873, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.51223366, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-48.06285479, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-48.38560634, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.69730711, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(0.00013243, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 1.01102319e-04 -2.04463255e-03 -1.35375372e-04 1.13592527e-03\n", + " 2.73085623e-03 -1.71897875e-06] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -49.97779452430708\n", + "logZ_P A1 MS -48.1254609539689\n", + "DDG A1: 6.296826765912993\n", + "logZ_P A2 MD -48.75977590358004\n", + "logZ_P A2 MS -48.51118731385189\n", + "DDG A2: 1.7083594770504307\n", + "logZ_P A3 MD -49.56176409936321\n", + "logZ_P A3 MS -48.142708710508224\n", + "DDG A3: 7.094761593609932\n", + "logZ_P A4 MD -48.46358157429187\n", + "logZ_P A4 MS -48.528202609753386\n", + "DDG A4: -2.5123192185409486\n", + "logZ_P A5 MD -48.11277661616999\n", + "logZ_P A5 MS -48.43555817156477\n", + "DDG A5: -1.6973813843607128\n", + "DDG loss: 0.00013300573298054727\n", + "loss: 0.05346028546354637\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-49.97779452, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-48.12546095, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(6.29682677, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-48.7597759, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-48.51118731, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.70835948, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-49.5617641, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-48.14270871, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(7.09476159, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-48.46358157, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-48.52820261, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.51231922, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-48.11277662, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-48.43555817, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.69738138, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(0.00013301, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [-8.57225979e-04 -1.71722608e-03 -1.33478539e-03 -8.63156669e-05\n", + " -1.88106864e-03 9.95432513e-05] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -49.98748273526245\n", + "logZ_P A1 MS -48.135142259767626\n", + "DDG A1: 6.296843863080865\n", + "logZ_P A2 MD -48.769515421444524\n", + "logZ_P A2 MS -48.52092488776065\n", + "DDG A2: 1.7083642902848373\n", + "logZ_P A3 MD -49.57156129698322\n", + "logZ_P A3 MS -48.15250117384133\n", + "DDG A3: 7.094773315704305\n", + "logZ_P A4 MD -48.473392211286395\n", + "logZ_P A4 MS -48.53801172091495\n", + "DDG A4: -2.5123154405785826\n", + "logZ_P A5 MD -48.12259484610299\n", + "logZ_P A5 MS -48.44538309297677\n", + "DDG A5: -1.6973979524626492\n", + "DDG loss: 0.0001328407544897179\n", + "loss: 0.053460284193558694\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-49.98748274, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-48.13514226, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(6.29684386, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-48.76951542, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-48.52092489, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.70836429, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-49.5715613, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-48.15250117, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(7.09477332, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-48.47339221, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-48.53801172, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.51231544, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-48.12259485, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-48.44538309, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.69739795, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(0.00013284, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [-2.73455820e-04 -4.85406765e-04 -4.34702374e-04 -3.58429552e-05\n", + " -6.33772933e-04 3.32555333e-05] \n", + "\n", + "logZ_P A1 MD -49.98748273526245\n", + "logZ_P A1 MS -48.135142259767626\n", + "DDG A1: 6.296843863080865\n", + "logZ_P A2 MD -48.769515421444524\n", + "logZ_P A2 MS -48.52092488776065\n", + "DDG A2: 1.7083642902848373\n", + "logZ_P A3 MD -49.57156129698322\n", + "logZ_P A3 MS -48.15250117384133\n", + "DDG A3: 7.094773315704305\n", + "logZ_P A4 MD -48.473392211286395\n", + "logZ_P A4 MS -48.53801172091495\n", + "DDG A4: -2.5123154405785826\n", + "logZ_P A5 MD -48.12259484610299\n", + "logZ_P A5 MS -48.44538309297677\n", + "DDG A5: -1.6973979524626492\n", + "DDG loss: 0.0001328407544897179\n", + "beta: 0.005\n", + "New evaluation:\n", + "logZ_P A1 MD -1.1102230246251565e-16\n", + "logZ_P A1 MS 0.0\n", + "DDG A1: 1.7104488457556373\n", + "logZ_P A2 MD 0.0\n", + "logZ_P A2 MS 0.0\n", + "DDG A2: 1.0928541288835474\n", + "logZ_P A3 MD 0.0\n", + "logZ_P A3 MS 0.0\n", + "DDG A3: 3.581180450804952\n", + "logZ_P A4 MD 0.0\n", + "logZ_P A4 MS -2.2204460492503136e-16\n", + "DDG A4: -2.352317534738276\n", + "logZ_P A5 MD 0.0\n", + "logZ_P A5 MS 0.0\n", + "DDG A5: -0.898174253203229\n", + "DDG loss: 17.239715782404367\n", + "loss: 17.239715782404367\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-1.11022302e-16, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(0., dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(1.71044885, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(0., dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(0., dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.09285413, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(0., dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(0., dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(3.58118045, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(0., dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-2.22044605e-16, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.35231753, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(0., dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(0., dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.89817425, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(17.23971578, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ -59.13012539 13.42119932 -159.92372304 4.94716807 -214.32616084\n", + " 17.13657393] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD 1006.7577376784196\n", + "logZ_P A1 MS 939.7778109380292\n", + "DDG A1: -164.13184976345073\n", + "logZ_P A2 MD 974.8972355044259\n", + "logZ_P A2 MS 943.2582091009474\n", + "DDG A2: -77.2453752461291\n", + "logZ_P A3 MD 990.5815404433171\n", + "logZ_P A3 MS 935.1601483420636\n", + "DDG A3: -133.64218639189855\n", + "logZ_P A4 MD 959.0058460528106\n", + "logZ_P A4 MS 944.7166389943975\n", + "DDG A4: -37.73239421136925\n", + "logZ_P A5 MD 929.578448054236\n", + "logZ_P A5 MS 954.2829294045304\n", + "DDG A5: 60.27012157012564\n", + "DDG loss: 30084.684143098482\n", + "loss: 30086.35142836154\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(1006.75773768, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(939.77781094, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(-164.13184976, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(974.8972355, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(943.2582091, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(-77.24537525, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(990.58154044, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(935.16014834, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(-133.64218639, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(959.00584605, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(944.71663899, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-37.73239421, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(929.57844805, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(954.2829294, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(60.27012157, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(30084.6841431, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ -2394.45505191 -28235.27470732 95399.07580276 28300.64724087\n", + " 126472.57394502 775.45255821] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD 40.189506160506056\n", + "logZ_P A1 MS 41.46722651431379\n", + "DDG A1: 4.8740844417835945\n", + "logZ_P A2 MD 34.928682698715214\n", + "logZ_P A2 MS 40.12063580605021\n", + "DDG A2: 13.948130022645014\n", + "logZ_P A3 MD 35.57138149161432\n", + "logZ_P A3 MS 40.720183863206046\n", + "DDG A3: 16.32961512286607\n", + "logZ_P A4 MD 40.06191166943193\n", + "logZ_P A4 MS 44.59955232964696\n", + "DDG A4: 8.882880739954144\n", + "logZ_P A5 MD 38.20820929668832\n", + "logZ_P A5 MS 40.5891853002275\n", + "DDG A5: 4.997122331559767\n", + "DDG loss: 205.82857050545766\n", + "loss: 206.24326179529731\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(40.18950616, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(41.46722651, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(4.87408444, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(34.9286827, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(40.12063581, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(13.94813002, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(35.57138149, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(40.72018386, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(16.32961512, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(40.06191167, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(44.59955233, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(8.88288074, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(38.2082093, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(40.5891853, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(4.99712233, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(205.82857051, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 277.43901737 -49.66759157 92.06324448 385.52103713 1696.70157063\n", + " -39.49032863] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -2.045933509870501\n", + "logZ_P A1 MS -1.8054280342884585\n", + "DDG A1: 2.305940403296804\n", + "logZ_P A2 MD -2.2124168930468735\n", + "logZ_P A2 MS -1.8181800703100561\n", + "DDG A2: 2.068984501979936\n", + "logZ_P A3 MD -2.1968862588666354\n", + "logZ_P A3 MS -1.8441783169048924\n", + "DDG A3: 4.454485315102254\n", + "logZ_P A4 MD -1.9093954462086118\n", + "logZ_P A4 MS -1.8081006954917234\n", + "DDG A4: -2.1015117319632592\n", + "logZ_P A5 MD -1.9433773824016545\n", + "logZ_P A5 MS -1.7753847292184697\n", + "DDG A5: -0.48222444392168323\n", + "DDG loss: 12.364589888736337\n", + "loss: 12.373451610781993\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-2.04593351, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-1.80542803, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(2.3059404, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-2.21241689, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-1.81818007, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(2.0689845, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-2.19688626, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-1.84417832, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(4.45448532, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-1.90939545, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-1.8081007, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.10151173, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-1.94337738, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-1.77538473, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.48222444, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(12.36458989, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ -46.69550978 -1.53013551 -96.68837663 8.36537427 -134.01742498\n", + " 12.3271011 ] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD 13.108326655735544\n", + "logZ_P A1 MS 15.480042836418797\n", + "DDG A1: 7.582818109127401\n", + "logZ_P A2 MD 12.19434196897822\n", + "logZ_P A2 MS 14.149929670002427\n", + "DDG A2: 5.934889276619467\n", + "logZ_P A3 MD 11.989301222689107\n", + "logZ_P A3 MS 14.117801846847357\n", + "DDG A3: 8.851347996220778\n", + "logZ_P A4 MD 14.33751513949077\n", + "logZ_P A4 MS 14.618234278405932\n", + "DDG A4: -1.6572569467843408\n", + "logZ_P A5 MD 13.168207465992793\n", + "logZ_P A5 MS 13.960328819301576\n", + "DDG A5: 1.0631182175893263\n", + "DDG loss: 15.496083714157777\n", + "loss: 15.740512856884271\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(13.10832666, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(15.48004284, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(7.58281811, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(12.19434197, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(14.14992967, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(5.93488928, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(11.98930122, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(14.11780185, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(8.851348, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(14.33751514, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(14.61823428, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-1.65725695, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(13.16820747, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(13.96032882, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(1.06311822, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(15.49608371, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [141.81296429 201.79743515 109.31247057 93.35544107 545.58724263\n", + " -14.31350374] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD 3.4053726513158242\n", + "logZ_P A1 MS 4.252799247942054\n", + "DDG A1: 3.80867709900216\n", + "logZ_P A2 MD 3.292805221585896\n", + "logZ_P A2 MS 4.096505112694027\n", + "DDG A2: 3.082815059267298\n", + "logZ_P A3 MD 3.230354564920086\n", + "logZ_P A3 MS 4.043131672647976\n", + "DDG A3: 5.593616569539188\n", + "logZ_P A4 MD 4.015010554419946\n", + "logZ_P A4 MS 4.1164107914570796\n", + "DDG A4: -2.1012505478343173\n", + "logZ_P A5 MD 3.6030741742069505\n", + "logZ_P A5 MS 4.037009530564661\n", + "DDG A5: 0.17624968913845537\n", + "DDG loss: 7.033686173167088\n", + "loss: 7.120736242163441\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(3.40537265, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(4.25279925, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(3.8086771, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(3.29280522, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(4.09650511, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(3.08281506, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(3.23035456, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(4.04313167, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(5.59361657, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(4.01501055, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(4.11641079, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.10125055, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(3.60307417, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(4.03700953, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(0.17624969, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(7.03368617, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [-30.35521036 -21.96559241 -25.02881938 17.70172371 4.02169921\n", + " 5.14099176] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD 8.359161856105148\n", + "logZ_P A1 MS 9.90400350186071\n", + "DDG A1: 5.535476760646424\n", + "logZ_P A2 MD 7.8424253193070115\n", + "logZ_P A2 MS 9.232004348941354\n", + "DDG A2: 4.533451806258192\n", + "logZ_P A3 MD 7.727514879877804\n", + "logZ_P A3 MS 9.197674775375587\n", + "DDG A3: 7.221296352057472\n", + "logZ_P A4 MD 9.294492865696721\n", + "logZ_P A4 MS 9.459096501492278\n", + "DDG A4: -1.9447589325084746\n", + "logZ_P A5 MD 8.494901046678365\n", + "logZ_P A5 MS 9.097175756017522\n", + "DDG A5: 0.5930579271205209\n", + "DDG loss: 7.097032513540666\n", + "loss: 7.273952566746065\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(8.35916186, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(9.9040035, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(5.53547676, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(7.84242532, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(9.23200435, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(4.53345181, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(7.72751488, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(9.19767478, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(7.22129635, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(9.29449287, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(9.4590965, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-1.94475893, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(8.49490105, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(9.09717576, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(0.59305793, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(7.09703251, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 38.07136531 50.60838787 53.45609884 57.55302778 280.99704151\n", + " -4.3136719 ] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD 5.759242864372011\n", + "logZ_P A1 MS 6.906942656858389\n", + "DDG A1: 4.55215353195191\n", + "logZ_P A2 MD 5.469706664615259\n", + "logZ_P A2 MS 6.545355680657636\n", + "DDG A2: 3.7561610926044717\n", + "logZ_P A3 MD 5.385733268500376\n", + "logZ_P A3 MS 6.498110599336303\n", + "DDG A3: 6.335426721954705\n", + "logZ_P A4 MD 6.527189402319528\n", + "logZ_P A4 MS 6.647198046281677\n", + "DDG A4: -2.0551761322879893\n", + "logZ_P A5 MD 5.933083572413209\n", + "logZ_P A5 MS 6.4474957963235395\n", + "DDG A5: 0.3755104131987402\n", + "DDG loss: 6.186474880346102\n", + "loss: 6.3176202558522405\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(5.75924286, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(6.90694266, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(4.55215353, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(5.46970666, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(6.54535568, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(3.75616109, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(5.38573327, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(6.4981106, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(6.33542672, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(6.5271894, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(6.64719805, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.05517613, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(5.93308357, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(6.4474958, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(0.37551041, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(6.18647488, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ -5.58642196 -2.35651153 13.23650999 33.72415775 123.15621682\n", + " 0.89507249] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -1.4931965707238035\n", + "logZ_P A1 MS 3.4727037566152976\n", + "DDG A1: 14.006018056247248\n", + "logZ_P A2 MD -1.4851083977616595\n", + "logZ_P A2 MS 0.8974087475225492\n", + "DDG A2: 6.991966580607254\n", + "logZ_P A3 MD -3.0109561295311504\n", + "logZ_P A3 MS 1.935734673871508\n", + "DDG A3: 15.829186880029939\n", + "logZ_P A4 MD 1.5302552688422537\n", + "logZ_P A4 MS 1.0161270552395028\n", + "DDG A4: -3.6252989916186746\n", + "logZ_P A5 MD 1.2724759698667167\n", + "logZ_P A5 MS 2.2360266055291707\n", + "DDG A5: 1.4875771206970156\n", + "DDG loss: 87.50663694044427\n", + "loss: 87.88133090817477\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-1.49319657, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(3.47270376, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(14.00601806, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-1.4851084, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(0.89740875, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(6.99196658, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-3.01095613, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(1.93573467, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(15.82918688, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(1.53025527, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(1.01612706, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-3.62529899, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(1.27247597, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(2.23602661, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(1.48757712, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(87.50663694, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 344.8500477 927.24159575 1011.09728973 56.12689818 945.7706188\n", + " -42.54945033] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD 4.400440058681001\n", + "logZ_P A1 MS 5.798890322503237\n", + "DDG A1: 5.173011698979506\n", + "logZ_P A2 MD 4.196884638693903\n", + "logZ_P A2 MS 5.307956319140834\n", + "DDG A2: 3.843867609670137\n", + "logZ_P A3 MD 3.967141954965566\n", + "logZ_P A3 MS 5.307390506464352\n", + "DDG A3: 6.899635864315953\n", + "logZ_P A4 MD 5.3508756142166325\n", + "logZ_P A4 MS 5.411456697791547\n", + "DDG A4: -2.2023187718067825\n", + "logZ_P A5 MD 4.681716667553218\n", + "logZ_P A5 MS 5.2099855269827495\n", + "DDG A5: 0.40981944274428933\n", + "DDG loss: 5.223184469949333\n", + "loss: 5.36849841303226\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(4.40044006, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(5.79889032, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(5.1730117, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(4.19688464, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(5.30795632, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(3.84386761, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(3.96714195, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(5.30739051, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(6.89963586, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(5.35087561, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(5.4114567, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.20231877, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(4.68171667, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(5.20998553, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(0.40981944, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(5.22318447, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 12.4015217 17.20166975 34.50155269 35.64264709 161.49106291\n", + " -1.60983267] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -1.1212507477258686\n", + "logZ_P A1 MS 0.3906349170332124\n", + "DDG A1: 5.453877751699113\n", + "logZ_P A2 MD -0.8211992417215788\n", + "logZ_P A2 MS 0.16802281373070915\n", + "DDG A2: 3.5421679381834124\n", + "logZ_P A3 MD -0.9518555447445376\n", + "logZ_P A3 MS 0.09270457039533575\n", + "DDG A3: 6.167511295891279\n", + "logZ_P A4 MD 0.2041039411733374\n", + "logZ_P A4 MS 0.2076702944909119\n", + "DDG A4: -2.3434872439239816\n", + "logZ_P A5 MD -0.386531030530727\n", + "logZ_P A5 MS 3.5181661839800427e-05\n", + "DDG A5: 0.058963688185590626\n", + "DDG loss: 4.0487451270005\n", + "loss: 4.1644468054879615\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-1.12125075, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(0.39063492, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(5.45387775, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-0.82119924, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(0.16802281, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(3.54216794, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-0.95185554, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(0.09270457, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(6.1675113, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(0.20410394, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(0.20767029, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.34348724, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-0.38653103, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(3.51816618e-05, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(0.05896369, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(4.04874513, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 2.08758702 2.98414739 -3.22428307 20.95681982 86.86920038 -0.13171679] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -40.218905763508694\n", + "logZ_P A1 MS -39.522133336845044\n", + "DDG A1: 3.435657374174851\n", + "logZ_P A2 MD -40.988601221622034\n", + "logZ_P A2 MS -39.85463723034503\n", + "DDG A2: 3.9005489712853985\n", + "logZ_P A3 MD -41.72196144185954\n", + "logZ_P A3 MS -38.96597996014959\n", + "DDG A3: 10.404990599518793\n", + "logZ_P A4 MD -39.69676592450702\n", + "logZ_P A4 MS -39.76271864771154\n", + "DDG A4: -2.5156164773926974\n", + "logZ_P A5 MD -39.747091692042204\n", + "logZ_P A5 MS -39.786302432932466\n", + "DDG A5: -0.9952600476475347\n", + "DDG loss: 12.23336979542982\n", + "loss: 12.41743318781996\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-40.21890576, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-39.52213334, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(3.43565737, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-40.98860122, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-39.85463723, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(3.90054897, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-41.72196144, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-38.96597996, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(10.4049906, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-39.69676592, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-39.76271865, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.51561648, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-39.74709169, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-39.78630243, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.99526005, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(12.2333698, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ -49.21285084 40.63014364 262.01267982 -114.44143748 -258.35117797\n", + " -5.20611452] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -12.0280136279265\n", + "logZ_P A1 MS -10.709184400071283\n", + "DDG A1: 4.9758700139251575\n", + "logZ_P A2 MD -11.735564659445123\n", + "logZ_P A2 MS -10.897883698087423\n", + "DDG A2: 3.1669521892051904\n", + "logZ_P A3 MD -12.005032171633871\n", + "logZ_P A3 MS -10.79490587749596\n", + "DDG A3: 6.577453155090411\n", + "logZ_P A4 MD -10.852546112142942\n", + "logZ_P A4 MS -10.938948441056437\n", + "DDG A4: -2.566249701128086\n", + "logZ_P A5 MD -11.356901582459162\n", + "logZ_P A5 MS -10.985570647343867\n", + "DDG A5: 0.021241142142243406\n", + "DDG loss: 3.5726921214320617\n", + "loss: 3.6740782847955136\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-12.02801363, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-10.7091844, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(4.97587001, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-11.73556466, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-10.8978837, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(3.16695219, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-12.00503217, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-10.79490588, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(6.57745316, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-10.85254611, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-10.93894844, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.5662497, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-11.35690158, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-10.98557065, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(0.02124114, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(3.57269212, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [-7.42217124 -4.84713314 3.32076715 13.49851269 48.81386396 0.74233652] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -3.6892428660228473\n", + "logZ_P A1 MS -2.271844979197681\n", + "DDG A1: 5.21992601353476\n", + "logZ_P A2 MD -3.0982615986535733\n", + "logZ_P A2 MS -2.3015243006657293\n", + "DDG A2: 3.0655756787014545\n", + "logZ_P A3 MD -3.461760097348005\n", + "logZ_P A3 MS -2.350574380304017\n", + "DDG A3: 6.332476286205883\n", + "logZ_P A4 MD -2.2663079199163403\n", + "logZ_P A4 MS -2.3060923213590847\n", + "DDG A4: -2.4508237127105126\n", + "logZ_P A5 MD -2.6964246656210626\n", + "logZ_P A5 MS -2.456395659763092\n", + "DDG A5: -0.30386243469887786\n", + "DDG loss: 2.7860339051063447\n", + "loss: 2.881588769904625\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-3.68924287, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-2.27184498, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(5.21992601, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-3.0982616, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-2.3015243, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(3.06557568, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-3.4617601, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-2.35057438, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(6.33247629, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-2.26630792, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-2.30609232, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.45082371, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-2.69642467, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-2.45639566, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.30386243, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(2.78603391, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [-7.2350797 -7.78811928 -1.00074962 11.08500855 33.89885993 0.94233608] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -6.7826204970590895\n", + "logZ_P A1 MS -5.2289521601494755\n", + "DDG A1: 5.557331647943831\n", + "logZ_P A2 MD -5.891494801014023\n", + "logZ_P A2 MS -5.078152314675259\n", + "DDG A2: 3.1066901250583037\n", + "logZ_P A3 MD -6.502215875003927\n", + "logZ_P A3 MS -5.129022642845177\n", + "DDG A3: 6.98120689363003\n", + "logZ_P A4 MD -5.036435165280839\n", + "logZ_P A4 MS -5.129951534614418\n", + "DDG A4: -2.583864065208233\n", + "logZ_P A5 MD -5.322700122106182\n", + "logZ_P A5 MS -5.234937876050267\n", + "DDG A5: -0.6808749319687794\n", + "DDG loss: 1.7950471384631452\n", + "loss: 1.9098334548551086\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-6.7826205, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-5.22895216, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(5.55733165, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-5.8914948, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-5.07815231, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(3.10669013, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-6.50221588, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-5.12902264, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(6.98120689, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-5.03643517, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-5.12995153, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.58386407, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-5.32270012, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-5.23493788, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.68087493, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(1.79504714, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 4.52637946 8.20348456 26.18872319 5.4259614 35.47399469 -1.0800319 ] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -9.214470663937766\n", + "logZ_P A1 MS -7.50144985140084\n", + "DDG A1: 5.951888377597064\n", + "logZ_P A2 MD -7.972010545767341\n", + "logZ_P A2 MS -7.10768129346563\n", + "DDG A2: 3.2329333575825943\n", + "logZ_P A3 MD -8.57924420417927\n", + "logZ_P A3 MS -7.423512373956734\n", + "DDG A3: 6.44277246243595\n", + "logZ_P A4 MD -7.20214071066552\n", + "logZ_P A4 MS -7.271654636265962\n", + "DDG A4: -2.5244340145249824\n", + "logZ_P A5 MD -7.386006224372249\n", + "logZ_P A5 MS -7.450109898495588\n", + "DDG A5: -1.056894950332596\n", + "DDG loss: 1.6585977712737379\n", + "loss: 1.7778142578818072\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-9.21447066, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-7.50144985, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(5.95188838, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-7.97201055, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-7.10768129, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(3.23293336, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-8.5792442, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-7.42351237, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(6.44277246, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-7.20214071, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-7.27165464, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.52443401, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-7.38600622, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-7.4501099, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.05689495, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(1.65859777, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 7.79681667 1.62204365 4.55164583 1.81005714 15.65347909 -1.04777287] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -13.80421896232942\n", + "logZ_P A1 MS -12.167219048520863\n", + "DDG A1: 5.763660632345611\n", + "logZ_P A2 MD -12.668514101328608\n", + "logZ_P A2 MS -11.87353923551866\n", + "DDG A2: 3.0612118966289787\n", + "logZ_P A3 MD -13.260240791342488\n", + "logZ_P A3 MS -12.041613583195206\n", + "DDG A3: 6.598501418177623\n", + "logZ_P A4 MD -11.904453396437136\n", + "logZ_P A4 MS -12.01308153753317\n", + "DDG A4: -2.6212808120920563\n", + "logZ_P A5 MD -12.084319606095073\n", + "logZ_P A5 MS -12.115685908884386\n", + "DDG A5: -0.9758372189095569\n", + "DDG loss: 1.4655896706441898\n", + "loss: 1.5825021957956271\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-13.80421896, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-12.16721905, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(5.76366063, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-12.6685141, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-11.87353924, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(3.0612119, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-13.26024079, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-12.04161358, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(6.59850142, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-11.9044534, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-12.01308154, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.62128081, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-12.08431961, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-12.11568591, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.97583722, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(1.46558967, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 3.49392292 -0.06856446 7.42737001 3.38183649 18.9537625 -0.64387843] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -36.57095224279368\n", + "logZ_P A1 MS -35.25660535292465\n", + "DDG A1: 4.9647717450713875\n", + "logZ_P A2 MD -35.83303847536374\n", + "logZ_P A2 MS -35.12251602520251\n", + "DDG A2: 2.8521077154828016\n", + "logZ_P A3 MD -36.47813446716193\n", + "logZ_P A3 MS -34.878416808378056\n", + "DDG A3: 7.542081373953859\n", + "logZ_P A4 MD -35.12795722856251\n", + "logZ_P A4 MS -35.19357041952294\n", + "DDG A4: -2.5147757955562757\n", + "logZ_P A5 MD -34.95584716515194\n", + "logZ_P A5 MS -35.187060106311634\n", + "DDG A5: -1.4706574955146388\n", + "DDG loss: 1.679219465264789\n", + "loss: 1.8480895486696098\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-36.57095224, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-35.25660535, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(4.96477175, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-35.83303848, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-35.12251603, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(2.85210772, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-36.47813447, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-34.87841681, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(7.54208137, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-35.12795723, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-35.19357042, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.5147758, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-34.95584717, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-35.18706011, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.4706575, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(1.67921947, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [-10.00558784 7.00130008 40.65744919 -18.37355653 -46.47077505\n", + " -0.51217946] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -21.82834171627733\n", + "logZ_P A1 MS -20.27857622098425\n", + "DDG A1: 5.547668212101287\n", + "logZ_P A2 MD -20.788552149338265\n", + "logZ_P A2 MS -20.03025300987774\n", + "DDG A2: 2.970402798187792\n", + "logZ_P A3 MD -21.395593266318418\n", + "logZ_P A3 MS -20.081442000962806\n", + "DDG A3: 6.83501898382543\n", + "logZ_P A4 MD -20.037894731957863\n", + "logZ_P A4 MS -20.16774635456298\n", + "DDG A4: -2.673830152308544\n", + "logZ_P A5 MD -20.134227044592503\n", + "logZ_P A5 MS -20.199483872965054\n", + "DDG A5: -1.0597501602536734\n", + "DDG loss: 1.345139053402981\n", + "loss: 1.4747578046986785\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-21.82834172, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-20.27857622, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(5.54766821, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-20.78855215, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-20.03025301, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(2.9704028, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-21.39559327, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-20.081442, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(6.83501898, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-20.03789473, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-20.16774635, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.67383015, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-20.13422704, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-20.19948387, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.05975016, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(1.34513905, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [-0.34920827 -1.39411003 14.00922758 1.08554154 10.71816628 -0.50414408] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -39.58988370651608\n", + "logZ_P A1 MS -38.231599855040066\n", + "DDG A1: 5.07355966201022\n", + "logZ_P A2 MD -38.752722475381574\n", + "logZ_P A2 MS -38.08849163038359\n", + "DDG A2: 2.7374897010986006\n", + "logZ_P A3 MD -39.34480995829468\n", + "logZ_P A3 MS -37.897936992582515\n", + "DDG A3: 7.16363791390826\n", + "logZ_P A4 MD -38.104569613189575\n", + "logZ_P A4 MS -38.14931751045296\n", + "DDG A4: -2.463113328362434\n", + "logZ_P A5 MD -37.91820673058387\n", + "logZ_P A5 MS -38.153669306704316\n", + "DDG A5: -1.481179591677404\n", + "DDG loss: 1.3169167821318541\n", + "loss: 1.4872504728542046\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-39.58988371, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-38.23159986, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(5.07355966, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-38.75272248, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-38.08849163, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(2.7374897, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-39.34480996, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-37.89793699, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(7.16363791, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-38.10456961, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-38.14931751, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.46311333, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-37.91820673, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-38.15366931, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.48117959, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(1.31691678, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ -9.71350501 0.59682322 17.8458685 -10.46998543 -33.56257984\n", + " 0.24576379] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -30.492797702432696\n", + "logZ_P A1 MS -29.02488633020815\n", + "DDG A1: 5.34499740338362\n", + "logZ_P A2 MD -29.5357784577609\n", + "logZ_P A2 MS -28.822446964212034\n", + "DDG A2: 2.8590629069105704\n", + "logZ_P A3 MD -30.130537258889547\n", + "logZ_P A3 MS -28.772270558387444\n", + "DDG A3: 6.944248801248185\n", + "logZ_P A4 MD -28.825933533754\n", + "logZ_P A4 MS -28.928304643287603\n", + "DDG A4: -2.605788401943487\n", + "logZ_P A5 MD -28.806238913921735\n", + "logZ_P A5 MS -28.93767403592934\n", + "DDG A5: -1.2236076152940867\n", + "DDG loss: 1.2589280539120902\n", + "loss: 1.4063177240551232\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-30.4927977, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-29.02488633, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(5.3449974, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-29.53577846, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-28.82244696, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(2.85906291, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-30.13053726, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-28.77227056, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(6.9442488, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-28.82593353, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-28.92830464, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.6057884, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-28.80623891, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-28.93767404, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.22360762, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(1.25892805, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [-4.80129909 -3.00329133 13.55507928 -2.01334463 -3.80800304 -0.09889612] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -38.4451550501783\n", + "logZ_P A1 MS -37.00733943433837\n", + "DDG A1: 5.270480310575323\n", + "logZ_P A2 MD -37.49230386195841\n", + "logZ_P A2 MS -36.83245468443266\n", + "DDG A2: 2.7266406924372517\n", + "logZ_P A3 MD -38.05412930841675\n", + "logZ_P A3 MS -36.73269524268968\n", + "DDG A3: 6.853051197545191\n", + "logZ_P A4 MD -36.851360628229116\n", + "logZ_P A4 MS -36.90503518468618\n", + "DDG A4: -2.4852157365259413\n", + "logZ_P A5 MD -36.72041569004556\n", + "logZ_P A5 MS -36.91658223254549\n", + "DDG A5: -1.3838826124330406\n", + "DDG loss: 1.1375171952418084\n", + "loss: 1.3013344775902764\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-38.44515505, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-37.00733943, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(5.27048031, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-37.49230386, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-36.83245468, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(2.72664069, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-38.05412931, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-36.73269524, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(6.8530512, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-36.85136063, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-36.90503518, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.48521574, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-36.72041569, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-36.91658223, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.38388261, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(1.1375172, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ -7.83469392 -5.05739664 3.71373437 -3.04717512 -15.06857517\n", + " 0.49054471] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -45.73630359223085\n", + "logZ_P A1 MS -44.244281595380194\n", + "DDG A1: 5.404695309957854\n", + "logZ_P A2 MD -44.672101341985076\n", + "logZ_P A2 MS -44.04739688804221\n", + "DDG A2: 2.6396223568461252\n", + "logZ_P A3 MD -45.22416966522711\n", + "logZ_P A3 MS -43.98266170650233\n", + "DDG A3: 6.655154156607476\n", + "logZ_P A4 MD -44.10558937108915\n", + "logZ_P A4 MS -44.11489823752158\n", + "DDG A4: -2.375366288024913\n", + "logZ_P A5 MD -43.87014950823689\n", + "logZ_P A5 MS -44.122636247748495\n", + "DDG A5: -1.5233314202339412\n", + "DDG loss: 0.9645469175586902\n", + "loss: 1.1443202814078584\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-45.73630359, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-44.2442816, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(5.40469531, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-44.67210134, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-44.04739689, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(2.63962236, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-45.22416967, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-43.98266171, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(6.65515416, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-44.10558937, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-44.11489824, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.37536629, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-43.87014951, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-44.12263625, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.52333142, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(0.96454692, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ -7.65418838 -7.38880565 -7.92284517 -1.24532331 -14.333788\n", + " 0.78904037] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -59.87594704917734\n", + "logZ_P A1 MS -58.35326853809273\n", + "DDG A1: 5.480600839201124\n", + "logZ_P A2 MD -58.65170901748756\n", + "logZ_P A2 MS -58.08107086862639\n", + "DDG A2: 2.505754185463825\n", + "logZ_P A3 MD -59.328336576992356\n", + "logZ_P A3 MS -58.0324631915204\n", + "DDG A3: 6.78976295323357\n", + "logZ_P A4 MD -58.25175021057291\n", + "logZ_P A4 MS -58.172308740414074\n", + "DDG A4: -2.1556204546250215\n", + "logZ_P A5 MD -57.662572961895485\n", + "logZ_P A5 MS -58.12309730709348\n", + "DDG A5: -2.038432531913467\n", + "DDG loss: 0.8250178336133834\n", + "loss: 1.046128038256814\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-59.87594705, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-58.35326854, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(5.48060084, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-58.65170902, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-58.08107087, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(2.50575419, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-59.32833658, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-58.03246319, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(6.78976295, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-58.25175021, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-58.17230874, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.15562045, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-57.66257296, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-58.12309731, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-2.03843253, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(0.82501783, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ -7.77197675 2.51569478 -4.6237255 -10.25168938 -37.64464694\n", + " 0.63999223] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -59.505202704700494\n", + "logZ_P A1 MS -57.82753206528231\n", + "DDG A1: 5.864361348955019\n", + "logZ_P A2 MD -58.11121214121289\n", + "logZ_P A2 MS -57.48831096638576\n", + "DDG A2: 2.635157437755568\n", + "logZ_P A3 MD -58.812949898836166\n", + "logZ_P A3 MS -57.546897818306235\n", + "DDG A3: 6.715925402197097\n", + "logZ_P A4 MD -57.71227707681898\n", + "logZ_P A4 MS -57.63230392300722\n", + "DDG A4: -2.1543040059003133\n", + "logZ_P A5 MD -57.15415105681693\n", + "logZ_P A5 MS -57.575322468504126\n", + "DDG A5: -1.9409946685408002\n", + "DDG loss: 0.6946989574764859\n", + "loss: 0.9188863428734302\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-59.5052027, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-57.82753207, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(5.86436135, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-58.11121214, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-57.48831097, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(2.63515744, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-58.8129499, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-57.54689782, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(6.7159254, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-57.71227708, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-57.63230392, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.15430401, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-57.15415106, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-57.57532247, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.94099467, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(0.69469896, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [-0.11596662 -0.62380516 -2.5331628 -0.85178355 0.71145492 -0.22675005] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -58.19330383296991\n", + "logZ_P A1 MS -56.46083869679935\n", + "DDG A1: 6.000032522913981\n", + "logZ_P A2 MD -56.750477167394166\n", + "logZ_P A2 MS -56.09723839316995\n", + "DDG A2: 2.7102733338626828\n", + "logZ_P A3 MD -57.486645026423\n", + "logZ_P A3 MS -56.18580730331662\n", + "DDG A3: 6.802054653216322\n", + "logZ_P A4 MD -56.34591067049653\n", + "logZ_P A4 MS -56.28059893469602\n", + "DDG A4: -2.1906056768962583\n", + "logZ_P A5 MD -55.8265056866694\n", + "logZ_P A5 MS -56.22253987453565\n", + "DDG A5: -1.8787549023600263\n", + "DDG loss: 0.6635411441899911\n", + "loss: 0.8873601743832433\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-58.19330383, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-56.4608387, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(6.00003252, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-56.75047717, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-56.09723839, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(2.71027333, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-57.48664503, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-56.1858073, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(6.80205465, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-56.34591067, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-56.28059893, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.19060568, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-55.82650569, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-56.22253987, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.8787549, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(0.66354114, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 4.1301751 0.18903227 4.202444 2.04960919 16.18114036 -0.81273848] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -57.16430847041081\n", + "logZ_P A1 MS -55.43468272323276\n", + "DDG A1: 5.993002195768484\n", + "logZ_P A2 MD -55.73771658575986\n", + "logZ_P A2 MS -55.07974537560804\n", + "DDG A2: 2.7219908452194743\n", + "logZ_P A3 MD -56.4894770181466\n", + "logZ_P A3 MS -55.16170163548911\n", + "DDG A3: 6.868752298264903\n", + "logZ_P A4 MD -55.31878757438219\n", + "logZ_P A4 MS -55.27704040303686\n", + "DDG A4: -2.2489515384872614\n", + "logZ_P A5 MD -54.84666451848688\n", + "logZ_P A5 MS -55.22263364269221\n", + "DDG A5: -1.8290738047356525\n", + "DDG loss: 0.6359369080850013\n", + "loss: 0.855103615991079\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-57.16430847, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-55.43468272, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(5.9930022, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-55.73771659, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-55.07974538, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(2.72199085, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-56.48947702, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-55.16170164, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(6.8687523, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-55.31878757, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-55.2770404, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.24895154, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-54.84666452, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-55.22263364, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.8290738, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(0.63593691, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 4.60340554 0.60155625 7.77667205 1.955098 17.72610559 -0.95401573] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -57.12748211346057\n", + "logZ_P A1 MS -55.390830055685036\n", + "DDG A1: 6.010399340807884\n", + "logZ_P A2 MD -55.70815916914783\n", + "logZ_P A2 MS -55.05515628359749\n", + "DDG A2: 2.7096892735061795\n", + "logZ_P A3 MD -56.48423478861944\n", + "logZ_P A3 MS -55.13092543675084\n", + "DDG A3: 6.9319744060315776\n", + "logZ_P A4 MD -55.28448415534785\n", + "logZ_P A4 MS -55.272484026758455\n", + "DDG A4: -2.3226052163509414\n", + "logZ_P A5 MD -54.86768105256877\n", + "logZ_P A5 MS -55.21917519166025\n", + "DDG A5: -1.7684737415937122\n", + "DDG loss: 0.5838655668100624\n", + "loss: 0.7984584523085724\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-57.12748211, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-55.39083006, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(6.01039934, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-55.70815917, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-55.05515628, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(2.70968927, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-56.48423479, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-55.13092544, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(6.93197441, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-55.28448416, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-55.27248403, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.32260522, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-54.86768105, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-55.21917519, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.76847374, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(0.58386557, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 5.44113305 1.15723858 10.86511659 2.74688077 22.24574592 -1.0892985 ] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -58.54385138519207\n", + "logZ_P A1 MS -56.8070363780836\n", + "DDG A1: 6.010802803356188\n", + "logZ_P A2 MD -57.140896734226175\n", + "logZ_P A2 MS -56.51380942534459\n", + "DDG A2: 2.6455223056743513\n", + "logZ_P A3 MD -57.95926373912699\n", + "logZ_P A3 MS -56.590043516684055\n", + "DDG A3: 6.971369721573656\n", + "logZ_P A4 MD -56.73936639844125\n", + "logZ_P A4 MS -56.76505780343166\n", + "DDG A4: -2.415929453494499\n", + "logZ_P A5 MD -56.40293020047676\n", + "logZ_P A5 MS -56.71338724966418\n", + "DDG A5: -1.6668659069912806\n", + "DDG loss: 0.5011794612558319\n", + "loss: 0.7124086378869685\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-58.54385139, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-56.80703638, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(6.0108028, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-57.14089673, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-56.51380943, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(2.64552231, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-57.95926374, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-56.59004352, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(6.97136972, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-56.7393664, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-56.7650578, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.41592945, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-56.4029302, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-56.71338725, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.66686591, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(0.50117946, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 5.55963673 0.66217148 11.9631078 4.23614857 26.84549968 -1.04178996] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -61.79174013976193\n", + "logZ_P A1 MS -60.04809376998112\n", + "DDG A1: 6.027717257332946\n", + "logZ_P A2 MD -60.38876886104719\n", + "logZ_P A2 MS -59.79717579150406\n", + "DDG A2: 2.5576385690722843\n", + "logZ_P A3 MD -61.25292377202065\n", + "logZ_P A3 MS -59.89328549163859\n", + "DDG A3: 6.947644833030891\n", + "logZ_P A4 MD -60.055875837337105\n", + "logZ_P A4 MS -60.087713279035555\n", + "DDG A4: -2.431147040383585\n", + "logZ_P A5 MD -59.7558871906142\n", + "logZ_P A5 MS -60.04122842083174\n", + "DDG A5: -1.604679139221858\n", + "DDG loss: 0.4233603502821295\n", + "loss: 0.6424445483589296\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-61.79174014, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-60.04809377, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(6.02771726, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-60.38876886, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-59.79717579, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(2.55763857, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-61.25292377, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-59.89328549, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(6.94764483, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-60.05587584, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-60.08771328, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.43114704, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-59.75588719, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-60.04122842, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.60467914, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(0.42336035, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 5.59218688 -0.68022626 9.90040321 6.19998257 30.88047523 -0.85511507] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -65.09036035201154\n", + "logZ_P A1 MS -63.35664299033885\n", + "DDG A1: 6.0031330332572495\n", + "logZ_P A2 MD -63.66364340037998\n", + "logZ_P A2 MS -63.1144436094275\n", + "DDG A2: 2.4526728112818312\n", + "logZ_P A3 MD -64.56548879229025\n", + "logZ_P A3 MS -63.20817405677894\n", + "DDG A3: 6.941891735931025\n", + "logZ_P A4 MD -63.40828414621358\n", + "logZ_P A4 MS -63.43241497467605\n", + "DDG A4: -2.412065466011329\n", + "logZ_P A5 MD -63.06323789490692\n", + "logZ_P A5 MS -63.37926639134034\n", + "DDG A5: -1.6806608103724074\n", + "DDG loss: 0.3438755332380489\n", + "loss: 0.5742520149574495\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-65.09036035, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-63.35664299, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(6.00313303, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-63.6636434, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-63.11444361, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(2.45267281, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-64.56548879, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-63.20817406, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(6.94189174, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-63.40828415, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-63.43241497, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.41206547, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-63.06323789, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-63.37926639, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.68066081, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(0.34387553, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 3.59710823 -2.2714857 7.82706833 4.88723651 23.69681718 -0.58870864] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -70.4935769950645\n", + "logZ_P A1 MS -68.69559497510097\n", + "DDG A1: 6.16225232718533\n", + "logZ_P A2 MD -68.96263435870375\n", + "logZ_P A2 MS -68.4733406402551\n", + "DDG A2: 2.3043453757623693\n", + "logZ_P A3 MD -69.9110816221093\n", + "logZ_P A3 MS -68.52605068153603\n", + "DDG A3: 7.010517059664341\n", + "logZ_P A4 MD -68.8304012577309\n", + "logZ_P A4 MS -68.82574085107314\n", + "DDG A4: -2.3407783678536553\n", + "logZ_P A5 MD -68.34269576042271\n", + "logZ_P A5 MS -68.74358219155562\n", + "DDG A5: -1.890769056688298\n", + "DDG loss: 0.22697965615771035\n", + "loss: 0.4836895581781606\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-70.493577, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-68.69559498, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(6.16225233, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-68.96263436, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-68.47334064, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(2.30434538, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-69.91108162, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-68.52605068, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(7.01051706, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-68.83040126, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-68.82574085, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.34077837, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-68.34269576, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-68.74358219, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.89076906, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(0.22697966, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 5.74689167 4.00670491 8.99681667 4.09360306 23.49182973 -0.74545076] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -76.53833901461542\n", + "logZ_P A1 MS -74.89017944449314\n", + "DDG A1: 5.791291941378389\n", + "logZ_P A2 MD -74.93276525711413\n", + "logZ_P A2 MS -74.60920167005884\n", + "DDG A2: 1.8939975704324097\n", + "logZ_P A3 MD -76.00950889570365\n", + "logZ_P A3 MS -74.61369631702937\n", + "DDG A3: 7.037212395602507\n", + "logZ_P A4 MD -75.00050459982359\n", + "logZ_P A4 MS -75.01500300011054\n", + "DDG A4: -2.388215573848773\n", + "logZ_P A5 MD -74.35381566380235\n", + "logZ_P A5 MS -74.89101714354292\n", + "DDG A5: -2.2282851170409255\n", + "DDG loss: 0.2959710761615628\n", + "loss: 0.5656675891404338\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-76.53833901, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-74.89017944, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(5.79129194, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-74.93276526, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-74.60920167, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.89399757, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-76.0095089, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-74.61369632, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(7.0372124, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-75.0005046, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-75.015003, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.38821557, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-74.35381566, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-74.89101714, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-2.22828512, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(0.29597108, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [-14.9947686 -10.35067941 -0.63412892 -18.52691341 -64.26660207\n", + " 0.73877101] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -72.40870794442081\n", + "logZ_P A1 MS -70.6531700764681\n", + "DDG A1: 6.057160606806585\n", + "logZ_P A2 MD -70.85213382322858\n", + "logZ_P A2 MS -70.41291036573851\n", + "DDG A2: 2.1803714096289672\n", + "logZ_P A3 MD -71.83811291852362\n", + "logZ_P A3 MS -70.45059831217694\n", + "DDG A3: 7.016666616119378\n", + "logZ_P A4 MD -70.78114334129056\n", + "logZ_P A4 MS -70.78278521230949\n", + "DDG A4: -2.3563828073810833\n", + "logZ_P A5 MD -70.24485673407413\n", + "logZ_P A5 MS -70.68676105786541\n", + "DDG A5: -1.9923293589104318\n", + "DDG loss: 0.2013772335205926\n", + "loss: 0.4621402219257571\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-72.40870794, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-70.65317008, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(6.05716061, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-70.85213382, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-70.41291037, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(2.18037141, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-71.83811292, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-70.45059831, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(7.01666662, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-70.78114334, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-70.78278521, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.35638281, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-70.24485673, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-70.68676106, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.99232936, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(0.20137723, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 0.03502571 -0.23491892 6.25017119 -1.5875034 0.5839085 -0.30704704] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -73.47384163112224\n", + "logZ_P A1 MS -71.68764880997972\n", + "DDG A1: 6.133062270904555\n", + "logZ_P A2 MD -71.89731773902155\n", + "logZ_P A2 MS -71.48719251340414\n", + "DDG A2: 2.108324187512246\n", + "logZ_P A3 MD -72.87416989920548\n", + "logZ_P A3 MS -71.49815529208973\n", + "DDG A3: 6.988192618023548\n", + "logZ_P A4 MD -71.86951944005604\n", + "logZ_P A4 MS -71.85470613050228\n", + "DDG A4: -2.315639780283134\n", + "logZ_P A5 MD -71.30165019445799\n", + "logZ_P A5 MS -71.75722899382636\n", + "DDG A5: -2.026187360439308\n", + "DDG loss: 0.17374231144596117\n", + "loss: 0.44463778856530756\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-73.47384163, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-71.68764881, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(6.13306227, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-71.89731774, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-71.48719251, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(2.10832419, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-72.8741699, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-71.49815529, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(6.98819262, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-71.86951944, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-71.85470613, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.31563978, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-71.30165019, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-71.75722899, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-2.02618736, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(0.17374231, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 1.03555218 0.01067832 3.9338586 -0.34452154 3.45608871 -0.25814307] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -72.70545531041627\n", + "logZ_P A1 MS -70.88413559454519\n", + "DDG A1: 6.2200364622524065\n", + "logZ_P A2 MD -71.1992411415903\n", + "logZ_P A2 MS -70.80749779661997\n", + "DDG A2: 2.062810651030101\n", + "logZ_P A3 MD -72.12778473323269\n", + "logZ_P A3 MS -70.73675536812388\n", + "DDG A3: 7.025369158814393\n", + "logZ_P A4 MD -71.13827041734724\n", + "logZ_P A4 MS -71.11747259608023\n", + "DDG A4: -2.300822129281195\n", + "logZ_P A5 MD -70.57035151879113\n", + "logZ_P A5 MS -71.02454752776504\n", + "DDG A5: -2.0227635714226633\n", + "DDG loss: 0.14372182277382883\n", + "loss: 0.4202011726069851\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-72.70545531, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-70.88413559, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(6.22003646, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-71.19924114, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-70.8074978, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(2.06281065, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-72.12778473, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-70.73675537, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(7.02536916, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-71.13827042, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-71.1174726, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.30082213, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-70.57035152, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-71.02454753, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-2.02276357, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(0.14372182, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 2.94127886 2.88441559 4.95287686 0.51393953 8.3948058 -0.41269962] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -70.46093792386658\n", + "logZ_P A1 MS -68.56436316132994\n", + "DDG A1: 6.40636795779637\n", + "logZ_P A2 MD -69.11010982150928\n", + "logZ_P A2 MS -68.75411624373939\n", + "DDG A2: 1.97429422744184\n", + "logZ_P A3 MD -69.96362084491597\n", + "logZ_P A3 MS -68.53994551445548\n", + "DDG A3: 7.106200569025108\n", + "logZ_P A4 MD -68.97277852813436\n", + "logZ_P A4 MS -68.95014558319427\n", + "DDG A4: -2.296278363066696\n", + "logZ_P A5 MD -68.44930010098551\n", + "logZ_P A5 MS -68.88201154281039\n", + "DDG A5: -1.9695677831615925\n", + "DDG loss: 0.10037960389168087\n", + "loss: 0.3843062070226892\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-70.46093792, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-68.56436316, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(6.40636796, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-69.11010982, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-68.75411624, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.97429423, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-69.96362084, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-68.53994551, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(7.10620057, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-68.97277853, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-68.95014558, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.29627836, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-68.4493001, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-68.88201154, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.96956778, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(0.1003796, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 7.68947693 11.54655888 7.76692204 2.99067504 21.01839543 -0.76349622] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -66.52147606722389\n", + "logZ_P A1 MS -64.56273365339686\n", + "DDG A1: 6.560295062391386\n", + "logZ_P A2 MD -65.34636371901941\n", + "logZ_P A2 MS -65.0704182684781\n", + "DDG A2: 1.7760950644238422\n", + "logZ_P A3 MD -66.15541604604603\n", + "logZ_P A3 MS -64.72602370192547\n", + "DDG A3: 7.120355894847523\n", + "logZ_P A4 MD -65.15266038668274\n", + "logZ_P A4 MS -65.14785184891014\n", + "DDG A4: -2.340411595213274\n", + "logZ_P A5 MD -64.73238803774974\n", + "logZ_P A5 MS -65.11389669317781\n", + "DDG A5: -1.842789684043045\n", + "DDG loss: 0.059907846800766267\n", + "loss: 0.34718510447194895\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-66.52147607, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-64.56273365, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(6.56029506, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-65.34636372, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-65.07041827, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.77609506, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-66.15541605, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-64.7260237, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(7.12035589, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-65.15266039, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-65.14785185, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.3404116, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-64.73238804, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-65.11389669, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.84278968, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(0.05990785, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 9.84856083 17.30946428 4.96326001 5.05109738 25.67841352 -0.70200968] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -64.11556670017015\n", + "logZ_P A1 MS -62.22098112914476\n", + "DDG A1: 6.401442719614498\n", + "logZ_P A2 MD -62.97347295213799\n", + "logZ_P A2 MS -62.730580708181634\n", + "DDG A2: 1.6942553249195\n", + "logZ_P A3 MD -63.78019353216433\n", + "logZ_P A3 MS -62.39326437120012\n", + "DDG A3: 7.015217053352347\n", + "logZ_P A4 MD -62.78035705826845\n", + "logZ_P A4 MS -62.798846298982056\n", + "DDG A4: -2.3980968947452004\n", + "logZ_P A5 MD -62.40429873767196\n", + "logZ_P A5 MS -62.759635981533876\n", + "DDG A5: -1.777989269005355\n", + "DDG loss: 0.016989171818692642\n", + "loss: 0.29709192995519185\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-64.1155667, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-62.22098113, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(6.40144272, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-62.97347295, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-62.73058071, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.69425532, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-63.78019353, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-62.39326437, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(7.01521705, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-62.78035706, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-62.7988463, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.39809689, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-62.40429874, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-62.75963598, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.77798927, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(0.01698917, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 2.58820069 3.24087162 -3.33413896 1.88479914 5.62570519 -0.02046605] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -60.62176770530538\n", + "logZ_P A1 MS -58.77602763340992\n", + "DDG A1: 6.280501263768804\n", + "logZ_P A2 MD -59.56567567886732\n", + "logZ_P A2 MS -59.32168346101951\n", + "DDG A2: 1.696978860274746\n", + "logZ_P A3 MD -60.37719892145705\n", + "logZ_P A3 MS -58.98158909031088\n", + "DDG A3: 7.036710392722845\n", + "logZ_P A4 MD -59.317779167256525\n", + "logZ_P A4 MS -59.37497672238857\n", + "DDG A4: -2.493938681245195\n", + "logZ_P A5 MD -59.02233942670306\n", + "logZ_P A5 MS -59.33640790535838\n", + "DDG A5: -1.6758078063537893\n", + "DDG loss: 0.0025084521038064274\n", + "loss: 0.2727373428012722\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-60.62176771, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-58.77602763, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(6.28050126, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-59.56567568, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-59.32168346, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.69697886, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-60.37719892, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-58.98158909, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(7.03671039, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-59.31777917, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-59.37497672, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.49393868, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-59.02233943, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-59.33640791, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.67580781, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(0.00250845, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [-0.70135088 -2.38282616 -3.34642127 0.42734907 -1.37420659 0.16955892] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -60.18045009667759\n", + "logZ_P A1 MS -58.345196707681154\n", + "DDG A1: 6.25453623691081\n", + "logZ_P A2 MD -59.132168539997494\n", + "logZ_P A2 MS -58.871200258801316\n", + "DDG A2: 1.7390115931252654\n", + "logZ_P A3 MD -59.94728937433986\n", + "logZ_P A3 MS -58.532936992408494\n", + "DDG A3: 7.083116948467048\n", + "logZ_P A4 MD -58.86085539356327\n", + "logZ_P A4 MS -58.92925471045331\n", + "DDG A4: -2.5216742433580084\n", + "logZ_P A5 MD -58.56732151670784\n", + "logZ_P A5 MS -58.88423061598036\n", + "DDG A5: -1.6828411830019925\n", + "DDG loss: 0.0023190467036894053\n", + "loss: 0.2697387489977622\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-60.1804501, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-58.34519671, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(6.25453624, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-59.13216854, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-58.87120026, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.73901159, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-59.94728937, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-58.53293699, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(7.08311695, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-58.86085539, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-58.92925471, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.52167424, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-58.56732152, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-58.88423062, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.68284118, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(0.00231905, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [-0.63077908 -1.37784156 -0.3775161 -0.32299461 -1.48401348 0.04587394] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -59.474954494436425\n", + "logZ_P A1 MS -57.63507960924844\n", + "DDG A1: 6.265979061481045\n", + "logZ_P A2 MD -58.440661343368504\n", + "logZ_P A2 MS -58.18377542215439\n", + "DDG A2: 1.72890366980971\n", + "logZ_P A3 MD -59.25464601409701\n", + "logZ_P A3 MS -57.83530803095105\n", + "DDG A3: 7.095461297074326\n", + "logZ_P A4 MD -58.15921459400758\n", + "logZ_P A4 MS -58.233825500547525\n", + "DDG A4: -2.537054139331216\n", + "logZ_P A5 MD -57.8765412928793\n", + "logZ_P A5 MS -58.18882699617262\n", + "DDG A5: -1.6713936545575063\n", + "DDG loss: 0.002102389225789601\n", + "loss: 0.269133944493831\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-59.47495449, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-57.63507961, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(6.26597906, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-58.44066134, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-58.18377542, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.72890367, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-59.25464601, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-57.83530803, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(7.0954613, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-58.15921459, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-58.2338255, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.53705414, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-57.87654129, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-58.188827, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.67139365, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(0.00210239, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [-0.26808121 -0.4374481 0.11610062 -0.1191134 -0.53134431 0.01895563] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -59.1298203683858\n", + "logZ_P A1 MS -57.287190140032486\n", + "DDG A1: 6.272801291158444\n", + "logZ_P A2 MD -58.093236438422934\n", + "logZ_P A2 MS -57.83674225547642\n", + "DDG A2: 1.7279337258591798\n", + "logZ_P A3 MD -58.90414088205165\n", + "logZ_P A3 MS -57.48362636682957\n", + "DDG A3: 7.098374390494824\n", + "logZ_P A4 MD -57.80624850759583\n", + "logZ_P A4 MS -57.883594285194725\n", + "DDG A4: -2.5438256800731707\n", + "logZ_P A5 MD -57.521365279409274\n", + "logZ_P A5 MS -57.83606776796484\n", + "DDG A5: -1.6773776148667803\n", + "DDG loss: 0.0019775839761392343\n", + "loss: 0.26876537506691955\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-59.12982037, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-57.28719014, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(6.27280129, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-58.09323644, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-57.83674226, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.72793373, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-58.90414088, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-57.48362637, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(7.09837439, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-57.80624851, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-57.88359429, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.54382568, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-57.52136528, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-57.83606777, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.67737761, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(0.00197758, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [-0.11722145 0.06157278 0.35988378 -0.16040508 -0.39758764 0.00167768] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -58.27503388195327\n", + "logZ_P A1 MS -56.43074947321443\n", + "DDG A1: 6.27689704179305\n", + "logZ_P A2 MD -57.231737542165796\n", + "logZ_P A2 MS -56.97431650433795\n", + "DDG A2: 1.7302286185452778\n", + "logZ_P A3 MD -58.034628743624744\n", + "logZ_P A3 MS -56.61580346520914\n", + "DDG A3: 7.094191840162003\n", + "logZ_P A4 MD -56.93342990960321\n", + "logZ_P A4 MS -57.01508951664255\n", + "DDG A4: -2.554506721767686\n", + "logZ_P A5 MD -56.645742728595515\n", + "logZ_P A5 MS -56.96299392174347\n", + "DDG A5: -1.6836882074375967\n", + "DDG loss: 0.0023591540361152558\n", + "loss: 0.26815710580606467\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-58.27503388, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-56.43074947, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(6.27689704, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-57.23173754, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-56.9743165, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.73022862, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-58.03462874, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-56.61580347, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(7.09419184, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-56.93342991, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-57.01508952, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.55450672, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-56.64574273, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-56.96299392, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.68368821, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(0.00235915, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [-0.09994917 0.21775434 0.37673478 -0.20860308 -0.45626553 -0.00265365] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -56.2274786993024\n", + "logZ_P A1 MS -54.38405706859241\n", + "DDG A1: 6.274760803393556\n", + "logZ_P A2 MD -55.16793582993612\n", + "logZ_P A2 MS -54.90571737736123\n", + "DDG A2: 1.7421070174589979\n", + "logZ_P A3 MD -55.9519390122209\n", + "logZ_P A3 MS -54.54027416291216\n", + "DDG A3: 7.076462617693381\n", + "logZ_P A4 MD -54.84604880157919\n", + "logZ_P A4 MS -54.93273507671387\n", + "DDG A4: -2.5669527519717126\n", + "logZ_P A5 MD -54.55500742762093\n", + "logZ_P A5 MS -54.874100488327706\n", + "DDG A5: -1.688248671513244\n", + "DDG loss: 0.0037923955241341554\n", + "loss: 0.26736117568518375\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-56.2274787, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-54.38405707, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(6.2747608, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-55.16793583, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-54.90571738, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.74210702, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-55.95193901, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-54.54027416, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(7.07646262, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-54.8460488, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-54.93273508, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.56695275, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-54.55500743, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-54.87410049, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.68824867, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(0.0037924, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [-0.28078478 -0.29465944 -0.02845744 -0.18366047 -0.5443919 0.01315201] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -54.94597183055851\n", + "logZ_P A1 MS -53.10161848640583\n", + "DDG A1: 6.277067725877672\n", + "logZ_P A2 MD -53.87452093229813\n", + "logZ_P A2 MS -53.609706295235036\n", + "DDG A2: 1.748535170251775\n", + "logZ_P A3 MD -54.64846163377573\n", + "logZ_P A3 MS -53.24051328731009\n", + "DDG A3: 7.067260556653854\n", + "logZ_P A4 MD -53.54077122787646\n", + "logZ_P A4 MS -53.62766879707687\n", + "DDG A4: -2.5674759160784735\n", + "logZ_P A5 MD -53.248483606819576\n", + "logZ_P A5 MS -53.56706276844483\n", + "DDG A5: -1.686976257387352\n", + "DDG loss: 0.00433802011033778\n", + "loss: 0.2670614422035398\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-54.94597183, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-53.10161849, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(6.27706773, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-53.87452093, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-53.6097063, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.74853517, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-54.64846163, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-53.24051329, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(7.06726056, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-53.54077123, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-53.6276688, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.56747592, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-53.24848361, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-53.56706277, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.68697626, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(0.00433802, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [-0.21106555 -0.41961654 -0.24677365 0.01301676 0.05506676 0.01414702] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -53.22201993446773\n", + "logZ_P A1 MS -51.37546995483386\n", + "DDG A1: 6.282506595329118\n", + "logZ_P A2 MD -52.13142636582806\n", + "logZ_P A2 MS -51.864594211751\n", + "DDG A2: 1.75353054237836\n", + "logZ_P A3 MD -52.89536896352396\n", + "logZ_P A3 MS -51.48991641603635\n", + "DDG A3: 7.061080958384246\n", + "logZ_P A4 MD -51.78547430774383\n", + "logZ_P A4 MS -51.870686235731924\n", + "DDG A4: -2.5633022684367366\n", + "logZ_P A5 MD -51.49058259368897\n", + "logZ_P A5 MS -51.808068883154284\n", + "DDG A5: -1.6842703059193302\n", + "DDG loss: 0.004470415219848745\n", + "loss: 0.26664506687589473\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-53.22201993, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-51.37546995, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(6.2825066, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-52.13142637, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-51.86459421, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.75353054, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-52.89536896, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-51.48991642, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(7.06108096, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-51.78547431, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-51.87068624, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.56330227, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-51.49058259, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-51.80806888, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.68427031, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(0.00447042, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [-0.00317195 -0.33637443 -0.36689476 0.29490554 1.01887261 0.00584155] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -50.733229910300615\n", + "logZ_P A1 MS -48.88498421553881\n", + "DDG A1: 6.28670518598589\n", + "logZ_P A2 MD -49.61297187890425\n", + "logZ_P A2 MS -49.34551004946537\n", + "DDG A2: 1.755089618574195\n", + "logZ_P A3 MD -50.36782905930706\n", + "logZ_P A3 MS -48.962637820799216\n", + "DDG A3: 7.060433957350363\n", + "logZ_P A4 MD -49.25461390654283\n", + "logZ_P A4 MS -49.33584454652378\n", + "DDG A4: -2.55344459933113\n", + "logZ_P A5 MD -48.955337935885225\n", + "logZ_P A5 MS -49.270231186439375\n", + "DDG A5: -1.6778499415752328\n", + "DDG loss: 0.004062020085579265\n", + "loss: 0.26608088314418255\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-50.73322991, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-48.88498422, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(6.28670519, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-49.61297188, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-49.34551005, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.75508962, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-50.36782906, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-48.96263782, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(7.06043396, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-49.25461391, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-49.33584455, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.5534446, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-48.95533794, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-49.27023119, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.67784994, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(0.00406202, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 0.22370739 -0.22036976 -0.40708866 0.56667296 1.90912291 -0.00418138] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -49.68532971705987\n", + "logZ_P A1 MS -47.833552159495056\n", + "DDG A1: 6.295450078286086\n", + "logZ_P A2 MD -48.54209704992773\n", + "logZ_P A2 MS -48.27829013156446\n", + "DDG A2: 1.7460400587509746\n", + "logZ_P A3 MD -49.30025184198496\n", + "logZ_P A3 MS -47.89017020365038\n", + "DDG A3: 7.072542587321358\n", + "logZ_P A4 MD -48.18650921888819\n", + "logZ_P A4 MS -48.26433808481366\n", + "DDG A4: -2.545021806769771\n", + "logZ_P A5 MD -47.87750391331247\n", + "logZ_P A5 MS -48.19399113042647\n", + "DDG A5: -1.6817966027774975\n", + "DDG loss: 0.002626312531827995\n", + "loss: 0.26562563650282256\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-49.68532972, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-47.83355216, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(6.29545008, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-48.54209705, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-48.27829013, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.74604006, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-49.30025184, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-47.8901702, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(7.07254259, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-48.18650922, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-48.26433808, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.54502181, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-47.87750391, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-48.19399113, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.6817966, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(0.00262631, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 0.50542019 0.47723 -0.01557379 0.55419346 2.14242964 -0.02749153] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -47.89774287943884\n", + "logZ_P A1 MS -46.052963152375504\n", + "DDG A1: 6.278123449964467\n", + "logZ_P A2 MD -46.737831343802085\n", + "logZ_P A2 MS -46.47584627826759\n", + "DDG A2: 1.7415291511469775\n", + "logZ_P A3 MD -47.49417432911584\n", + "logZ_P A3 MS -46.081799124387516\n", + "DDG A3: 7.078221457712344\n", + "logZ_P A4 MD -46.37691000544537\n", + "logZ_P A4 MS -46.453545477719274\n", + "DDG A4: -2.5420669640885043\n", + "logZ_P A5 MD -46.06507466663957\n", + "logZ_P A5 MS -46.378870315511236\n", + "DDG A5: -1.6751322798095323\n", + "DDG loss: 0.002532795857857892\n", + "loss: 0.26546800503722906\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-47.89774288, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-46.05296315, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(6.27812345, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-46.73783134, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-46.47584628, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.74152915, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-47.49417433, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-46.08179912, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(7.07822146, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-46.37691001, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-46.45354548, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.54206696, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-46.06507467, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-46.37887032, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.67513228, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(0.0025328, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 0.03223801 -0.16391419 -0.19347018 0.19474963 0.49291509 0.00421466] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -49.12550721741086\n", + "logZ_P A1 MS -47.279785276954705\n", + "DDG A1: 6.280456370325085\n", + "logZ_P A2 MD -47.971470607284004\n", + "logZ_P A2 MS -47.712474954121134\n", + "DDG A2: 1.734127366114849\n", + "logZ_P A3 MD -48.7362698300221\n", + "logZ_P A3 MS -47.320250143526415\n", + "DDG A3: 7.087245194568274\n", + "logZ_P A4 MD -47.62069081665564\n", + "logZ_P A4 MS -47.699371691921456\n", + "DDG A4: -2.547131381896405\n", + "logZ_P A5 MD -47.30291800849265\n", + "logZ_P A5 MS -47.62301466174152\n", + "DDG A5: -1.6907335666474257\n", + "DDG loss: 0.0020082747934754043\n", + "loss: 0.26539782656056765\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-49.12550722, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-47.27978528, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(6.28045637, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-47.97147061, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-47.71247495, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.73412737, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-48.73626983, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-47.32025014, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(7.08724519, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-47.62069082, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-47.69937169, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.54713138, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-47.30291801, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-47.62301466, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.69073357, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(0.00200827, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [-0.02807426 0.28519882 0.1751126 -0.19436225 -0.48841196 -0.00370886] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -48.94633949346498\n", + "logZ_P A1 MS -47.10014242502411\n", + "DDG A1: 6.281632787215238\n", + "logZ_P A2 MD -47.79127250426098\n", + "logZ_P A2 MS -47.53054334078328\n", + "DDG A2: 1.7384195376543816\n", + "logZ_P A3 MD -48.554417796597065\n", + "logZ_P A3 MS -47.139486772283135\n", + "DDG A3: 7.084549667006171\n", + "logZ_P A4 MD -47.438331754589534\n", + "logZ_P A4 MS -47.5163672717663\n", + "DDG A4: -2.545533475267894\n", + "logZ_P A5 MD -47.122787035630736\n", + "logZ_P A5 MS -47.440722275633334\n", + "DDG A5: -1.6853819074496257\n", + "DDG loss: 0.002169557084230297\n", + "loss: 0.2653545358299049\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-48.94633949, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-47.10014243, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(6.28163279, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-47.7912725, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-47.53054334, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.73841954, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-48.5544178, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-47.13948677, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(7.08454967, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-47.43833175, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-47.51636727, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.54553348, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-47.12278704, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-47.44072228, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.68538191, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(0.00216956, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 0.08080733 0.24250295 0.14160273 0.00109603 0.1661759 -0.00911639] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -48.92925220945583\n", + "logZ_P A1 MS -47.08332632321674\n", + "DDG A1: 6.280961340083581\n", + "logZ_P A2 MD -47.77290153175045\n", + "logZ_P A2 MS -47.511962124350404\n", + "DDG A2: 1.7389401016060937\n", + "logZ_P A3 MD -48.53654346604916\n", + "logZ_P A3 MS -47.12197556862412\n", + "DDG A3: 7.083650564829291\n", + "logZ_P A4 MD -47.42067057368605\n", + "logZ_P A4 MS -47.49838514130404\n", + "DDG A4: -2.544738804160345\n", + "logZ_P A5 MD -47.10531048183543\n", + "logZ_P A5 MS -47.422572613372985\n", + "DDG A5: -1.6837152908901942\n", + "DDG loss: 0.0022064292316979223\n", + "loss: 0.26533967043555406\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-48.92925221, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-47.08332632, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(6.28096134, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-47.77290153, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-47.51196212, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.7389401, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-48.53654347, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-47.12197557, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(7.08365056, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-47.42067057, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-47.49838514, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.5447388, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-47.10531048, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-47.42257261, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.68371529, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(0.00220643, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 0.07268854 0.17399517 0.09065987 0.03083021 0.21578028 -0.00703581] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -49.055568129294414\n", + "logZ_P A1 MS -47.210042670165784\n", + "DDG A1: 6.279969882558144\n", + "logZ_P A2 MD -47.897150138465896\n", + "logZ_P A2 MS -47.636011195079256\n", + "DDG A2: 1.7394341527088697\n", + "logZ_P A3 MD -48.662961684392386\n", + "logZ_P A3 MS -47.24868296099758\n", + "DDG A3: 7.082934569930515\n", + "logZ_P A4 MD -47.5477360582188\n", + "logZ_P A4 MS -47.6249557627118\n", + "DDG A4: -2.5435135230629187\n", + "logZ_P A5 MD -47.23201755070133\n", + "logZ_P A5 MS -47.54860874947339\n", + "DDG A5: -1.6820540613628825\n", + "DDG loss: 0.002231485155485897\n", + "loss: 0.26531412791961206\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-49.05556813, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-47.21004267, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(6.27996988, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-47.89715014, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-47.6360112, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.73943415, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-48.66296168, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-47.24868296, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(7.08293457, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-47.54773606, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-47.62495576, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.54351352, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-47.23201755, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-47.54860875, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.68205406, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(0.00223149, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 0.05810816 0.09470275 0.03927356 0.05295355 0.23684466 -0.00463519] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -49.48008263998504\n", + "logZ_P A1 MS -47.635404889828706\n", + "DDG A1: 6.27787095514269\n", + "logZ_P A2 MD -48.3183080263019\n", + "logZ_P A2 MS -48.05710632859281\n", + "DDG A2: 1.7395895324112374\n", + "logZ_P A3 MD -49.08967698589411\n", + "logZ_P A3 MS -47.67570781287218\n", + "DDG A3: 7.082168123207239\n", + "logZ_P A4 MD -47.97609602115628\n", + "logZ_P A4 MS -48.052436249789416\n", + "DDG A4: -2.5413359408339375\n", + "logZ_P A5 MD -47.65914565261005\n", + "logZ_P A5 MS -47.974976398209854\n", + "DDG A5: -1.6801711793083618\n", + "DDG loss: 0.00223842183371867\n", + "loss: 0.2652793910199791\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-49.48008264, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-47.63540489, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(6.27787096, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-48.31830803, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-48.05710633, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.73958953, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-49.08967699, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-47.67570781, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(7.08216812, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-47.97609602, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-48.05243625, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.54133594, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-47.65914565, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-47.9749764, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.68017118, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(0.00223842, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 0.0106547 -0.04489762 -0.04574539 0.05469656 0.14959345 0.00071148] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -49.78957700152786\n", + "logZ_P A1 MS -47.945259262937995\n", + "DDG A1: 6.276979566504108\n", + "logZ_P A2 MD -48.626078512366696\n", + "logZ_P A2 MS -48.365059785569464\n", + "DDG A2: 1.7391364964334943\n", + "logZ_P A3 MD -49.40119069253135\n", + "logZ_P A3 MS -47.98697791226746\n", + "DDG A3: 7.0827712947383565\n", + "logZ_P A4 MD -48.288602964259184\n", + "logZ_P A4 MS -48.36446389515815\n", + "DDG A4: -2.540149199644159\n", + "logZ_P A5 MD -47.97038249063763\n", + "logZ_P A5 MS -48.28629159633581\n", + "DDG A5: -1.6803651989119281\n", + "DDG loss: 0.002177958821127464\n", + "loss: 0.2652697154544571\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-49.789577, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-47.94525926, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(6.27697957, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-48.62607851, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-48.36505979, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.7391365, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-49.40119069, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-47.98697791, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(7.08277129, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-48.28860296, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-48.3644639, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.5401492, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-47.97038249, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-48.2862916, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.6803652, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(0.00217796, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [-0.0125064 -0.07368802 -0.05054662 0.026981 0.0421603 0.00216434] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -49.88764571009537\n", + "logZ_P A1 MS -48.04315459654237\n", + "DDG A1: 6.277408842912842\n", + "logZ_P A2 MD -48.72420314635297\n", + "logZ_P A2 MS -48.463409946347134\n", + "DDG A2: 1.738578092097961\n", + "logZ_P A3 MD -49.50019636710451\n", + "logZ_P A3 MS -48.085645475990766\n", + "DDG A3: 7.0836084572025575\n", + "logZ_P A4 MD -48.387794463865006\n", + "logZ_P A4 MS -48.46365687163808\n", + "DDG A4: -2.54015285638444\n", + "logZ_P A5 MD -48.069029159367574\n", + "logZ_P A5 MS -48.38534048414014\n", + "DDG A5: -1.6813610933400782\n", + "DDG loss: 0.0021134864805212677\n", + "loss: 0.2652670085771236\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-49.88764571, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-48.0431546, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(6.27740884, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-48.72420315, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-48.46340995, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.73857809, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-49.50019637, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-48.08564548, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(7.08360846, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-48.38779446, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-48.46365687, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.54015286, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-48.06902916, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-48.38534048, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.68136109, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(0.00211349, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [-0.00513723 -0.02645137 -0.01653539 0.00739885 0.00737356 0.00076163] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -49.94272530663876\n", + "logZ_P A1 MS -48.0981084857952\n", + "DDG A1: 6.277720094164245\n", + "logZ_P A2 MD -48.779942428968155\n", + "logZ_P A2 MS -48.51926442027013\n", + "DDG A2: 1.7382928784197802\n", + "logZ_P A3 MD -49.556087660734775\n", + "logZ_P A3 MS -48.14143371982465\n", + "DDG A3: 7.0838636084984286\n", + "logZ_P A4 MD -48.443737082954655\n", + "logZ_P A4 MS -48.51971091832108\n", + "DDG A4: -2.5404287511056176\n", + "logZ_P A5 MD -48.124947999451614\n", + "logZ_P A5 MS -48.44148567957939\n", + "DDG A5: -1.6819215491995776\n", + "DDG loss: 0.0020922180858587132\n", + "loss: 0.26526654239053915\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-49.94272531, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-48.09810849, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(6.27772009, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-48.77994243, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-48.51926442, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.73829288, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-49.55608766, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-48.14143372, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(7.08386361, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-48.44373708, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-48.51971092, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.54042875, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-48.124948, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-48.44148568, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.68192155, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(0.00209222, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [-0.00179144 -0.00271303 -0.00292087 -0.00116242 -0.00704572 0.00020495] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -49.94975924885141\n", + "logZ_P A1 MS -48.10512860054408\n", + "DDG A1: 6.277754330964656\n", + "logZ_P A2 MD -48.78710710723255\n", + "logZ_P A2 MS -48.52641001497756\n", + "DDG A2: 1.7383401293068934\n", + "logZ_P A3 MD -49.563248211960726\n", + "logZ_P A3 MS -48.14858783070544\n", + "DDG A3: 7.08387955479301\n", + "logZ_P A4 MD -48.45088305784671\n", + "logZ_P A4 MS -48.52687705769791\n", + "DDG A4: -2.540478678369829\n", + "logZ_P A5 MD -48.13213749763899\n", + "logZ_P A5 MS -48.44868018767915\n", + "DDG A5: -1.681933953742679\n", + "DDG loss: 0.0020948047448553094\n", + "loss: 0.2652665348120906\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-49.94975925, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-48.1051286, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(6.27775433, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-48.78710711, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-48.52641001, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.73834013, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-49.56324821, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-48.14858783, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(7.08387955, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-48.45088306, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-48.52687706, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.54047868, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-48.1321375, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-48.44868019, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.68193395, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(0.0020948, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [-2.29756328e-04 -4.56737032e-05 -7.35464013e-05 -4.06583135e-04\n", + " -1.44021512e-03 1.29825623e-05] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -49.95109120327366\n", + "logZ_P A1 MS -48.106458993004225\n", + "DDG A1: 6.277758198382837\n", + "logZ_P A2 MD -48.78846992350557\n", + "logZ_P A2 MS -48.52777040142322\n", + "DDG A2: 1.7383461455594407\n", + "logZ_P A3 MD -49.564609784817335\n", + "logZ_P A3 MS -48.149951720721646\n", + "DDG A3: 7.083873817505951\n", + "logZ_P A4 MD -48.452242481051584\n", + "logZ_P A4 MS -48.528241065055504\n", + "DDG A4: -2.540490028732033\n", + "logZ_P A5 MD -48.13351350398086\n", + "logZ_P A5 MS -48.450051741788684\n", + "DDG A5: -1.6819229300154246\n", + "DDG loss: 0.0020957006331112555\n", + "loss: 0.26526653453179877\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-49.9510912, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-48.10645899, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(6.2777582, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-48.78846992, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-48.5277704, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.73834615, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-49.56460978, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-48.14995172, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(7.08387382, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-48.45224248, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-48.52824107, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.54049003, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-48.1335135, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-48.45005174, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.68192293, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(0.0020957, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [-4.55815096e-05 -4.43519755e-05 -5.67151183e-05 -3.43201102e-05\n", + " -1.76361613e-04 4.92206352e-06] \n", + "\n", + "logZ_P A1 MD -49.95109120327366\n", + "logZ_P A1 MS -48.106458993004225\n", + "DDG A1: 6.277758198382837\n", + "logZ_P A2 MD -48.78846992350557\n", + "logZ_P A2 MS -48.52777040142322\n", + "DDG A2: 1.7383461455594407\n", + "logZ_P A3 MD -49.564609784817335\n", + "logZ_P A3 MS -48.149951720721646\n", + "DDG A3: 7.083873817505951\n", + "logZ_P A4 MD -48.452242481051584\n", + "logZ_P A4 MS -48.528241065055504\n", + "DDG A4: -2.540490028732033\n", + "logZ_P A5 MD -48.13351350398086\n", + "logZ_P A5 MS -48.450051741788684\n", + "DDG A5: -1.6819229300154246\n", + "DDG loss: 0.0020957006331112555\n", + "beta: 0.01\n", + "New evaluation:\n", + "logZ_P A1 MD -1.1102230246251565e-16\n", + "logZ_P A1 MS 0.0\n", + "DDG A1: 1.7104488457556373\n", + "logZ_P A2 MD 0.0\n", + "logZ_P A2 MS 0.0\n", + "DDG A2: 1.0928541288835474\n", + "logZ_P A3 MD 0.0\n", + "logZ_P A3 MS 0.0\n", + "DDG A3: 3.581180450804952\n", + "logZ_P A4 MD 0.0\n", + "logZ_P A4 MS -2.2204460492503136e-16\n", + "DDG A4: -2.352317534738276\n", + "logZ_P A5 MD 0.0\n", + "logZ_P A5 MS 0.0\n", + "DDG A5: -0.898174253203229\n", + "DDG loss: 17.239715782404367\n", + "loss: 17.239715782404367\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-1.11022302e-16, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(0., dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(1.71044885, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(0., dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(0., dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.09285413, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(0., dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(0., dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(3.58118045, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(0., dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-2.22044605e-16, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.35231753, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(0., dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(0., dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.89817425, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(17.23971578, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ -59.13012539 13.42119932 -159.92372304 4.94716807 -214.32616084\n", + " 17.13657393] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD 1006.7577376784187\n", + "logZ_P A1 MS 939.7778109380283\n", + "DDG A1: -164.13184976345073\n", + "logZ_P A2 MD 974.897235504425\n", + "logZ_P A2 MS 943.2582091009463\n", + "DDG A2: -77.24537524612967\n", + "logZ_P A3 MD 990.5815404433159\n", + "logZ_P A3 MS 935.1601483420627\n", + "DDG A3: -133.64218639189798\n", + "logZ_P A4 MD 959.0058460528095\n", + "logZ_P A4 MS 944.7166389943964\n", + "DDG A4: -37.73239421136925\n", + "logZ_P A5 MD 929.5784480542352\n", + "logZ_P A5 MS 954.2829294045295\n", + "DDG A5: 60.270121570125355\n", + "DDG loss: 30084.68414309843\n", + "loss: 30088.01871362455\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(1006.75773768, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(939.77781094, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(-164.13184976, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(974.8972355, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(943.2582091, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(-77.24537525, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(990.58154044, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(935.16014834, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(-133.64218639, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(959.00584605, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(944.71663899, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-37.73239421, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(929.57844805, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(954.2829294, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(60.27012157, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(30084.6841431, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ -2394.27785388 -28235.63462965 95399.03067854 28301.02548796\n", + " 126475.49326809 775.45231648] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD 40.18642065550376\n", + "logZ_P A1 MS 41.46420961680151\n", + "DDG A1: 4.874254313928888\n", + "logZ_P A2 MD 34.9257889022018\n", + "logZ_P A2 MS 40.117639078618325\n", + "DDG A2: 13.947875165690858\n", + "logZ_P A3 MD 35.5684326908446\n", + "logZ_P A3 MS 40.71714911654856\n", + "DDG A3: 16.329402320847954\n", + "logZ_P A4 MD 40.05892801395411\n", + "logZ_P A4 MS 44.596431039433384\n", + "DDG A4: 8.882539956348408\n", + "logZ_P A5 MD 38.20530064201109\n", + "logZ_P A5 MS 40.58621913930362\n", + "DDG A5: 4.996979946093102\n", + "DDG loss: 205.81841014600604\n", + "loss: 206.6477821178422\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(40.18642066, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(41.46420962, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(4.87425431, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(34.9257889, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(40.11763908, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(13.94787517, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(35.56843269, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(40.71714912, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(16.32940232, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(40.05892801, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(44.59643104, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(8.88253996, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(38.20530064, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(40.58621914, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(4.99697995, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(205.81841015, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 277.56316982 -49.63634052 92.25005506 385.79545214 1697.54472066\n", + " -39.48971198] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -2.04181355677815\n", + "logZ_P A1 MS -1.8019939563250529\n", + "DDG A1: 2.3042421764775205\n", + "logZ_P A2 MD -2.2076382674158905\n", + "logZ_P A2 MS -1.8146119247288754\n", + "DDG A2: 2.0659873533765802\n", + "logZ_P A3 MD -2.192172044102677\n", + "logZ_P A3 MS -1.8405424936052799\n", + "DDG A3: 4.451815217836496\n", + "logZ_P A4 MD -1.9055832406266133\n", + "logZ_P A4 MS -1.8045964411717907\n", + "DDG A4: -2.102274219288152\n", + "logZ_P A5 MD -1.9394638689869164\n", + "logZ_P A5 MS -1.7719835563710296\n", + "DDG A5: -0.48349299916627675\n", + "DDG loss: 12.375492523637682\n", + "loss: 12.393112087145148\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-2.04181356, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-1.80199396, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(2.30424218, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-2.20763827, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-1.81461192, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(2.06598735, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-2.19217204, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-1.84054249, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(4.45181522, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-1.90558324, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-1.80459644, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.10227422, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-1.93946387, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-1.77198356, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.483493, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(12.37549252, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ -46.62505688 -1.41265369 -96.82887755 8.63376141 -133.2957525\n", + " 12.34158793] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD 10.35285943935455\n", + "logZ_P A1 MS 12.698428604296424\n", + "DDG A1: 7.518078098151728\n", + "logZ_P A2 MD 9.658143218874809\n", + "logZ_P A2 MS 11.420549524715998\n", + "DDG A2: 5.456572142146314\n", + "logZ_P A3 MD 9.355567886663646\n", + "logZ_P A3 MS 11.420547979628276\n", + "DDG A3: 8.69407116098538\n", + "logZ_P A4 MD 11.62508877001563\n", + "logZ_P A4 MS 11.80065457722803\n", + "DDG A4: -1.9176165960803546\n", + "logZ_P A5 MD 10.5123870974101\n", + "logZ_P A5 MS 11.273646286107002\n", + "DDG A5: 0.9867034980103234\n", + "DDG loss: 12.847078747006947\n", + "loss: 13.30827981421502\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(10.35285944, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(12.6984286, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(7.5180781, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(9.65814322, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(11.42054952, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(5.45657214, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(9.35556789, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(11.42054798, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(8.69407116, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(11.62508877, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(11.80065458, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-1.9176166, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(10.5123871, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(11.27364629, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(0.9867035, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(12.84707875, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [128.61991636 187.89518713 103.36038477 84.57411985 489.73673129\n", + " -12.93295831] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD 3.0739526744315846\n", + "logZ_P A1 MS 3.997878039690666\n", + "DDG A1: 3.9980880501371203\n", + "logZ_P A2 MD 2.9894425850265316\n", + "logZ_P A2 MS 3.8160410796667925\n", + "DDG A2: 3.1395120016128093\n", + "logZ_P A3 MD 2.8786297306409\n", + "logZ_P A3 MS 3.7772064511070615\n", + "DDG A3: 5.806056410679181\n", + "logZ_P A4 MD 3.7528373532660595\n", + "logZ_P A4 MS 3.8345785004985125\n", + "DDG A4: -2.1499264541907315\n", + "logZ_P A5 MD 3.307892660712535\n", + "logZ_P A5 MS 3.7466735921227654\n", + "DDG A5: 0.18824733296847904\n", + "DDG loss: 6.366656458995666\n", + "loss: 6.554931450690976\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(3.07395267, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(3.99787804, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(3.99808805, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(2.98944259, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(3.81604108, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(3.139512, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(2.87862973, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(3.77720645, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(5.80605641, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(3.75283735, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(3.8345785, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.14992645, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(3.30789266, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(3.74667359, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(0.18824733, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(6.36665646, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [-26.11464817 -20.80695456 -16.97036924 18.97685884 21.54604478\n", + " 4.23919001] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD 10.84809396828061\n", + "logZ_P A1 MS 16.507741048151445\n", + "DDG A1: 15.723735015515828\n", + "logZ_P A2 MD 10.623225498363235\n", + "logZ_P A2 MS 12.574603082818221\n", + "DDG A2: 5.924465027994098\n", + "logZ_P A3 MD 8.717139883174363\n", + "logZ_P A3 MS 12.957551685953055\n", + "DDG A3: 14.080440074484965\n", + "logZ_P A4 MD 13.418907722746432\n", + "logZ_P A4 MS 13.705540442178124\n", + "DDG A4: -1.6426149214254377\n", + "logZ_P A5 MD 11.565396219920027\n", + "logZ_P A5 MS 12.739109396474024\n", + "DDG A5: 2.007939571944447\n", + "DDG loss: 84.9316775455169\n", + "loss: 85.63334505654929\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(10.84809397, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(16.50774105, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(15.72373502, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(10.6232255, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(12.57460308, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(5.92446503, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(8.71713988, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(12.95755169, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(14.08044007, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(13.41890772, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(13.70554044, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-1.64261492, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(11.56539622, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(12.7391094, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(2.00793957, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(84.93167755, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [345.10480666 726.49735828 502.01769193 27.48172374 820.78825884\n", + " -40.51623818] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD 3.4555745027538762\n", + "logZ_P A1 MS 4.55882155621933\n", + "DDG A1: 4.442088550136097\n", + "logZ_P A2 MD 3.3375114773324963\n", + "logZ_P A2 MS 4.271478444273276\n", + "DDG A2: 3.4053563390289003\n", + "logZ_P A3 MD 3.166722840616769\n", + "logZ_P A3 MS 4.251593093872962\n", + "DDG A3: 6.267319197867264\n", + "logZ_P A4 MD 4.249473870306962\n", + "logZ_P A4 MS 4.315899949882594\n", + "DDG A4: -2.1878465617090046\n", + "logZ_P A5 MD 3.7158142162907923\n", + "logZ_P A5 MS 4.188173734860291\n", + "DDG A5: 0.2713879147748293\n", + "DDG loss: 5.5186212981995\n", + "loss: 5.748731000821947\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(3.4555745, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(4.55882156, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(4.44208855, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(3.33751148, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(4.27147844, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(3.40535634, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(3.16672284, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(4.25159309, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(6.2673192, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(4.24947387, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(4.31589995, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.18784656, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(3.71581422, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(4.18817373, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(0.27138791, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(5.5186213, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [-13.34285849 -11.62930616 4.56331901 24.44051179 73.48195724\n", + " 1.93562857] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -1.1816700242482874\n", + "logZ_P A1 MS 0.05273230755895142\n", + "DDG A1: 4.766829019310379\n", + "logZ_P A2 MD -0.9411015171399137\n", + "logZ_P A2 MS -0.11784108897933265\n", + "DDG A2: 3.131246949009144\n", + "logZ_P A3 MD -1.1514296030064548\n", + "logZ_P A3 MS -0.13720378337605244\n", + "DDG A3: 6.092403580209815\n", + "logZ_P A4 MD -0.11107587661513385\n", + "logZ_P A4 MS -0.11581012915405431\n", + "DDG A4: -2.364039544024652\n", + "logZ_P A5 MD -0.6105766585699399\n", + "logZ_P A5 MS -0.23342175197984893\n", + "DDG A5: 0.03566129551384068\n", + "DDG loss: 4.222668504292282\n", + "loss: 4.42041093689751\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-1.18167002, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(0.05273231, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(4.76682902, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-0.94110152, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-0.11784109, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(3.13124695, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-1.1514296, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-0.13720378, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(6.09240358, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-0.11107588, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-0.11581013, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.36403954, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-0.61057666, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-0.23342175, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(0.0356613, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(4.2226685, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [-15.17748639 -14.54024102 -9.54707132 14.47326819 32.40022846\n", + " 2.17805707] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -29.936449768766416\n", + "logZ_P A1 MS -29.031414452229438\n", + "DDG A1: 3.9513162895011678\n", + "logZ_P A2 MD -31.47959671269033\n", + "logZ_P A2 MS -29.554655723448\n", + "DDG A2: 5.859008018247592\n", + "logZ_P A3 MD -32.87673376155214\n", + "logZ_P A3 MS -27.97089892109165\n", + "DDG A3: 15.728027515785115\n", + "logZ_P A4 MD -29.184970946838302\n", + "logZ_P A4 MS -29.440086881542143\n", + "DDG A4: -2.983984589064979\n", + "logZ_P A5 MD -29.1407470065084\n", + "logZ_P A5 MS -29.2893843692108\n", + "DDG A5: -1.266200363254377\n", + "DDG loss: 48.83947244412421\n", + "loss: 49.34376101512917\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-29.93644977, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-29.03141445, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(3.95131629, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-31.47959671, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-29.55465572, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(5.85900802, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-32.87673376, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-27.97089892, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(15.72802752, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-29.18497095, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-29.44008688, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.98398459, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-29.14074701, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-29.28938437, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.26620036, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(48.83947244, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ -141.57661085 179.17276852 831.3657054 -484.39419397\n", + " -1168.83113852 -20.59656173] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -8.090930459470098\n", + "logZ_P A1 MS -6.9381470023106955\n", + "DDG A1: 4.564740685682315\n", + "logZ_P A2 MD -7.957533838541253\n", + "logZ_P A2 MS -7.137362772827864\n", + "DDG A2: 3.1235976875898803\n", + "logZ_P A3 MD -8.36298112961596\n", + "logZ_P A3 MS -6.98377181059557\n", + "DDG A3: 6.996102724699438\n", + "logZ_P A4 MD -7.091637692853111\n", + "logZ_P A4 MS -7.1951089937993675\n", + "DDG A4: -2.6085124758812\n", + "logZ_P A5 MD -7.555726255056884\n", + "logZ_P A5 MS -7.18514618187313\n", + "DDG A5: 0.019382007999725205\n", + "DDG loss: 4.008299677353726\n", + "loss: 4.209463839518903\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-8.09093046, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-6.938147, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(4.56474069, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-7.95753384, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-7.13736277, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(3.12359769, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-8.36298113, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-6.98377181, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(6.99610272, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-7.09163769, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-7.19510899, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.60851248, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-7.55572626, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-7.18514618, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(0.01938201, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(4.00829968, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [-12.66322483 -7.26037479 24.01544482 8.83226707 33.26843497\n", + " 0.81302921] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -5.462027374029816\n", + "logZ_P A1 MS -4.242176179933635\n", + "DDG A1: 4.730800402337778\n", + "logZ_P A2 MD -5.227244871930081\n", + "logZ_P A2 MS -4.410218784258544\n", + "DDG A2: 3.1158107219582707\n", + "logZ_P A3 MD -5.670675943425096\n", + "logZ_P A3 MS -4.295566927510494\n", + "DDG A3: 6.9859503742095095\n", + "logZ_P A4 MD -4.358620746746661\n", + "logZ_P A4 MS -4.453814452211374\n", + "DDG A4: -2.5880171494688957\n", + "logZ_P A5 MD -4.815006901586738\n", + "logZ_P A5 MS -4.4707185157113525\n", + "DDG A5: -0.04571620977576993\n", + "DDG loss: 3.612158286028752\n", + "loss: 3.815972305101244\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-5.46202737, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-4.24217618, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(4.7308004, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-5.22724487, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-4.41021878, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(3.11581072, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-5.67067594, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-4.29556693, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(6.98595037, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-4.35862075, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-4.45381445, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.58801715, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-4.8150069, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-4.47071852, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.04571621, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(3.61215829, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [-9.38008108 -4.41713113 25.58641193 9.71798473 38.39693027 0.52153144] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -5.620922374573267\n", + "logZ_P A1 MS -4.2944281655600705\n", + "DDG A1: 4.994848507272334\n", + "logZ_P A2 MD -5.180343877583468\n", + "logZ_P A2 MS -4.393231212570246\n", + "DDG A2: 3.0417450874562935\n", + "logZ_P A3 MD -5.653259514154776\n", + "logZ_P A3 MS -4.313709182003377\n", + "DDG A3: 6.897907073211794\n", + "logZ_P A4 MD -4.324425108328951\n", + "logZ_P A4 MS -4.4227623748820495\n", + "DDG A4: -2.595800606723757\n", + "logZ_P A5 MD -4.756754099620611\n", + "logZ_P A5 MS -4.47750614640496\n", + "DDG A5: -0.20675632104129227\n", + "DDG loss: 2.8917481453694753\n", + "loss: 3.098724490145808\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-5.62092237, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-4.29442817, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(4.99484851, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-5.18034388, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-4.39323121, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(3.04174509, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-5.65325951, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-4.31370918, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(6.89790707, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-4.32442511, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-4.42276237, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.59580061, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-4.7567541, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-4.47750615, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.20675632, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(2.89174815, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [-6.49019243 -2.16760589 20.3991548 8.73731049 35.13570569 0.3204763 ] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -7.777687454261161\n", + "logZ_P A1 MS -6.27821254151059\n", + "DDG A1: 5.423148729726052\n", + "logZ_P A2 MD -6.897413119262501\n", + "logZ_P A2 MS -6.136879853965239\n", + "DDG A2: 2.9759344937595507\n", + "logZ_P A3 MD -7.46304716039483\n", + "logZ_P A3 MS -6.199895169375353\n", + "DDG A3: 6.708744780569194\n", + "logZ_P A4 MD -6.100398718607692\n", + "logZ_P A4 MS -6.185441831729815\n", + "DDG A4: -2.5628842828286595\n", + "logZ_P A5 MD -6.398778527076416\n", + "logZ_P A5 MS -6.307314934014267\n", + "DDG A5: -0.6717103967813596\n", + "DDG loss: 1.8056457851963739\n", + "loss: 2.020567591898213\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-7.77768745, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-6.27821254, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(5.42314873, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-6.89741312, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-6.13687985, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(2.97593449, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-7.46304716, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-6.19989517, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(6.70874478, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-6.10039872, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-6.18544183, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.56288428, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-6.39877853, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-6.30731493, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.6717104, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(1.80564579, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [-1.12323720e+00 7.72183441e-01 1.13552315e+01 5.81246343e+00\n", + " 2.36550633e+01 -2.21306631e-02] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -14.323604454016019\n", + "logZ_P A1 MS -12.644097813414685\n", + "DDG A1: 5.868907287884535\n", + "logZ_P A2 MD -13.102835355927889\n", + "logZ_P A2 MS -12.264639776257654\n", + "DDG A2: 3.168226384147065\n", + "logZ_P A3 MD -13.752221176673586\n", + "logZ_P A3 MS -12.531699053573767\n", + "DDG A3: 6.603193227600086\n", + "logZ_P A4 MD -12.36292351239058\n", + "logZ_P A4 MS -12.465166510314827\n", + "DDG A4: -2.60547119759872\n", + "logZ_P A5 MD -12.517106425559062\n", + "logZ_P A5 MS -12.575102440359398\n", + "DDG A5: -1.041772385848866\n", + "DDG loss: 1.5163671881005267\n", + "loss: 1.768840946987049\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-14.32360445, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-12.64409781, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(5.86890729, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-13.10283536, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-12.26463978, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(3.16822638, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-13.75222118, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-12.53169905, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(6.60319323, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-12.36292351, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-12.46516651, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.6054712, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-12.51710643, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-12.57510244, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.04177239, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(1.51636719, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 7.05032844 2.29059659 9.7149407 0.6133065 11.33289057 -1.07224832] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -18.995388491529503\n", + "logZ_P A1 MS -17.366354826516776\n", + "DDG A1: 5.74393620032715\n", + "logZ_P A2 MD -17.86699140315423\n", + "logZ_P A2 MS -17.1169629509693\n", + "DDG A2: 2.949924576493447\n", + "logZ_P A3 MD -18.440748243911184\n", + "logZ_P A3 MS -17.221652572544183\n", + "DDG A3: 6.599661333109645\n", + "logZ_P A4 MD -17.130899022397873\n", + "logZ_P A4 MS -17.23958437268748\n", + "DDG A4: -2.621422462055373\n", + "logZ_P A5 MD -17.292898489348957\n", + "logZ_P A5 MS -17.312163349210916\n", + "DDG A5: -0.9458740462214487\n", + "DDG loss: 1.3526532731342726\n", + "loss: 1.6066484137143848\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-18.99538849, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-17.36635483, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(5.7439362, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-17.8669914, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-17.11696295, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(2.94992458, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-18.44074824, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-17.22165257, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(6.59966133, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-17.13089902, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-17.23958437, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.62142246, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-17.29289849, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-17.31216335, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.94587405, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(1.35265327, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 2.06278983 -1.28354237 3.47655748 4.16440631 18.21852122 -0.38691753] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -39.734888746619376\n", + "logZ_P A1 MS -38.35316462482196\n", + "DDG A1: 5.1315977713260805\n", + "logZ_P A2 MD -38.875097126963716\n", + "logZ_P A2 MS -38.226664626858934\n", + "DDG A2: 2.6983729991430407\n", + "logZ_P A3 MD -39.45156658047773\n", + "logZ_P A3 MS -38.007325137690174\n", + "DDG A3: 7.15712226314698\n", + "logZ_P A4 MD -38.213712567280226\n", + "logZ_P A4 MS -38.23922509711466\n", + "DDG A4: -2.415486558608324\n", + "logZ_P A5 MD -37.99338462493097\n", + "logZ_P A5 MS -38.236916407478596\n", + "DDG A5: -1.5011589467911373\n", + "DDG loss: 1.205927826276079\n", + "loss: 1.566615060406582\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-39.73488875, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-38.35316462, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(5.13159777, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-38.87509713, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-38.22666463, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(2.698373, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-39.45156658, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-38.00732514, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(7.15712226, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-38.21371257, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-38.2392251, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.41548656, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-37.99338462, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-38.23691641, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.50115895, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(1.20592783, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ -9.25950823 1.00247987 14.82669447 -10.25346079 -32.13913445\n", + " 0.22181444] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -24.042208165753063\n", + "logZ_P A1 MS -22.45059173556084\n", + "DDG A1: 5.651291126911569\n", + "logZ_P A2 MD -22.957712742864153\n", + "logZ_P A2 MS -22.23181292582743\n", + "DDG A2: 2.8901820758664996\n", + "logZ_P A3 MD -23.526741775455704\n", + "logZ_P A3 MS -22.264269184259156\n", + "DDG A3: 6.707062586607553\n", + "logZ_P A4 MD -22.230239150011467\n", + "logZ_P A4 MS -22.33788285963521\n", + "DDG A4: -2.6188433597666667\n", + "logZ_P A5 MD -22.334700825849925\n", + "logZ_P A5 MS -22.376739352437273\n", + "DDG A5: -1.002261645033502\n", + "DDG loss: 1.2463594713665413\n", + "loss: 1.5219183150089404\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-24.04220817, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-22.45059174, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(5.65129113, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-22.95771274, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-22.23181293, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(2.89018208, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-23.52674178, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-22.26426918, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(6.70706259, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-22.23023915, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-22.33788286, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.61884336, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-22.33470083, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-22.37673935, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.00226165, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(1.24635947, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 0.06733185 -2.78870125 5.25401375 3.512788 15.33809673 -0.297216 ] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -31.951018438666782\n", + "logZ_P A1 MS -30.452628125731124\n", + "DDG A1: 5.420463260584318\n", + "logZ_P A2 MD -30.96649222487142\n", + "logZ_P A2 MS -30.277939582641675\n", + "DDG A2: 2.7977104710444127\n", + "logZ_P A3 MD -31.53507376575543\n", + "logZ_P A3 MS -30.193993256291005\n", + "DDG A3: 6.9016957922389235\n", + "logZ_P A4 MD -30.262895282242336\n", + "logZ_P A4 MS -30.342689945004818\n", + "DDG A4: -2.549889119738179\n", + "logZ_P A5 MD -30.228262190212565\n", + "logZ_P A5 MS -30.35000857019652\n", + "DDG A5: -1.1996182900434451\n", + "DDG loss: 1.1353742464827796\n", + "loss: 1.4510813094579444\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-31.95101844, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-30.45262813, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(5.42046326, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-30.96649222, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-30.27793958, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(2.79771047, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-31.53507377, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-30.19399326, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(6.90169579, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-30.26289528, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-30.34268995, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.54988912, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-30.22826219, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-30.35000857, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.19961829, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(1.13537425, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [-4.37252201 -3.6583777 8.64029415 -0.651023 -0.37476239 -0.04190304] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -49.47866637551777\n", + "logZ_P A1 MS -48.10695726202966\n", + "DDG A1: 5.106800610752194\n", + "logZ_P A2 MD -48.571282549788734\n", + "logZ_P A2 MS -47.98043548278401\n", + "DDG A2: 2.5557914667872255\n", + "logZ_P A3 MD -49.12972507812129\n", + "logZ_P A3 MS -47.74085095356093\n", + "DDG A3: 7.0200327832164024\n", + "logZ_P A4 MD -48.01396528791366\n", + "logZ_P A4 MS -47.96556937369852\n", + "DDG A4: -2.2324892511415673\n", + "logZ_P A5 MD -47.60105103557593\n", + "logZ_P A5 MS -47.96536548457838\n", + "DDG A5: -1.8002168289332945\n", + "DDG loss: 1.122051993221763\n", + "loss: 1.5242552516592494\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-49.47866638, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-48.10695726, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(5.10680061, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-48.57128255, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-47.98043548, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(2.55579147, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-49.12972508, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-47.74085095, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(7.02003278, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-48.01396529, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-47.96556937, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.23248925, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-47.60105104, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-47.96536548, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.80021683, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(1.12205199, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [-10.99630254 3.93060915 3.38511278 -13.50828905 -49.7353368\n", + " 0.82403145] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -38.65682867624223\n", + "logZ_P A1 MS -37.196291009881485\n", + "DDG A1: 5.3267401076648895\n", + "logZ_P A2 MD -37.6956729135336\n", + "logZ_P A2 MS -37.03753769450971\n", + "DDG A2: 2.722396931186735\n", + "logZ_P A3 MD -38.25309773892275\n", + "logZ_P A3 MS -36.90205579790828\n", + "DDG A3: 6.92636029675675\n", + "logZ_P A4 MD -37.03655752415186\n", + "logZ_P A4 MS -37.07268071790301\n", + "DDG A4: -2.4417585624661635\n", + "logZ_P A5 MD -36.87445269648865\n", + "logZ_P A5 MS -37.07708975348818\n", + "DDG A5: -1.399903606334113\n", + "DDG loss: 1.0580654800039435\n", + "loss: 1.4057936200212013\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-38.65682868, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-37.19629101, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(5.32674011, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-37.69567291, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-37.03753769, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(2.72239693, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-38.25309774, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-36.9020558, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(6.9263603, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-37.03655752, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-37.07268072, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.44175856, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-36.8744527, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-37.07708975, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.39990361, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(1.05806548, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ -6.77018077 -3.28378618 5.83836072 -3.81958167 -13.71601939\n", + " 0.24417021] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -41.578165579162174\n", + "logZ_P A1 MS -40.07915634892168\n", + "DDG A1: 5.421995699831123\n", + "logZ_P A2 MD -40.55357684580095\n", + "logZ_P A2 MS -39.90159215973722\n", + "DDG A2: 2.707168211577301\n", + "logZ_P A3 MD -41.10061375168953\n", + "logZ_P A3 MS -39.80101511207231\n", + "DDG A3: 6.798986682497214\n", + "logZ_P A4 MD -39.924161673754924\n", + "logZ_P A4 MS -39.943129135406615\n", + "DDG A4: -2.3992809697878807\n", + "logZ_P A5 MD -39.72832777553452\n", + "logZ_P A5 MS -39.95034547869921\n", + "DDG A5: -1.4478900862389799\n", + "DDG loss: 0.974796053252175\n", + "loss: 1.3308602069208777\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-41.57816558, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-40.07915635, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(5.4219957, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-40.55357685, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-39.90159216, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(2.70716821, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-41.10061375, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-39.80101511, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(6.79898668, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-39.92416167, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-39.94312914, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.39928097, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-39.72832778, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-39.95034548, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.44789009, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(0.97479605, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [-5.96381787 -4.71390851 -0.16936231 -1.95958978 -9.76337829 0.3379256 ] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -47.956396011006476\n", + "logZ_P A1 MS -46.37687962141065\n", + "DDG A1: 5.621331426394862\n", + "logZ_P A2 MD -46.81925540912267\n", + "logZ_P A2 MS -46.15463315955626\n", + "DDG A2: 2.738458818809969\n", + "logZ_P A3 MD -47.40006176204383\n", + "logZ_P A3 MS -46.100959437913744\n", + "DDG A3: 6.797757805351053\n", + "logZ_P A4 MD -46.23250416763296\n", + "logZ_P A4 MS -46.22025374954674\n", + "DDG A4: -2.3219854995568183\n", + "logZ_P A5 MD -45.924730545417546\n", + "logZ_P A5 MS -46.212059780724694\n", + "DDG A5: -1.6096014398237795\n", + "DDG loss: 0.8350995787198048\n", + "loss: 1.2198452160281548\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-47.95639601, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-46.37687962, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(5.62133143, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-46.81925541, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-46.15463316, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(2.73845882, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-47.40006176, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-46.10095944, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(6.79775781, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-46.23250417, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-46.22025375, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.3219855, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-45.92473055, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-46.21205978, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.60960144, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(0.83509958, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [-2.23369066 -2.56654417 1.60716573 -0.88559981 -0.64266379 -0.11352568] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -52.20281047028925\n", + "logZ_P A1 MS -50.51976263089788\n", + "DDG A1: 5.877675296088654\n", + "logZ_P A2 MD -50.9315168159875\n", + "logZ_P A2 MS -50.23692445046948\n", + "DDG A2: 2.8126648259061637\n", + "logZ_P A3 MD -51.56263910766591\n", + "logZ_P A3 MS -50.26471844236433\n", + "DDG A3: 6.794832018091687\n", + "logZ_P A4 MD -50.37984943126977\n", + "logZ_P A4 MS -50.35721383912965\n", + "DDG A4: -2.2962718085993408\n", + "logZ_P A5 MD -50.02446442409999\n", + "logZ_P A5 MS -50.33671311475933\n", + "DDG A5: -1.6713020112757675\n", + "DDG loss: 0.7759187090263959\n", + "loss: 1.1757883086937266\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-52.20281047, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-50.51976263, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(5.8776753, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-50.93151682, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-50.23692445, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(2.81266483, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-51.56263911, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-50.26471844, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(6.79483202, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-50.37984943, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-50.35721384, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.29627181, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-50.02446442, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-50.33671311, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.67130201, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(0.77591871, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 3.34465513 -0.8937306 5.03008655 2.80484756 18.14939336 -0.75939631] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -59.33254261319575\n", + "logZ_P A1 MS -57.66064995896181\n", + "DDG A1: 5.850055057638845\n", + "logZ_P A2 MD -58.02117559677847\n", + "logZ_P A2 MS -57.355786807556896\n", + "DDG A2: 2.740356770996146\n", + "logZ_P A3 MD -58.704381513028736\n", + "logZ_P A3 MS -57.39069903244162\n", + "DDG A3: 6.833858272738622\n", + "logZ_P A4 MD -57.54654934681055\n", + "logZ_P A4 MS -57.494726125492775\n", + "DDG A4: -2.2240032387554294\n", + "logZ_P A5 MD -57.05731957248642\n", + "logZ_P A5 MS -57.45543844523286\n", + "DDG A5: -1.8839165821234072\n", + "DDG loss: 0.732811801250514\n", + "loss: 1.1583133583543306\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-59.33254261, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-57.66064996, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(5.85005506, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-58.0211756, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-57.35578681, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(2.74035677, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-58.70438151, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-57.39069903, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(6.83385827, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-57.54654935, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-57.49472613, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.22400324, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-57.05731957, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-57.45543845, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.88391658, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(0.7328118, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 2.34262815 2.91635294 5.33478424 -0.23937579 7.98310292 -0.63904708] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -65.31179230680063\n", + "logZ_P A1 MS -63.63155749648813\n", + "DDG A1: 5.870710236089348\n", + "logZ_P A2 MD -63.920641456937105\n", + "logZ_P A2 MS -63.28590589747715\n", + "DDG A2: 2.6644593741063956\n", + "logZ_P A3 MD -64.67499236156269\n", + "logZ_P A3 MS -63.3829492144487\n", + "DDG A3: 6.780279283059217\n", + "logZ_P A4 MD -63.53485250356021\n", + "logZ_P A4 MS -63.48158373609847\n", + "DDG A4: -2.220424066502961\n", + "logZ_P A5 MD -63.01073101187548\n", + "logZ_P A5 MS -63.44364013194903\n", + "DDG A5: -1.9700572345052942\n", + "DDG loss: 0.6838932675203399\n", + "loss: 1.1193982749718445\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-65.31179231, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-63.6315575, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(5.87071024, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-63.92064146, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-63.2859059, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(2.66445937, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-64.67499236, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-63.38294921, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(6.78027928, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-63.5348525, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-63.48158374, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.22042407, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-63.01073101, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-63.44364013, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.97005723, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(0.68389327, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 1.51817613 3.06432484 2.17313513 -0.94295508 1.63252511 -0.42462054] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -86.10208364281218\n", + "logZ_P A1 MS -84.42793884990043\n", + "DDG A1: 5.855631353005123\n", + "logZ_P A2 MD -84.33430127897502\n", + "logZ_P A2 MS -83.93366343080514\n", + "DDG A2: 2.0848334409521674\n", + "logZ_P A3 MD -85.45795812132333\n", + "logZ_P A3 MS -84.29168383975254\n", + "DDG A3: 6.46887557197427\n", + "logZ_P A4 MD -84.34414115593083\n", + "logZ_P A4 MS -84.33015133169486\n", + "DDG A4: -2.3176787299300656\n", + "logZ_P A5 MD -83.8805259258556\n", + "logZ_P A5 MS -84.41142410361468\n", + "DDG A5: -2.212678141334687\n", + "DDG loss: 0.5199791187401251\n", + "loss: 1.01331400504266\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-86.10208364, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-84.42793885, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(5.85563135, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-84.33430128, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-83.93366343, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(2.08483344, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-85.45795812, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-84.29168384, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(6.46887557, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-84.34414116, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-84.33015133, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.31767873, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-83.88052593, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-84.4114241, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-2.21267814, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(0.51997912, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [-10.2644308 -5.90861834 -18.29282469 -10.19232568 -53.62043029\n", + " 1.36333347] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -87.23520436973747\n", + "logZ_P A1 MS -85.47557228361727\n", + "DDG A1: 6.067297890989232\n", + "logZ_P A2 MD -85.30271842170853\n", + "logZ_P A2 MS -84.88576746109024\n", + "DDG A2: 2.1252247073744437\n", + "logZ_P A3 MD -86.52171081078836\n", + "logZ_P A3 MS -85.36145184207477\n", + "DDG A3: 6.4539816573398054\n", + "logZ_P A4 MD -85.3464436873057\n", + "logZ_P A4 MS -85.38550481735653\n", + "DDG A4: -2.4490328927441554\n", + "logZ_P A5 MD -85.01305805242451\n", + "logZ_P A5 MS -85.50067386367729\n", + "DDG A5: -2.1055110018651484\n", + "DDG loss: 0.40967142050443495\n", + "loss: 0.8999035792474321\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-87.23520437, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-85.47557228, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(6.06729789, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-85.30271842, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-84.88576746, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(2.12522471, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-86.52171081, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-85.36145184, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(6.45398166, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-85.34644369, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-85.38550482, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.44903289, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-85.01305805, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-85.50067386, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-2.105511, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(0.40967142, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ -5.15725178 -9.31825102 -16.31468662 -2.29976597 -25.10893107\n", + " 0.89407714] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -90.9528497522354\n", + "logZ_P A1 MS -89.12050945492471\n", + "DDG A1: 6.2473234218969145\n", + "logZ_P A2 MD -88.83407991518175\n", + "logZ_P A2 MS -88.42810464842769\n", + "DDG A2: 2.098048889366623\n", + "logZ_P A3 MD -90.20685183262488\n", + "logZ_P A3 MS -88.96173193543648\n", + "DDG A3: 6.664097316243472\n", + "logZ_P A4 MD -88.90519948443531\n", + "logZ_P A4 MS -89.04463702106952\n", + "DDG A4: -2.697564875444567\n", + "logZ_P A5 MD -88.65254496745129\n", + "logZ_P A5 MS -89.11641659645854\n", + "DDG A5: -2.0467204066252\n", + "DDG loss: 0.2552379051462834\n", + "loss: 0.7604918376829214\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-90.95284975, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-89.12050945, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(6.24732342, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-88.83407992, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-88.42810465, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(2.09804889, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-90.20685183, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-88.96173194, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(6.66409732, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-88.90519948, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-89.04463702, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.69756488, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-88.65254497, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-89.1164166, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-2.04672041, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(0.25523791, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 0.50260102 -6.61579911 -6.08985006 3.06495032 4.36579112 0.17636342] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -74.20779094488645\n", + "logZ_P A1 MS -72.29722918890168\n", + "DDG A1: 6.440999753573935\n", + "logZ_P A2 MD -72.78084961563839\n", + "logZ_P A2 MS -71.9735801419383\n", + "DDG A2: 3.0916533457650024\n", + "logZ_P A3 MD -73.62856440365967\n", + "logZ_P A3 MS -72.06824718220807\n", + "DDG A3: 7.444525891119179\n", + "logZ_P A4 MD -72.24084608149629\n", + "logZ_P A4 MS -72.24828559683607\n", + "DDG A4: -2.3707377747195437\n", + "logZ_P A5 MD -71.74684072701102\n", + "logZ_P A5 MS -72.16301188971737\n", + "DDG A5: -1.9286140520641473\n", + "DDG loss: 1.0721255813119723\n", + "loss: 1.5072704232825966\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-74.20779094, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-72.29722919, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(6.44099975, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-72.78084962, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-71.97358014, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(3.09165335, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-73.6285644, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-72.06824718, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(7.44452589, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-72.24084608, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-72.2482856, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.37073777, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-71.74684073, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-72.16301189, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.92861405, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(1.07212558, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 27.33260013 33.49385499 42.22007646 15.70562362 100.53381211\n", + " -3.70293304] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -89.50203596669249\n", + "logZ_P A1 MS -87.665318340725\n", + "DDG A1: 6.258161687651155\n", + "logZ_P A2 MD -87.4588177249632\n", + "logZ_P A2 MS -87.0096035950206\n", + "DDG A2: 2.2051083146214694\n", + "logZ_P A3 MD -88.77065665332974\n", + "logZ_P A3 MS -87.49433796869987\n", + "DDG A3: 6.7413455139484775\n", + "logZ_P A4 MD -87.4814298670625\n", + "logZ_P A4 MS -87.5871450939982\n", + "DDG A4: -2.6140684366310705\n", + "logZ_P A5 MD -87.17625651064307\n", + "logZ_P A5 MS -87.63229404892537\n", + "DDG A5: -2.027323197990245\n", + "DDG loss: 0.2528349892114201\n", + "loss: 0.7478946347662465\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-89.50203597, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-87.66531834, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(6.25816169, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-87.45881772, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-87.0096036, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(2.20510831, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-88.77065665, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-87.49433797, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(6.74134551, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-87.48142987, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-87.58714509, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.61406844, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-87.17625651, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-87.63229405, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-2.0273232, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(0.25283499, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 3.36812714 -1.86569865 -2.00997588 4.80329102 13.74660605 -0.20861496] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -90.78087562532471\n", + "logZ_P A1 MS -88.95667376609374\n", + "DDG A1: 6.227172649211513\n", + "logZ_P A2 MD -88.74193811201908\n", + "logZ_P A2 MS -88.30761696243482\n", + "DDG A2: 2.1682332952541845\n", + "logZ_P A3 MD -90.07229060928474\n", + "logZ_P A3 MS -88.77184712282077\n", + "DDG A3: 6.801078523289757\n", + "logZ_P A4 MD -88.76547416075579\n", + "logZ_P A4 MS -88.88147329857502\n", + "DDG A4: -2.6395313999787255\n", + "logZ_P A5 MD -88.4475572089119\n", + "logZ_P A5 MS -88.91250423942088\n", + "DDG A5: -2.0493831007435004\n", + "DDG loss: 0.22771892685562994\n", + "loss: 0.7268231761514792\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-90.78087563, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-88.95667377, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(6.22717265, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-88.74193811, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-88.30761696, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(2.1682333, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-90.07229061, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-88.77184712, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(6.80107852, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-88.76547416, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-88.8814733, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.6395314, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-88.44755721, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-88.91250424, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-2.0493831, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(0.22771893, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 2.39320234 -0.9519359 -0.0563915 2.98043789 9.15103092 -0.19275052] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -94.0801172508939\n", + "logZ_P A1 MS -92.27858928147045\n", + "DDG A1: 6.171032098048161\n", + "logZ_P A2 MD -92.04675072335584\n", + "logZ_P A2 MS -91.65197545726086\n", + "DDG A2: 2.0703176877347573\n", + "logZ_P A3 MD -93.40470372522974\n", + "logZ_P A3 MS -92.06925642786472\n", + "DDG A3: 6.887747959080711\n", + "logZ_P A4 MD -92.07508323831209\n", + "logZ_P A4 MS -92.20822800092093\n", + "DDG A4: -2.68198396695779\n", + "logZ_P A5 MD -91.71569475229867\n", + "logZ_P A5 MS -92.20164160831118\n", + "DDG A5: -2.101378668690188\n", + "DDG loss: 0.1965209191833408\n", + "loss: 0.7056849048496938\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-94.08011725, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-92.27858928, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(6.1710321, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-92.04675072, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-91.65197546, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(2.07031769, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-93.40470373, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-92.06925643, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(6.88774796, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-92.07508324, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-92.208228, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.68198397, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-91.71569475, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-92.20164161, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-2.10137867, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(0.19652092, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [-0.26593667 0.12936199 1.95080235 -1.38446735 -3.82522757 -0.06013712] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -94.96888712698458\n", + "logZ_P A1 MS -93.16136829603616\n", + "DDG A1: 6.1858654711839725\n", + "logZ_P A2 MD -92.94683369920874\n", + "logZ_P A2 MS -92.54906698020658\n", + "DDG A2: 2.077724525132904\n", + "logZ_P A3 MD -94.2870890816903\n", + "logZ_P A3 MS -92.94765565027951\n", + "DDG A3: 6.897617626978084\n", + "logZ_P A4 MD -92.95724354178624\n", + "logZ_P A4 MS -93.09287114959761\n", + "DDG A4: -2.688131491679199\n", + "logZ_P A5 MD -92.5803775954784\n", + "logZ_P A5 MS -93.06212253574454\n", + "DDG A5: -2.0909747253021904\n", + "DDG loss: 0.1924579132257401\n", + "loss: 0.7011082312135568\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-94.96888713, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-93.1613683, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(6.18586547, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-92.9468337, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-92.54906698, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(2.07772453, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-94.28708908, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-92.94765565, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(6.89761763, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-92.95724354, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-93.09287115, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.68813149, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-92.5803776, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-93.06212254, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-2.09097473, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(0.19245791, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 0.40246887 0.81235341 2.30964818 -0.65837908 -0.63746692 -0.12351298] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -96.88503899757856\n", + "logZ_P A1 MS -95.0788956580526\n", + "DDG A1: 6.1824597544218785\n", + "logZ_P A2 MD -94.8943864342515\n", + "logZ_P A2 MS -94.49674889847874\n", + "DDG A2: 2.0774046674568987\n", + "logZ_P A3 MD -96.1957128897425\n", + "logZ_P A3 MS -94.86530386436009\n", + "DDG A3: 6.875273197651831\n", + "logZ_P A4 MD -94.87642309146972\n", + "logZ_P A4 MS -95.01272908474412\n", + "DDG A4: -2.6898111740857384\n", + "logZ_P A5 MD -94.46914131917663\n", + "logZ_P A5 MS -94.94176198677393\n", + "DDG A5: -2.0683830261741023\n", + "DDG loss: 0.1892432319117231\n", + "loss: 0.6956569732501561\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-96.885039, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-95.07889566, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(6.18245975, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-94.89438643, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-94.4967489, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(2.07740467, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-96.19571289, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-94.86530386, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(6.8752732, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-94.87642309, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-95.01272908, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.68981117, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-94.46914132, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-94.94176199, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-2.06838303, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(0.18924323, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 0.41128836 0.74897634 0.82318911 -0.04073006 0.55057392 -0.07198929] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -98.07196046956673\n", + "logZ_P A1 MS -96.2671916212796\n", + "DDG A1: 6.179056514114595\n", + "logZ_P A2 MD -96.0862996127453\n", + "logZ_P A2 MS -95.69126944786409\n", + "DDG A2: 2.070948817129413\n", + "logZ_P A3 MD -97.37981311160848\n", + "logZ_P A3 MS -96.0548599138072\n", + "DDG A3: 6.861764568560882\n", + "logZ_P A4 MD -96.05723458534051\n", + "logZ_P A4 MS -96.20282511596388\n", + "DDG A4: -2.7127996885617307\n", + "logZ_P A5 MD -95.64924187393643\n", + "logZ_P A5 MS -96.11391648081931\n", + "DDG A5: -2.048708579845241\n", + "DDG loss: 0.18793392680523052\n", + "loss: 0.6944990342361386\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-98.07196047, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-96.26719162, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(6.17905651, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-96.08629961, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-95.69126945, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(2.07094882, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-97.37981311, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-96.05485991, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(6.86176457, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-96.05723459, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-96.20282512, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.71279969, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-95.64924187, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-96.11391648, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-2.04870858, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(0.18793393, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 0.2970889 0.01350543 0.04060556 0.29223981 1.12725591 -0.02590096] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -98.755859099638\n", + "logZ_P A1 MS -96.9574213138808\n", + "DDG A1: 6.163380803290468\n", + "logZ_P A2 MD -96.78331479566965\n", + "logZ_P A2 MS -96.38899877243794\n", + "DDG A2: 2.069180602405261\n", + "logZ_P A3 MD -98.06952842608258\n", + "logZ_P A3 MS -96.74549493984513\n", + "DDG A3: 6.859487362728923\n", + "logZ_P A4 MD -96.74789471405339\n", + "logZ_P A4 MS -96.89338247214037\n", + "DDG A4: -2.712545223761689\n", + "logZ_P A5 MD -96.33143897118917\n", + "logZ_P A5 MS -96.7942685489172\n", + "DDG A5: -2.0441402876578314\n", + "DDG loss: 0.18820673026103957\n", + "loss: 0.6942424615211624\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-98.7558591, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-96.95742131, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(6.1633808, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-96.7833148, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-96.38899877, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(2.0691806, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-98.06952843, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-96.74549494, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(6.85948736, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-96.74789471, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-96.89338247, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.71254522, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-96.33143897, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-96.79426855, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-2.04414029, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(0.18820673, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [-0.05054518 -0.05969709 -0.29547444 0.00223795 -0.2618177 0.0129675 ] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -99.08014955410985\n", + "logZ_P A1 MS -97.28280642677143\n", + "DDG A1: 6.160670429045606\n", + "logZ_P A2 MD -97.10993519071505\n", + "logZ_P A2 MS -96.71518224647261\n", + "DDG A2: 2.0702624188278316\n", + "logZ_P A3 MD -98.39610355052669\n", + "logZ_P A3 MS -97.07037223236426\n", + "DDG A3: 6.863691194575117\n", + "logZ_P A4 MD -97.07127302964135\n", + "logZ_P A4 MS -97.21916170270582\n", + "DDG A4: -2.7184898892459786\n", + "logZ_P A5 MD -96.65397184806825\n", + "logZ_P A5 MS -97.11520006471297\n", + "DDG A5: -2.0401753176155384\n", + "DDG loss: 0.18790295903872978\n", + "loss: 0.6941819490348112\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-99.08014955, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-97.28280643, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(6.16067043, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-97.10993519, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-96.71518225, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(2.07026242, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-98.39610355, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-97.07037223, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(6.86369119, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-97.07127303, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-97.2191617, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.71848989, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-96.65397185, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-97.11520006, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-2.04017532, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(0.18790296, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [-0.00811923 -0.04516521 -0.14339908 0.04638662 0.00236276 0.00784706] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -99.23924839305366\n", + "logZ_P A1 MS -97.44266143469271\n", + "DDG A1: 6.158798154657343\n", + "logZ_P A2 MD -97.26996639955784\n", + "logZ_P A2 MS -96.87547523192278\n", + "DDG A2: 2.0696142599479734\n", + "logZ_P A3 MD -98.55661418932137\n", + "logZ_P A3 MS -97.22984921995881\n", + "DDG A3: 6.866250514946679\n", + "logZ_P A4 MD -97.23053150681433\n", + "logZ_P A4 MS -97.37909544563611\n", + "DDG A4: -2.7201618472609344\n", + "logZ_P A5 MD -96.81181673915806\n", + "logZ_P A5 MS -97.27296752162643\n", + "DDG A5: -2.039983590594973\n", + "DDG loss: 0.18762578245547468\n", + "loss: 0.6941733251777367\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-99.23924839, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-97.44266143, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(6.15879815, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-97.2699664, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-96.87547523, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(2.06961426, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-98.55661419, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-97.22984922, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(6.86625051, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-97.23053151, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-97.37909545, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.72016185, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-96.81181674, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-97.27296752, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-2.03998359, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(0.18762578, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [-0.03576288 -0.01485999 -0.06564918 -0.01865074 -0.16783256 0.00774523] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -99.29846158938054\n", + "logZ_P A1 MS -97.50188819663626\n", + "DDG A1: 6.158764566190506\n", + "logZ_P A2 MD -97.3295284365355\n", + "logZ_P A2 MS -96.9349532212616\n", + "DDG A2: 2.069822361901732\n", + "logZ_P A3 MD -98.61605496022365\n", + "logZ_P A3 MS -97.28900919509533\n", + "DDG A3: 6.866945765262598\n", + "logZ_P A4 MD -97.28972202970414\n", + "logZ_P A4 MS -97.4383391431018\n", + "DDG A4: -2.7202935075109242\n", + "logZ_P A5 MD -96.87015486779144\n", + "logZ_P A5 MS -97.3312417928384\n", + "DDG A5: -2.0398254796194575\n", + "DDG loss: 0.18752044475251384\n", + "loss: 0.6941718626218667\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-99.29846159, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-97.5018882, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(6.15876457, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-97.32952844, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-96.93495322, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(2.06982236, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-98.61605496, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-97.2890092, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(6.86694577, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-97.28972203, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-97.43833914, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.72029351, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-96.87015487, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-97.33124179, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-2.03982548, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(0.18752044, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [-0.02213271 0.01296649 -0.04474171 -0.01222634 -0.1265769 0.00602412] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -99.36658886535531\n", + "logZ_P A1 MS -97.56992568107694\n", + "DDG A1: 6.158986890028853\n", + "logZ_P A2 MD -97.39759211864401\n", + "logZ_P A2 MS -97.00317178453452\n", + "DDG A2: 2.0694388761386637\n", + "logZ_P A3 MD -98.68420484413011\n", + "logZ_P A3 MS -97.35701426232376\n", + "DDG A3: 6.867304331357507\n", + "logZ_P A4 MD -97.35766043894179\n", + "logZ_P A4 MS -97.50638093051575\n", + "DDG A4: -2.7205494718753864\n", + "logZ_P A5 MD -96.93719476002198\n", + "logZ_P A5 MS -97.39830670730781\n", + "DDG A5: -2.039887434682907\n", + "DDG loss: 0.1873412961955749\n", + "loss: 0.694170503560666\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-99.36658887, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-97.56992568, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(6.15898689, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-97.39759212, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-97.00317178, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(2.06943888, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-98.68420484, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-97.35701426, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(6.86730433, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-97.35766044, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-97.50638093, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.72054947, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-96.93719476, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-97.39830671, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-2.03988743, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(0.1873413, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [-0.01981727 0.02528217 -0.04333959 -0.01796555 -0.13921101 0.00562949] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -99.42026725784031\n", + "logZ_P A1 MS -97.62341919227852\n", + "DDG A1: 6.159444656086593\n", + "logZ_P A2 MD -97.45114632500197\n", + "logZ_P A2 MS -97.0568335275472\n", + "DDG A2: 2.0691726153815666\n", + "logZ_P A3 MD -98.73774576441849\n", + "logZ_P A3 MS -97.41055929463766\n", + "DDG A3: 6.867294149982244\n", + "logZ_P A4 MD -97.41108923915753\n", + "logZ_P A4 MS -97.55987541212266\n", + "DDG A4: -2.720712098999977\n", + "logZ_P A5 MD -96.98996519665502\n", + "logZ_P A5 MS -97.45106462322705\n", + "DDG A5: -2.039856433395549\n", + "DDG loss: 0.18720623162404376\n", + "loss: 0.6941692616611037\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-99.42026726, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-97.62341919, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(6.15944466, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-97.45114633, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-97.05683353, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(2.06917262, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-98.73774576, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-97.41055929, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(6.86729415, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-97.41108924, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-97.55987541, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.7207121, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-96.9899652, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-97.45106462, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-2.03985643, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(0.18720623, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [-0.01242404 0.03096447 -0.05426502 -0.01144017 -0.11818851 0.00526978] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -99.47998061450872\n", + "logZ_P A1 MS -97.68294439033129\n", + "DDG A1: 6.15991053681896\n", + "logZ_P A2 MD -97.51076505173177\n", + "logZ_P A2 MS -97.11659270384521\n", + "DDG A2: 2.068824862250722\n", + "logZ_P A3 MD -98.79734074602658\n", + "logZ_P A3 MS -97.47021110571345\n", + "DDG A3: 6.867153440220301\n", + "logZ_P A4 MD -97.47050744501541\n", + "logZ_P A4 MS -97.61940052427026\n", + "DDG A4: -2.720976798973243\n", + "logZ_P A5 MD -97.04883471689215\n", + "logZ_P A5 MS -97.50990929483011\n", + "DDG A5: -2.0397949081776634\n", + "DDG loss: 0.1870828412088923\n", + "loss: 0.6941673886329105\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-99.47998061, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-97.68294439, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(6.15991054, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-97.51076505, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-97.1165927, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(2.06882486, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-98.79734075, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-97.47021111, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(6.86715344, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-97.47050745, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-97.61940052, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.7209768, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-97.04883472, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-97.50990929, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-2.03979491, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(0.18708284, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [-0.00726909 0.03046047 -0.07282927 -0.00526749 -0.10393256 0.00531243] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -99.55717780040169\n", + "logZ_P A1 MS -97.75998779348532\n", + "DDG A1: 6.160291302880526\n", + "logZ_P A2 MD -97.5880795706247\n", + "logZ_P A2 MS -97.19403557917306\n", + "DDG A2: 2.0685070517178756\n", + "logZ_P A3 MD -98.87456444012803\n", + "logZ_P A3 MS -97.54748512547135\n", + "DDG A3: 6.867028833894871\n", + "logZ_P A4 MD -97.54737841841677\n", + "logZ_P A4 MS -97.69644707282106\n", + "DDG A4: -2.721411523043295\n", + "logZ_P A5 MD -97.12522456207009\n", + "logZ_P A5 MS -97.58623057818738\n", + "DDG A5: -2.039625149109652\n", + "DDG loss: 0.18697991794855534\n", + "loss: 0.6941640803287743\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-99.5571778, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-97.75998779, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(6.1602913, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-97.58807957, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-97.19403558, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(2.06850705, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-98.87456444, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-97.54748513, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(6.86702883, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-97.54737842, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-97.69644707, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.72141152, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-97.12522456, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-97.58623058, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-2.03962515, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(0.18697992, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [-0.00170718 0.02826249 -0.09448902 0.00259648 -0.08615306 0.00543114] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -99.67535440652412\n", + "logZ_P A1 MS -97.87807169992594\n", + "DDG A1: 6.160520827292736\n", + "logZ_P A2 MD -97.70674084936705\n", + "logZ_P A2 MS -97.31282944231826\n", + "DDG A2: 2.0681787727363523\n", + "logZ_P A3 MD -98.99304370691858\n", + "logZ_P A3 MS -97.66597172663167\n", + "DDG A3: 6.8670106739953924\n", + "logZ_P A4 MD -97.66515882366812\n", + "logZ_P A4 MS -97.81454066405256\n", + "DDG A4: -2.7221869715301747\n", + "logZ_P A5 MD -97.24250634297447\n", + "logZ_P A5 MS -97.70337147169597\n", + "DDG A5: -2.0392763119177535\n", + "DDG loss: 0.18688477024554703\n", + "loss: 0.6941579605898531\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-99.67535441, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-97.8780717, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(6.16052083, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-97.70674085, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-97.31282944, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(2.06817877, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-98.99304371, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-97.66597173, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(6.86701067, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-97.66515882, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-97.81454066, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.72218697, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-97.24250634, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-97.70337147, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-2.03927631, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(0.18688477, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 0.0042143 0.02500291 -0.12051287 0.01142785 -0.06774957 0.00565609] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -99.88021101809771\n", + "logZ_P A1 MS -98.08294469342714\n", + "DDG A1: 6.160480265640013\n", + "logZ_P A2 MD -97.91277263377609\n", + "logZ_P A2 MS -97.51901472991905\n", + "DDG A2: 2.067798698833534\n", + "logZ_P A3 MD -99.19873333073758\n", + "logZ_P A3 MS -97.87157945877945\n", + "DDG A3: 6.867213437773321\n", + "logZ_P A4 MD -97.86947199671974\n", + "logZ_P A4 MS -98.01943662517084\n", + "DDG A4: -2.723629954783204\n", + "logZ_P A5 MD -97.44617998760363\n", + "logZ_P A5 MS -97.90675503616947\n", + "DDG A5: -2.0385580734522217\n", + "DDG loss: 0.18678157423442754\n", + "loss: 0.6941462565779829\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-99.88021102, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-98.08294469, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(6.16048027, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-97.91277263, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-97.51901473, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(2.0677987, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-99.19873333, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-97.87157946, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(6.86721344, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-97.869472, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-98.01943663, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.72362995, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-97.44617999, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-97.90675504, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-2.03855807, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(0.18678157, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 0.01148473 0.02057203 -0.15611684 0.02258106 -0.04726905 0.00607436] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -100.70373539687772\n", + "logZ_P A1 MS -98.90662550684888\n", + "DDG A1: 6.160092933467104\n", + "logZ_P A2 MD -98.74077662941203\n", + "logZ_P A2 MS -98.34770285021237\n", + "DDG A2: 2.0661048061818894\n", + "logZ_P A3 MD -100.02576805955708\n", + "logZ_P A3 MS -98.69833316692305\n", + "DDG A3: 6.867909244966812\n", + "logZ_P A4 MD -98.69099206089977\n", + "logZ_P A4 MS -98.84318407918295\n", + "DDG A4: -2.729144972007379\n", + "logZ_P A5 MD -98.26519802861115\n", + "logZ_P A5 MS -98.72459373251402\n", + "DDG A5: -2.0356380160667724\n", + "DDG loss: 0.18631656548634767\n", + "loss: 0.6941035645011179\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-100.7037354, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-98.90662551, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(6.16009293, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-98.74077663, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-98.34770285, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(2.06610481, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-100.02576806, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-98.69833317, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(6.86790924, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-98.69099206, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-98.84318408, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.72914497, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-98.26519803, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-98.72459373, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-2.03563802, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(0.18631657, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 0.03308862 -0.0056642 -0.31245881 0.05891789 -0.01229106 0.00875973] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -104.06331639573858\n", + "logZ_P A1 MS -102.26822248637393\n", + "DDG A1: 6.155101365342482\n", + "logZ_P A2 MD -102.11428286130749\n", + "logZ_P A2 MS -101.72569203434088\n", + "DDG A2: 2.055005016452864\n", + "logZ_P A3 MD -103.40197139100042\n", + "logZ_P A3 MS -102.07434929573968\n", + "DDG A3: 6.868372758670534\n", + "logZ_P A4 MD -102.04520545296927\n", + "logZ_P A4 MS -102.20467563092541\n", + "DDG A4: -2.747165695357673\n", + "logZ_P A5 MD -101.61053775392348\n", + "logZ_P A5 MS -102.06491079435699\n", + "DDG A5: -2.023201901316633\n", + "DDG loss: 0.1831128524672691\n", + "loss: 0.6935019402265835\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-104.0633164, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-102.26822249, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(6.15510137, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-102.11428286, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-101.72569203, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(2.05500502, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-103.40197139, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-102.0743493, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(6.86837276, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-102.04520545, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-102.20467563, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.7471657, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-101.61053775, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-102.06491079, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-2.0232019, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(0.18311285, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [-0.05045254 -0.2770936 -1.19157296 0.01780723 -0.80745535 0.03937804] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -118.54869076125738\n", + "logZ_P A1 MS -116.77496684380522\n", + "DDG A1: 6.102189265367183\n", + "logZ_P A2 MD -116.57628775943306\n", + "logZ_P A2 MS -116.25378086096215\n", + "DDG A2: 1.8913812094975444\n", + "logZ_P A3 MD -117.96889997003149\n", + "logZ_P A3 MS -116.6703285803261\n", + "DDG A3: 6.796443211715455\n", + "logZ_P A4 MD -116.53925652771319\n", + "logZ_P A4 MS -116.71050430338215\n", + "DDG A4: -2.7763270272945846\n", + "logZ_P A5 MD -116.10561565520331\n", + "logZ_P A5 MS -116.53433137802436\n", + "DDG A5: -1.9596743829081216\n", + "DDG loss: 0.15584499447526062\n", + "loss: 0.6906773632659204\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-118.54869076, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-116.77496684, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(6.10218927, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-116.57628776, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-116.25378086, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.89138121, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-117.96889997, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-116.67032858, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(6.79644321, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-116.53925653, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-116.7105043, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.77632703, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-116.10561566, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-116.53433138, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.95967438, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(0.15584499, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ -5.92109483 -5.72543217 -9.38138254 -6.43752008 -28.23506098\n", + " 0.60744914] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -105.90875137547165\n", + "logZ_P A1 MS -104.11557431363146\n", + "DDG A1: 6.15035525087193\n", + "logZ_P A2 MD -103.96420059966577\n", + "logZ_P A2 MS -103.57963926387337\n", + "DDG A2: 2.045027996305525\n", + "logZ_P A3 MD -105.2577383601654\n", + "logZ_P A3 MS -103.9308192935652\n", + "DDG A3: 6.866632059707077\n", + "logZ_P A4 MD -103.88941332984992\n", + "logZ_P A4 MS -104.05177049987094\n", + "DDG A4: -2.754313887710299\n", + "logZ_P A5 MD -103.45096154569517\n", + "logZ_P A5 MS -103.90243322768667\n", + "DDG A5: -2.016018137814199\n", + "DDG loss: 0.1802207408213251\n", + "loss: 0.69261177244451\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-105.90875138, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-104.11557431, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(6.15035525, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-103.9642006, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-103.57963926, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(2.045028, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-105.25773836, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-103.93081929, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(6.86663206, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-103.88941333, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-104.0517705, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.75431389, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-103.45096155, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-103.90243323, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-2.01601814, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(0.18022074, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [-0.25292089 -0.55949626 -1.84984102 -0.17790077 -2.01045171 0.07173343] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -114.23226849038355\n", + "logZ_P A1 MS -112.45175242944278\n", + "DDG A1: 6.1190066126449825\n", + "logZ_P A2 MD -112.27977345662877\n", + "logZ_P A2 MS -111.93000676821242\n", + "DDG A2: 1.9588764494024002\n", + "logZ_P A3 MD -113.63061118829438\n", + "logZ_P A3 MS -112.31688754953211\n", + "DDG A3: 6.833960180380296\n", + "logZ_P A4 MD -112.21766034936046\n", + "logZ_P A4 MS -112.38666460774635\n", + "DDG A4: -2.770772078501792\n", + "logZ_P A5 MD -111.77526433523583\n", + "logZ_P A5 MS -112.21233776171873\n", + "DDG A5: -1.9803680571748112\n", + "DDG loss: 0.16123828696244016\n", + "loss: 0.6869650270735171\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-114.23226849, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-112.45175243, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(6.11900661, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-112.27977346, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-111.93000677, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.95887645, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-113.63061119, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-112.31688755, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(6.83396018, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-112.21766035, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-112.38666461, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.77077208, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-111.77526434, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-112.21233776, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.98036806, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(0.16123829, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ -3.09110396 -3.29236024 -6.27452996 -3.24760848 -15.68244676\n", + " 0.36741436] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -114.54131757641534\n", + "logZ_P A1 MS -112.76131494537302\n", + "DDG A1: 6.117735360216462\n", + "logZ_P A2 MD -112.58770800666133\n", + "logZ_P A2 MS -112.23972409726049\n", + "DDG A2: 1.9544622885600584\n", + "logZ_P A3 MD -113.94138368038922\n", + "logZ_P A3 MS -112.62853369774928\n", + "DDG A3: 6.831797007821459\n", + "logZ_P A4 MD -112.52707277484271\n", + "logZ_P A4 MS -112.69622300373075\n", + "DDG A4: -2.7711335014650706\n", + "logZ_P A5 MD -112.08502799575281\n", + "logZ_P A5 MS -112.52152365531136\n", + "DDG A5: -1.9789375062701875\n", + "DDG loss: 0.16061190412455406\n", + "loss: 0.6869488368702237\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-114.54131758, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-112.76131495, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(6.11773536, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-112.58770801, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-112.2397241, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.95446229, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-113.94138368, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-112.6285337, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(6.83179701, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-112.52707277, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-112.696223, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.7711335, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-112.085028, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-112.52152366, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.97893751, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(0.1606119, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ -3.26347199 -3.4433901 -6.47974428 -3.43955905 -16.46177677\n", + " 0.38287646] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -692.6401547640039\n", + "logZ_P A1 MS -686.9733569942197\n", + "DDG A1: 15.741440123741377\n", + "logZ_P A2 MD -692.9700521671949\n", + "logZ_P A2 MS -690.8875574804507\n", + "DDG A2: 6.249110973262358\n", + "logZ_P A3 MD -694.3400210084837\n", + "logZ_P A3 MS -684.7350562102035\n", + "DDG A3: 27.36307329134678\n", + "logZ_P A4 MD -689.1181474164647\n", + "logZ_P A4 MS -690.3068188168828\n", + "DDG A4: -5.295467922173601\n", + "logZ_P A5 MD -689.4174246956227\n", + "logZ_P A5 MS -689.2135735089208\n", + "DDG A5: -0.393438714929438\n", + "DDG loss: 264.97454238164374\n", + "loss: 265.91969725088586\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-692.64015476, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-686.97335699, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(15.74144012, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-692.97005217, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-690.88755748, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(6.24911097, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-694.34002101, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-684.73505621, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(27.36307329, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-689.11814742, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-690.30681882, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-5.29546792, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-689.4174247, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-689.21357351, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.39343871, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(264.97454238, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [nan nan nan nan nan nan] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -114.54131757641534\n", + "logZ_P A1 MS -112.76131494537302\n", + "DDG A1: 6.117735360216462\n", + "logZ_P A2 MD -112.58770800666133\n", + "logZ_P A2 MS -112.23972409726049\n", + "DDG A2: 1.9544622885600584\n", + "logZ_P A3 MD -113.94138368038922\n", + "logZ_P A3 MS -112.62853369774928\n", + "DDG A3: 6.831797007821459\n", + "logZ_P A4 MD -112.52707277484271\n", + "logZ_P A4 MS -112.69622300373075\n", + "DDG A4: -2.7711335014650706\n", + "logZ_P A5 MD -112.08502799575281\n", + "logZ_P A5 MS -112.52152365531136\n", + "DDG A5: -1.9789375062701875\n", + "DDG loss: 0.16061190412455406\n", + "loss: 0.6869488368702237\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-114.54131758, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-112.76131495, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(6.11773536, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-112.58770801, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-112.2397241, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.95446229, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-113.94138368, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-112.6285337, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(6.83179701, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-112.52707277, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-112.696223, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.7711335, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-112.085028, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-112.52152366, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.97893751, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(0.1606119, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ -3.26347199 -3.4433901 -6.47974428 -3.43955905 -16.46177677\n", + " 0.38287646] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -692.6401547640039\n", + "logZ_P A1 MS -686.9733569942197\n", + "DDG A1: 15.741440123741377\n", + "logZ_P A2 MD -692.9700521671949\n", + "logZ_P A2 MS -690.8875574804507\n", + "DDG A2: 6.249110973262358\n", + "logZ_P A3 MD -694.3400210084837\n", + "logZ_P A3 MS -684.7350562102035\n", + "DDG A3: 27.36307329134678\n", + "logZ_P A4 MD -689.1181474164647\n", + "logZ_P A4 MS -690.3068188168828\n", + "DDG A4: -5.295467922173601\n", + "logZ_P A5 MD -689.4174246956227\n", + "logZ_P A5 MS -689.2135735089208\n", + "DDG A5: -0.393438714929438\n", + "DDG loss: 264.97454238164374\n", + "loss: 265.91969725088586\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-692.64015476, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-686.97335699, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(15.74144012, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-692.97005217, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-690.88755748, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(6.24911097, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-694.34002101, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-684.73505621, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(27.36307329, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-689.11814742, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-690.30681882, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-5.29546792, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-689.4174247, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-689.21357351, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.39343871, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(264.97454238, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [nan nan nan nan nan nan] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -326.5482010999966\n", + "logZ_P A1 MS -323.87346709001514\n", + "DDG A1: 8.333090254469742\n", + "logZ_P A2 MD -324.7624754434865\n", + "logZ_P A2 MS -323.5021415448239\n", + "DDG A2: 4.21344086197206\n", + "logZ_P A3 MD -325.59123454859224\n", + "logZ_P A3 MS -321.72555142776406\n", + "DDG A3: 13.152611857975561\n", + "logZ_P A4 MD -324.595914370163\n", + "logZ_P A4 MS -324.61824842199616\n", + "DDG A4: -2.40761664707731\n", + "logZ_P A5 MD -324.8990672684055\n", + "logZ_P A5 MS -324.55548235269646\n", + "DDG A5: -0.04745800190770524\n", + "DDG loss: 24.912190496056592\n", + "loss: 25.794765853613875\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-326.5482011, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-323.87346709, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(8.33309025, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-324.76247544, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-323.50214154, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(4.21344086, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-325.59123455, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-321.72555143, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(13.15261186, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-324.59591437, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-324.61824842, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.40761665, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-324.89906727, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-324.55548235, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.047458, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(24.9121905, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 231.54668372 -114.72997824 206.50476063 512.41741346 2191.35967889\n", + " -20.74090389] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -155.50804253799845\n", + "logZ_P A1 MS -153.64753109712274\n", + "DDG A1: 6.317075173363865\n", + "logZ_P A2 MD -153.2633888774343\n", + "logZ_P A2 MS -153.1168436085865\n", + "DDG A2: 1.4557002145507765\n", + "logZ_P A3 MD -154.72255507577003\n", + "logZ_P A3 MS -153.75014933646875\n", + "DDG A3: 5.988857061314956\n", + "logZ_P A4 MD -153.3552649555251\n", + "logZ_P A4 MS -153.72250276664144\n", + "DDG A4: -3.261598355062439\n", + "logZ_P A5 MD -153.39994251225116\n", + "logZ_P A5 MS -153.72955713611842\n", + "DDG A5: -1.714300061898559\n", + "DDG loss: 0.9374245615548461\n", + "loss: 1.57366317428853\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-155.50804254, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-153.6475311, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(6.31707517, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-153.26338888, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-153.11684361, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.45570021, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-154.72255508, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-153.75014934, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(5.98885706, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-153.35526496, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-153.72250277, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-3.26159836, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-153.39994251, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-153.72955714, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.71430006, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(0.93742456, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ -36.15693023 -40.51104758 -73.51188607 -48.09132791 -185.88574411\n", + " 2.62311844] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -133.7725148616402\n", + "logZ_P A1 MS -132.00192657815964\n", + "DDG A1: 6.094425435653513\n", + "logZ_P A2 MD -131.68626514515512\n", + "logZ_P A2 MS -131.4694969002229\n", + "DDG A2: 1.629572303335703\n", + "logZ_P A3 MD -133.20367083546367\n", + "logZ_P A3 MS -132.01157876282693\n", + "DDG A3: 6.532800422653555\n", + "logZ_P A4 MD -131.75875495579936\n", + "logZ_P A4 MS -131.96077393160084\n", + "DDG A4: -2.8525165188227395\n", + "logZ_P A5 MD -131.43298008014833\n", + "logZ_P A5 MS -131.82555113286426\n", + "DDG A5: -1.8701801797278883\n", + "DDG loss: 0.26108275606039555\n", + "loss: 0.8348607399055212\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-133.77251486, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-132.00192658, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(6.09442544, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-131.68626515, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-131.4694969, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.6295723, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-133.20367084, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-132.01157876, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(6.53280042, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-131.75875496, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-131.96077393, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.85251652, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-131.43298008, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-131.82555113, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.87018018, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(0.26108276, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [-20.63509373 -18.94639405 -25.56497029 -23.9150359 -92.45510969\n", + " 1.65724568] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -123.84639102628512\n", + "logZ_P A1 MS -122.07862725902413\n", + "DDG A1: 6.087431933493807\n", + "logZ_P A2 MD -121.83935581989829\n", + "logZ_P A2 MS -121.55416412175445\n", + "DDG A2: 1.7989887734877146\n", + "logZ_P A3 MD -123.28482888865159\n", + "logZ_P A3 MS -122.01352000991429\n", + "DDG A3: 6.728941234558545\n", + "logZ_P A4 MD -121.84178389656995\n", + "logZ_P A4 MS -122.0177531789511\n", + "DDG A4: -2.7880174779139946\n", + "logZ_P A5 MD -121.43088872059022\n", + "logZ_P A5 MS -121.84774348151085\n", + "DDG A5: -1.9303066412426702\n", + "DDG loss: 0.16433189208506907\n", + "loss: 0.7117762051688205\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-123.84639103, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-122.07862726, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(6.08743193, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-121.83935582, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-121.55416412, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.79898877, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-123.28482889, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-122.01352001, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(6.72894123, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-121.8417839, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-122.01775318, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.78801748, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-121.43088872, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-121.84774348, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.93030664, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(0.16433189, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [-10.39195626 -9.5587298 -13.88714191 -11.58371098 -47.5661089\n", + " 0.95155422] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -119.11666785086985\n", + "logZ_P A1 MS -117.34378189878711\n", + "DDG A1: 6.100114463112515\n", + "logZ_P A2 MD -117.14101168563705\n", + "logZ_P A2 MS -116.82212607373849\n", + "DDG A2: 1.8824149039443956\n", + "logZ_P A3 MD -118.5396324142002\n", + "logZ_P A3 MS -117.24326019353526\n", + "DDG A3: 6.790998069171331\n", + "logZ_P A4 MD -117.1080702064049\n", + "logZ_P A4 MS -117.2795132912375\n", + "DDG A4: -2.7768106127837666\n", + "logZ_P A5 MD -116.67600750991065\n", + "logZ_P A5 MS -117.10323969357037\n", + "DDG A5: -1.95600113994471\n", + "DDG loss: 0.15543615864820093\n", + "loss: 0.6915652659300606\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-119.11666785, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-117.3437819, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(6.10011446, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-117.14101169, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-116.82212607, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.8824149, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-118.53963241, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-117.24326019, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(6.79099807, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-117.10807021, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-117.27951329, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.77681061, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-116.67600751, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-117.10323969, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.95600114, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(0.15543616, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ -6.32007814 -6.07121397 -9.80182736 -6.88479627 -29.96215725\n", + " 0.63993609] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -116.80975030166984\n", + "logZ_P A1 MS -115.03344120008364\n", + "DDG A1: 6.108590181283051\n", + "logZ_P A2 MD -114.8464430471922\n", + "logZ_P A2 MS -114.51225655489912\n", + "DDG A2: 1.920299883801121\n", + "logZ_P A3 MD -116.22192636140359\n", + "logZ_P A3 MS -114.91633521441322\n", + "DDG A3: 6.813824130753134\n", + "logZ_P A4 MD -114.79834659259156\n", + "logZ_P A4 MS -114.96852070932329\n", + "DDG A4: -2.7736686477660033\n", + "logZ_P A5 MD -114.36004783710227\n", + "logZ_P A5 MS -114.79204677930329\n", + "DDG A5: -1.9678036340929885\n", + "DDG loss: 0.1568398504233629\n", + "loss: 0.6878669101232198\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-116.8097503, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-115.0334412, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(6.10859018, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-114.84644305, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-114.51225655, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.92029988, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-116.22192636, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-114.91633521, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(6.81382413, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-114.79834659, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-114.96852071, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.77366865, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-114.36004784, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-114.79204678, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.96780363, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(0.15683985, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ -4.65675658 -4.65029494 -8.05451417 -4.99942381 -22.67372585\n", + " 0.50361246] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -115.6707296371773\n", + "logZ_P A1 MS -113.89259360103065\n", + "DDG A1: 6.113113671254808\n", + "logZ_P A2 MD -113.71261953175862\n", + "logZ_P A2 MS -113.37132747503185\n", + "DDG A2: 1.9378932613390698\n", + "logZ_P A3 MD -115.07698277659246\n", + "logZ_P A3 MS -113.76753015086082\n", + "DDG A3: 6.823385152116521\n", + "logZ_P A4 MD -113.65788709010356\n", + "logZ_P A4 MS -113.82753708292933\n", + "DDG A4: -2.7723709169748427\n", + "logZ_P A5 MD -113.21742310033821\n", + "logZ_P A5 MS -113.6517035422669\n", + "DDG A5: -1.9734526274187059\n", + "DDG loss: 0.15849886679395245\n", + "loss: 0.6871273554838159\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-115.67072964, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-113.8925936, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(6.11311367, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-113.71261953, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-113.37132748, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.93789326, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-115.07698278, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-113.76753015, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(6.82338515, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-113.65788709, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-113.82753708, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.77237092, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-113.2174231, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-113.65170354, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.97345263, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(0.15849887, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ -3.92589022 -4.02034266 -7.24610954 -4.17865631 -19.43150073\n", + " 0.44119816] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -114.681542945388\n", + "logZ_P A1 MS -112.90177416428834\n", + "DDG A1: 6.1171563477584\n", + "logZ_P A2 MD -112.72741151639367\n", + "logZ_P A2 MS -112.38023786013763\n", + "DDG A2: 1.9524561017735187\n", + "logZ_P A3 MD -114.08239227068506\n", + "logZ_P A3 MS -112.76994126777188\n", + "DDG A3: 6.830809134018017\n", + "logZ_P A4 MD -112.66746940906908\n", + "logZ_P A4 MS -112.83668179310001\n", + "DDG A4: -2.771287397598889\n", + "logZ_P A5 MD -112.22559103488511\n", + "logZ_P A5 MS -112.66181420099036\n", + "DDG A5: -1.9782628124797939\n", + "DDG loss: 0.1603283258605004\n", + "loss: 0.6869448611412335\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-114.68154295, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-112.90177416, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(6.11715635, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-112.72741152, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-112.38023786, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.9524561, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-114.08239227, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-112.76994127, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(6.83080913, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-112.66746941, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-112.83668179, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.7712874, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-112.22559103, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-112.6618142, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.97826281, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(0.16032833, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ -3.34228083 -3.5124251 -6.57297533 -3.52722734 -16.81695363\n", + " 0.38991573] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -114.68431016340111\n", + "logZ_P A1 MS -112.90454062443503\n", + "DDG A1: 6.117158224235649\n", + "logZ_P A2 MD -112.73017629645943\n", + "logZ_P A2 MS -112.38300466776106\n", + "DDG A2: 1.9524510815407625\n", + "logZ_P A3 MD -114.08517961679775\n", + "logZ_P A3 MS -112.77272937495475\n", + "DDG A3: 6.830807249608209\n", + "logZ_P A4 MD -112.67023628205365\n", + "logZ_P A4 MS -112.83944914370349\n", + "DDG A4: -2.7712885801832785\n", + "logZ_P A5 MD -112.22837087988437\n", + "logZ_P A5 MS -112.66457835614793\n", + "DDG A5: -1.9782239644318425\n", + "DDG loss: 0.16031673426064466\n", + "loss: 0.6869368300819424\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-114.68431016, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-112.90454062, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(6.11715822, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-112.7301763, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-112.38300467, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.95245108, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-114.08517962, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-112.77272937, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(6.83080725, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-112.67023628, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-112.83944914, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.77128858, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-112.22837088, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-112.66457836, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.97822396, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(0.16031673, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ -3.34202467 -3.5128773 -6.57414104 -3.52658121 -16.81546751\n", + " 0.38992566] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -114.69537962143662\n", + "logZ_P A1 MS -112.91560704456882\n", + "DDG A1: 6.117165746080343\n", + "logZ_P A2 MD -112.74123595234232\n", + "logZ_P A2 MS -112.39407245815788\n", + "DDG A2: 1.952430940484263\n", + "logZ_P A3 MD -114.0963295833998\n", + "logZ_P A3 MS -112.78388240418458\n", + "DDG A3: 6.830799666541853\n", + "logZ_P A4 MD -112.68130437526393\n", + "logZ_P A4 MS -112.85051913349749\n", + "DDG A4: -2.771293276124548\n", + "logZ_P A5 MD -112.23949090268087\n", + "logZ_P A5 MS -112.67563560525741\n", + "DDG A5: -1.9780685367827457\n", + "DDG loss: 0.16027035823649605\n", + "loss: 0.6869047041252914\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-114.69537962, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-112.91560704, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(6.11716575, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-112.74123595, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-112.39407246, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.95243094, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-114.09632958, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-112.7838824, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(6.83079967, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-112.68130438, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-112.85051913, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.77129328, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-112.2394909, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-112.67563561, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.97806854, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(0.16027036, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ -3.34100164 -3.51468777 -6.57880703 -3.52399771 -16.80952774\n", + " 0.38996554] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -114.73966682965698\n", + "logZ_P A1 MS -112.95988199751746\n", + "DDG A1: 6.117196090133104\n", + "logZ_P A2 MD -112.78548314673166\n", + "logZ_P A2 MS -112.43835257844844\n", + "DDG A2: 1.952349415952834\n", + "logZ_P A3 MD -114.1409387633757\n", + "logZ_P A3 MS -112.82850412840162\n", + "DDG A3: 6.8307686070007785\n", + "logZ_P A4 MD -112.72558636802815\n", + "logZ_P A4 MS -112.89480849087882\n", + "DDG A4: -2.771311510916464\n", + "logZ_P A5 MD -112.28398127873439\n", + "logZ_P A5 MS -112.71987465741498\n", + "DDG A5: -1.977446258816368\n", + "DDG loss: 0.16008470132881764\n", + "loss: 0.6867761738640665\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-114.73966683, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-112.959882, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(6.11719609, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-112.78548315, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-112.43835258, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.95234942, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-114.14093876, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-112.82850413, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(6.83076861, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-112.72558637, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-112.89480849, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.77131151, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-112.28398128, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-112.71987466, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.97744626, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(0.1600847, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ -3.33693526 -3.52195606 -6.59752191 -3.51367949 -16.78584389\n", + " 0.39012792] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -114.91696570209395\n", + "logZ_P A1 MS -113.13713014632496\n", + "DDG A1: 6.117321681839604\n", + "logZ_P A2 MD -112.96260911865184\n", + "logZ_P A2 MS -112.61561641511246\n", + "DDG A2: 1.95200806284703\n", + "logZ_P A3 MD -114.31952444571485\n", + "logZ_P A3 MS -113.00714469862214\n", + "DDG A3: 6.830632704606456\n", + "logZ_P A4 MD -112.90286823034654\n", + "logZ_P A4 MS -113.07211629966955\n", + "DDG A4: -2.7713757543820337\n", + "logZ_P A5 MD -112.46210734570263\n", + "logZ_P A5 MS -112.89699176084764\n", + "DDG A5: -1.9749480651022655\n", + "DDG loss: 0.1593397050316767\n", + "loss: 0.6862616992890533\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-114.9169657, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-113.13713015, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(6.11732168, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-112.96260912, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-112.61561642, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.95200806, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-114.31952445, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-113.0071447, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(6.8306327, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-112.90286823, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-113.0721163, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.77137575, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-112.46210735, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-112.89699176, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.97494807, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(0.15933971, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ -3.32107893 -3.55145038 -6.67319318 -3.4726568 -16.6922958\n", + " 0.39082241] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -115.6285632619187\n", + "logZ_P A1 MS -113.84849476587515\n", + "DDG A1: 6.117898441959514\n", + "logZ_P A2 MD -113.67331210697562\n", + "logZ_P A2 MS -113.32696648074555\n", + "DDG A2: 1.9504058994291786\n", + "logZ_P A3 MD -115.03624708479494\n", + "logZ_P A3 MS -113.72416294527223\n", + "DDG A3: 6.829900780263218\n", + "logZ_P A4 MD -113.61445616754628\n", + "logZ_P A4 MS -113.78375413149801\n", + "DDG A4: -2.7714992934828064\n", + "logZ_P A5 MD -113.17724491696227\n", + "logZ_P A5 MS -113.60803469161789\n", + "DDG A5: -1.9648097352505143\n", + "DDG loss: 0.15632687132861867\n", + "loss: 0.6842027517941845\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-115.62856326, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-113.84849477, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(6.11789844, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-113.67331211, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-113.32696648, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.9504059, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-115.03624708, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-113.72416295, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(6.82990078, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-113.61445617, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-113.78375413, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.77149929, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-113.17724492, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-113.60803469, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.96480974, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(0.15632687, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ -3.264016 -3.67604409 -6.98868037 -3.3123648 -16.33602407\n", + " 0.3942955 ] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -118.5134803437648\n", + "logZ_P A1 MS -116.73182207707694\n", + "DDG A1: 6.1218347140748035\n", + "logZ_P A2 MD -116.5515902250155\n", + "logZ_P A2 MS -116.20914603683072\n", + "DDG A2: 1.9407459388291115\n", + "logZ_P A3 MD -117.94099590302413\n", + "logZ_P A3 MS -116.63134383269828\n", + "DDG A3: 6.82387897693173\n", + "logZ_P A4 MD -116.5000596622293\n", + "logZ_P A4 MS -116.66884901465787\n", + "DDG A4: -2.770239971351429\n", + "logZ_P A5 MD -116.07994389209598\n", + "logZ_P A5 MS -116.49340882580753\n", + "DDG A5: -1.9219134290729962\n", + "DDG loss: 0.1441097538353711\n", + "loss: 0.6762813935926412\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-118.51348034, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-116.73182208, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(6.12183471, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-116.55159023, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-116.20914604, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.94074594, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-117.9409959, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-116.63134383, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(6.82387898, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-116.50005966, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-116.66884901, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.77023997, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-116.07994389, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-116.49340883, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.92191343, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(0.14410975, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ -3.12209268 -4.27047064 -8.44419977 -2.71483596 -15.11694929\n", + " 0.41754584] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -125.61358315774876\n", + "logZ_P A1 MS -123.82664640027646\n", + "DDG A1: 6.1349042572570625\n", + "logZ_P A2 MD -123.61525342295599\n", + "logZ_P A2 MS -123.29028979601279\n", + "DDG A2: 1.8974640691949147\n", + "logZ_P A3 MD -125.08864358004195\n", + "logZ_P A3 MS -123.78466712720363\n", + "DDG A3: 6.809826148032615\n", + "logZ_P A4 MD -123.60890353373678\n", + "logZ_P A4 MS -123.77202405189635\n", + "DDG A4: -2.7562039377014145\n", + "logZ_P A5 MD -123.24341910479652\n", + "logZ_P A5 MS -123.60972010912188\n", + "DDG A5: -1.8051355399127973\n", + "DDG loss: 0.11357173335345584\n", + "loss: 0.6596332032704502\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-125.61358316, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-123.8266464, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(6.13490426, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-123.61525342, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-123.2902898, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.89746407, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-125.08864358, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-123.78466713, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(6.80982615, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-123.60890353, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-123.77202405, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.75620394, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-123.2434191, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-123.60972011, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.80513554, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(0.11357173, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ -3.27592486 -5.91521023 -12.10057317 -1.80388869 -13.68438769\n", + " 0.50538079] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -131.65167367699047\n", + "logZ_P A1 MS -129.84004354748788\n", + "DDG A1: 6.196045046404013\n", + "logZ_P A2 MD -129.6291452756858\n", + "logZ_P A2 MS -129.28630047693778\n", + "DDG A2: 1.941737850583711\n", + "logZ_P A3 MD -131.17745575836716\n", + "logZ_P A3 MS -129.848892331781\n", + "DDG A3: 6.870703495032313\n", + "logZ_P A4 MD -129.65805528930045\n", + "logZ_P A4 MS -129.80274469299368\n", + "DDG A4: -2.710568498282726\n", + "logZ_P A5 MD -129.38345708976362\n", + "logZ_P A5 MS -129.67878847031815\n", + "DDG A5: -1.6294147514562434\n", + "DDG loss: 0.08557103887669962\n", + "loss: 0.6411839275407619\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-131.65167368, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-129.84004355, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(6.19604505, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-129.62914528, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-129.28630048, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.94173785, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-131.17745576, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-129.84889233, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(6.8707035, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-129.65805529, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-129.80274469, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.7105685, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-129.38345709, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-129.67878847, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.62941475, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(0.08557104, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 2.93562724 -3.074178 -12.91078096 7.59502401 18.32863249\n", + " 0.1792416 ] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -132.10817501780525\n", + "logZ_P A1 MS -130.30073934336625\n", + "DDG A1: 6.1856595756666515\n", + "logZ_P A2 MD -130.0798213186885\n", + "logZ_P A2 MS -129.74745034506452\n", + "DDG A2: 1.9158046595764178\n", + "logZ_P A3 MD -131.6681329270716\n", + "logZ_P A3 MS -130.29588042139565\n", + "DDG A3: 6.978877654858662\n", + "logZ_P A4 MD -130.11440023441796\n", + "logZ_P A4 MS -130.2522100788375\n", + "DDG A4: -2.6935347095210473\n", + "logZ_P A5 MD -129.86448626710876\n", + "logZ_P A5 MS -130.16143178410798\n", + "DDG A5: -1.6334113532932875\n", + "DDG loss: 0.05810286894189428\n", + "loss: 0.6130989900614895\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-132.10817502, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-130.30073934, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(6.18565958, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-130.07982132, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-129.74745035, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.91580466, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-131.66813293, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-130.29588042, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(6.97887765, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-130.11440023, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-130.25221008, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.69353471, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-129.86448627, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-130.16143178, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.63341135, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(0.05810287, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 3.57065379 -1.44806942 -8.36880288 7.05074887 19.1911785 0.03766147] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -136.7346982800536\n", + "logZ_P A1 MS -134.94153798467244\n", + "DDG A1: 6.15031373711938\n", + "logZ_P A2 MD -134.6940252626248\n", + "logZ_P A2 MS -134.40343240282633\n", + "DDG A2: 1.8123620497446185\n", + "logZ_P A3 MD -136.37160640276565\n", + "logZ_P A3 MS -134.92298197286615\n", + "DDG A3: 7.167974539236139\n", + "logZ_P A4 MD -134.79139251457565\n", + "logZ_P A4 MS -134.8761416020922\n", + "DDG A4: -2.5621562754292344\n", + "logZ_P A5 MD -134.60997130007496\n", + "logZ_P A5 MS -134.91010171362862\n", + "DDG A5: -1.6412971571620911\n", + "DDG loss: 0.02348058591741531\n", + "loss: 0.5842814532692023\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-136.73469828, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-134.94153798, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(6.15031374, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-134.69402526, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-134.4034324, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.81236205, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-136.3716064, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-134.92298197, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(7.16797454, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-134.79139251, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-134.8761416, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.56215628, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-134.6099713, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-134.91010171, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.64129716, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(0.02348059, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 1.67715813 1.49374856 0.93148143 2.22191407 8.2635899 -0.06060145] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -132.35937636833185\n", + "logZ_P A1 MS -130.5776021910038\n", + "DDG A1: 6.122121708819879\n", + "logZ_P A2 MD -130.38005522577032\n", + "logZ_P A2 MS -130.07870891286717\n", + "DDG A2: 1.838987599631745\n", + "logZ_P A3 MD -131.9813811553635\n", + "logZ_P A3 MS -130.53897763252533\n", + "DDG A3: 7.152571573352278\n", + "logZ_P A4 MD -130.40808107493194\n", + "logZ_P A4 MS -130.50512017885785\n", + "DDG A4: -2.5925863560588254\n", + "logZ_P A5 MD -130.18639967368628\n", + "logZ_P A5 MS -130.53747514356755\n", + "DDG A5: -1.767437116629244\n", + "DDG loss: 0.033421003838402935\n", + "loss: 0.5792643762383343\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-132.35937637, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-130.57760219, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(6.12212171, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-130.38005523, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-130.07870891, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.8389876, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-131.98138116, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-130.53897763, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(7.15257157, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-130.40808107, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-130.50512018, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.59258636, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-130.18639967, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-130.53747514, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.76743712, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(0.033421, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 0.06289572 1.92515774 1.33933706 -1.49327428 -4.3575455 -0.02855316] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -133.72546395355795\n", + "logZ_P A1 MS -131.9374416033267\n", + "DDG A1: 6.137592184928164\n", + "logZ_P A2 MD -131.7668894732065\n", + "logZ_P A2 MS -131.46308003778145\n", + "DDG A2: 1.845086290996046\n", + "logZ_P A3 MD -133.34535069915322\n", + "logZ_P A3 MS -131.9015960506568\n", + "DDG A3: 7.1559169604820605\n", + "logZ_P A4 MD -131.7809624649553\n", + "logZ_P A4 MS -131.86922157675335\n", + "DDG A4: -2.570847095550219\n", + "logZ_P A5 MD -131.60786138970437\n", + "logZ_P A5 MS -131.94879568817564\n", + "DDG A5: -1.7423275762180885\n", + "DDG loss: 0.028681985678674624\n", + "loss: 0.5719551437112542\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-133.72546395, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-131.9374416, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(6.13759218, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-131.76688947, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-131.46308004, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.84508629, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-133.3453507, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-131.90159605, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(7.15591696, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-131.78096246, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-131.86922158, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.5708471, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-131.60786139, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-131.94879569, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.74232758, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(0.02868199, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 0.96604675 2.45221386 1.41895988 0.04489112 0.94241248 -0.07719873] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -135.9198500192462\n", + "logZ_P A1 MS -134.11704240648373\n", + "DDG A1: 6.174200494955499\n", + "logZ_P A2 MD -134.01825753358693\n", + "logZ_P A2 MS -133.71025819110938\n", + "DDG A2: 1.855460500857981\n", + "logZ_P A3 MD -135.5212666476979\n", + "logZ_P A3 MS -134.0739798576775\n", + "DDG A3: 7.164662542895425\n", + "logZ_P A4 MD -133.97801768998892\n", + "logZ_P A4 MS -134.05543734034924\n", + "DDG A4: -2.5440085890304442\n", + "logZ_P A5 MD -133.9093990720256\n", + "logZ_P A5 MS -134.2376638718052\n", + "DDG A5: -1.710957897457562\n", + "DDG loss: 0.023115779337649762\n", + "loss: 0.5591257072098483\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-135.91985002, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-134.11704241, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(6.17420049, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-134.01825753, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-133.71025819, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.8554605, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-135.52126665, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-134.07397986, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(7.16466254, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-133.97801769, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-134.05543734, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.54400859, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-133.90939907, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-134.23766387, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.7109579, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(0.02311578, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 2.61115922 3.30559219 1.82939224 2.64297266 10.22655146 -0.18634754] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -139.30938239058437\n", + "logZ_P A1 MS -137.4616133269594\n", + "DDG A1: 6.285525047291124\n", + "logZ_P A2 MD -137.56175689378716\n", + "logZ_P A2 MS -137.22843806970727\n", + "DDG A2: 1.9181515373054405\n", + "logZ_P A3 MD -138.84266931199994\n", + "logZ_P A3 MS -137.3820180548716\n", + "DDG A3: 7.197752963454705\n", + "logZ_P A4 MD -137.35626310584217\n", + "logZ_P A4 MS -137.40784755326615\n", + "DDG A4: -2.4800406265600436\n", + "logZ_P A5 MD -137.47027432111094\n", + "logZ_P A5 MS -137.78129526742478\n", + "DDG A5: -1.6682621162763118\n", + "DDG loss: 0.02938046460010107\n", + "loss: 0.5503432759106691\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-139.30938239, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-137.46161333, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(6.28552505, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-137.56175689, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-137.22843807, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.91815154, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-138.84266931, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-137.38201805, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(7.19775296, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-137.35626311, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-137.40784755, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.48004063, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-137.47027432, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-137.78129527, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.66826212, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(0.02938046, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 7.50455755 5.21269428 4.16459437 10.15376828 37.91995788 -0.59353396] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -139.09454273475805\n", + "logZ_P A1 MS -137.2652228099254\n", + "DDG A1: 6.239844979641304\n", + "logZ_P A2 MD -137.30750316311304\n", + "logZ_P A2 MS -137.00010745944004\n", + "DDG A2: 1.8539658911779535\n", + "logZ_P A3 MD -138.6269337441854\n", + "logZ_P A3 MS -137.19442377336958\n", + "DDG A3: 7.12807513854491\n", + "logZ_P A4 MD -137.14093629524388\n", + "logZ_P A4 MS -137.20980062754606\n", + "DDG A4: -2.522825621518483\n", + "logZ_P A5 MD -137.23982093360888\n", + "logZ_P A5 MS -137.55405976266056\n", + "DDG A5: -1.676229593935176\n", + "DDG loss: 0.014599188363542062\n", + "loss: 0.5396705412984087\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-139.09454273, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-137.26522281, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(6.23984498, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-137.30750316, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-137.00010746, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.85396589, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-138.62693374, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-137.19442377, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(7.12807514, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-137.1409363, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-137.20980063, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.52282562, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-137.23982093, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-137.55405976, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.67622959, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(0.01459919, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 3.5459073 2.80490353 0.37639029 4.63137944 16.75691265 -0.24034051] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -138.0684639255991\n", + "logZ_P A1 MS -136.25285953558299\n", + "DDG A1: 6.205885315435584\n", + "logZ_P A2 MD -136.34209195937112\n", + "logZ_P A2 MS -136.03999538172536\n", + "DDG A2: 1.8408452551343684\n", + "logZ_P A3 MD -137.5920085954064\n", + "logZ_P A3 MS -136.17335962211382\n", + "DDG A3: 7.0937553086773715\n", + "logZ_P A4 MD -136.12377626430768\n", + "logZ_P A4 MS -136.18908259018556\n", + "DDG A4: -2.514015997611918\n", + "logZ_P A5 MD -136.25955881887333\n", + "logZ_P A5 MS -136.57468320240034\n", + "DDG A5: -1.6784222268160973\n", + "DDG loss: 0.014698002199436509\n", + "loss: 0.5282046997035498\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-138.06846393, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-136.25285954, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(6.20588532, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-136.34209196, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-136.03999538, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.84084526, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-137.5920086, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-136.17335962, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(7.09375531, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-136.12377626, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-136.18908259, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.514016, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-136.25955882, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-136.5746832, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.67842223, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(0.014698, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 1.51884494 1.69266088 -0.47439741 2.04955812 7.02687547 -0.08018437] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -135.97386164063295\n", + "logZ_P A1 MS -134.15504753451376\n", + "DDG A1: 6.21383257250672\n", + "logZ_P A2 MD -134.4156561464451\n", + "logZ_P A2 MS -134.07610448425217\n", + "DDG A2: 1.9335840444732817\n", + "logZ_P A3 MD -135.4747611018658\n", + "logZ_P A3 MS -134.06007794582297\n", + "DDG A3: 7.083935945166956\n", + "logZ_P A4 MD -134.0218158155805\n", + "logZ_P A4 MS -134.06044272079075\n", + "DDG A4: -2.4479577520388216\n", + "logZ_P A5 MD -134.2292017448708\n", + "logZ_P A5 MS -134.5527851170811\n", + "DDG A5: -1.6993666827959166\n", + "DDG loss: 0.03247659095725923\n", + "loss: 0.5189443166716253\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-135.97386164, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-134.15504753, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(6.21383257, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-134.41565615, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-134.07610448, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.93358404, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-135.4747611, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-134.06007795, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(7.08393595, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-134.02181582, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-134.06044272, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.44795775, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-134.22920174, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-134.55278512, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.69936668, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(0.03247659, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 2.78210945 1.24517551 1.31142827 4.48020055 15.96021897 -0.25949289] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -135.5942822499066\n", + "logZ_P A1 MS -133.80192154937308\n", + "DDG A1: 6.148333940276672\n", + "logZ_P A2 MD -133.9794484864224\n", + "logZ_P A2 MS -133.67515224706614\n", + "DDG A2: 1.8462916175295814\n", + "logZ_P A3 MD -135.1182364296113\n", + "logZ_P A3 MS -133.7069881622774\n", + "DDG A3: 7.0754311607236255\n", + "logZ_P A4 MD -133.6421692828866\n", + "logZ_P A4 MS -133.70272146550352\n", + "DDG A4: -2.5022447388977267\n", + "logZ_P A5 MD -133.84531847710565\n", + "logZ_P A5 MS -134.16642469905005\n", + "DDG A5: -1.6932332587375747\n", + "DDG loss: 0.022529143267420674\n", + "loss: 0.5122453818100513\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-135.59428225, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-133.80192155, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(6.14833394, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-133.97944849, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-133.67515225, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.84629162, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-135.11823643, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-133.70698816, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(7.07543116, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-133.64216928, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-133.70272147, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.50224474, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-133.84531848, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-134.1664247, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.69323326, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(0.02252914, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [-0.41991892 0.720344 -0.18566596 -0.36273872 -1.85644461 0.05838602] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -135.90890867407379\n", + "logZ_P A1 MS -134.1128507774989\n", + "DDG A1: 6.157488197675109\n", + "logZ_P A2 MD -134.31198517360343\n", + "logZ_P A2 MS -134.011477494906\n", + "DDG A2: 1.8369111413384158\n", + "logZ_P A3 MD -135.42026332902978\n", + "logZ_P A3 MS -134.01098750707658\n", + "DDG A3: 7.070547385961114\n", + "logZ_P A4 MD -133.92959898145918\n", + "logZ_P A4 MS -133.9911415240206\n", + "DDG A4: -2.504696870120368\n", + "logZ_P A5 MD -134.16729960895483\n", + "logZ_P A5 MS -134.49443427393413\n", + "DDG A5: -1.7081596836919695\n", + "DDG loss: 0.020005185962540296\n", + "loss: 0.5078684233636788\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-135.90890867, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-134.11285078, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(6.1574882, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-134.31198517, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-134.01147749, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.83691114, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-135.42026333, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-134.01098751, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(7.07054739, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-133.92959898, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-133.99114152, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.50469687, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-134.16729961, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-134.49443427, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.70815968, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(0.02000519, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [-0.73493046 0.41324777 -0.4002111 -0.94807009 -3.75449138 0.06840136] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -135.47629551820452\n", + "logZ_P A1 MS -133.66837092421304\n", + "DDG A1: 6.186870140478524\n", + "logZ_P A2 MD -133.9345089279285\n", + "logZ_P A2 MS -133.612835265291\n", + "DDG A2: 1.8893181175740525\n", + "logZ_P A3 MD -134.97906175495788\n", + "logZ_P A3 MS -133.56218047284605\n", + "DDG A3: 7.0893785053138805\n", + "logZ_P A4 MD -133.42927780201055\n", + "logZ_P A4 MS -133.4965378531358\n", + "DDG A4: -2.5188534213244194\n", + "logZ_P A5 MD -133.73256403209666\n", + "logZ_P A5 MS -134.07711631321192\n", + "DDG A5: -1.7512857012446021\n", + "DDG loss: 0.025869102777142813\n", + "loss: 0.5056802631537142\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-135.47629552, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-133.66837092, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(6.18687014, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-133.93450893, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-133.61283527, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.88931812, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-134.97906175, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-133.56218047, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(7.08937851, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-133.4292778, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-133.49653785, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.51885342, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-133.73256403, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-134.07711631, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.7512857, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(0.0258691, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 1.13388694 -0.17154406 0.2763108 1.49402425 5.09126405 -0.12996458] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -136.89485301337174\n", + "logZ_P A1 MS -135.08743237745705\n", + "DDG A1: 6.185622340280388\n", + "logZ_P A2 MD -135.32370144406602\n", + "logZ_P A2 MS -135.02473606002968\n", + "DDG A2: 1.833092419757445\n", + "logZ_P A3 MD -136.38861162404484\n", + "logZ_P A3 MS -134.9722085096844\n", + "DDG A3: 7.088194561961424\n", + "logZ_P A4 MD -134.8490091246679\n", + "logZ_P A4 MS -134.90943287187116\n", + "DDG A4: -2.5019267328135464\n", + "logZ_P A5 MD -135.15857517286244\n", + "logZ_P A5 MS -135.49754196548759\n", + "DDG A5: -1.737456031743084\n", + "DDG loss: 0.016170938110191782\n", + "loss: 0.5033028120415083\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-136.89485301, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-135.08743238, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(6.18562234, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-135.32370144, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-135.02473606, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.83309242, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-136.38861162, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-134.97220851, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(7.08819456, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-134.84900912, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-134.90943287, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.50192673, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-135.15857517, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-135.49754197, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.73745603, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(0.01617094, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [-0.3699462 0.07641413 0.3465685 -0.71567693 -2.04239989 -0.0141435 ] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -136.46689820641004\n", + "logZ_P A1 MS -134.6657162012391\n", + "DDG A1: 6.170175490558858\n", + "logZ_P A2 MD -134.87563348594816\n", + "logZ_P A2 MS -134.58373723585302\n", + "DDG A2: 1.8155892441191022\n", + "logZ_P A3 MD -135.96984728140882\n", + "logZ_P A3 MS -134.55349653320778\n", + "DDG A3: 7.088064903350763\n", + "logZ_P A4 MD -134.4112685100658\n", + "logZ_P A4 MS -134.49294322016974\n", + "DDG A4: -2.554544116955596\n", + "logZ_P A5 MD -134.72965513706214\n", + "logZ_P A5 MS -135.0637334075809\n", + "DDG A5: -1.725352051007712\n", + "DDG loss: 0.016987755162224255\n", + "loss: 0.5034514080597863\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-136.46689821, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-134.6657162, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(6.17017549, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-134.87563349, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-134.58373724, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.81558924, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-135.96984728, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-134.55349653, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(7.0880649, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-134.41126851, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-134.49294322, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.55454412, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-134.72965514, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-135.06373341, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.72535205, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(0.01698776, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [-0.31581246 0.24776633 -0.63398811 -0.96742774 -3.8413521 0.05088539] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -136.6995785182912\n", + "logZ_P A1 MS -134.89506388907304\n", + "DDG A1: 6.178427067699805\n", + "logZ_P A2 MD -135.11919284873784\n", + "logZ_P A2 MS -134.8235154646959\n", + "DDG A2: 1.8249513317713844\n", + "logZ_P A3 MD -136.19758417809277\n", + "logZ_P A3 MS -134.78123923187565\n", + "DDG A3: 7.088050537638513\n", + "logZ_P A4 MD -134.64936131790367\n", + "logZ_P A4 MS -134.71951764359156\n", + "DDG A4: -2.5260245971414914\n", + "logZ_P A5 MD -134.96295957957986\n", + "logZ_P A5 MS -135.29967694098337\n", + "DDG A5: -1.7318864400383327\n", + "DDG loss: 0.016114813772467013\n", + "loss: 0.5029204156025873\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-136.69957852, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-134.89506389, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(6.17842707, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-135.11919285, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-134.82351546, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.82495133, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-136.19758418, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-134.78123923, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(7.08805054, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-134.64936132, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-134.71951764, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.5260246, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-134.96295958, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-135.29967694, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.73188644, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(0.01611481, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [-0.34321595 0.17494748 -0.11701325 -0.82951618 -2.87793768 0.01629259] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -137.24331595932583\n", + "logZ_P A1 MS -135.43792199964875\n", + "DDG A1: 6.180604289916113\n", + "logZ_P A2 MD -135.66227098791438\n", + "logZ_P A2 MS -135.37032754254358\n", + "DDG A2: 1.8157060996216605\n", + "logZ_P A3 MD -136.73809472605046\n", + "logZ_P A3 MS -135.31954417548798\n", + "DDG A3: 7.093511613997632\n", + "logZ_P A4 MD -135.1803435992928\n", + "logZ_P A4 MS -135.2492398209161\n", + "DDG A4: -2.5229045794775797\n", + "logZ_P A5 MD -135.51380639955522\n", + "logZ_P A5 MS -135.84798751900905\n", + "DDG A5: -1.7256067049709143\n", + "DDG loss: 0.014432829664760552\n", + "loss: 0.5023246571722358\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-137.24331596, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-135.437922, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(6.18060429, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-135.66227099, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-135.37032754, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.8157061, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-136.73809473, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-135.31954418, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(7.09351161, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-135.1803436, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-135.24923982, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.52290458, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-135.5138064, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-135.84798752, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.7256067, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(0.01443283, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [-0.43413889 0.18425308 0.14613439 -0.94945186 -3.08023551 0.01953412] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -137.90307235961424\n", + "logZ_P A1 MS -136.0951699486848\n", + "DDG A1: 6.186815215216975\n", + "logZ_P A2 MD -136.32793337349065\n", + "logZ_P A2 MS -136.03493635582115\n", + "DDG A2: 1.8183147446332455\n", + "logZ_P A3 MD -137.3917082629172\n", + "logZ_P A3 MS -135.97221877639487\n", + "DDG A3: 7.0958364194342245\n", + "logZ_P A4 MD -135.82323050057352\n", + "logZ_P A4 MS -135.8899633741902\n", + "DDG A4: -2.5175481298131572\n", + "logZ_P A5 MD -136.18601183556734\n", + "logZ_P A5 MS -136.5136287681664\n", + "DDG A5: -1.7093537783184931\n", + "DDG loss: 0.013610969867954181\n", + "loss: 0.5016623701361878\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-137.90307236, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-136.09516995, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(6.18681522, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-136.32793337, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-136.03493636, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.81831474, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-137.39170826, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-135.97221878, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(7.09583642, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-135.8232305, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-135.88996337, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.51754813, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-136.18601184, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-136.51362877, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.70935378, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(0.01361097, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [-0.15796286 0.09398599 0.31945024 -0.37600836 -0.99771262 -0.00244128] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -137.97217251814737\n", + "logZ_P A1 MS -136.16448914182982\n", + "DDG A1: 6.1862728855179405\n", + "logZ_P A2 MD -136.39971974388004\n", + "logZ_P A2 MS -136.10487676793517\n", + "DDG A2: 1.8228853373231266\n", + "logZ_P A3 MD -137.45964621907\n", + "logZ_P A3 MS -136.04161635905626\n", + "DDG A3: 7.092222384198952\n", + "logZ_P A4 MD -135.890247634266\n", + "logZ_P A4 MS -135.95801255672353\n", + "DDG A4: -2.52010348274315\n", + "logZ_P A5 MD -136.26055457013618\n", + "logZ_P A5 MS -136.58416972610166\n", + "DDG A5: -1.699445379373768\n", + "DDG loss: 0.014249805813712966\n", + "loss: 0.5015418706040279\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-137.97217252, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-136.16448914, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(6.18627289, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-136.39971974, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-136.10487677, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.82288534, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-137.45964622, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-136.04161636, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(7.09222238, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-135.89024763, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-135.95801256, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.52010348, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-136.26055457, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-136.58416973, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.69944538, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(0.01424981, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 0.00401539 0.04441837 0.1349571 -0.04045246 -0.04064984 -0.00333756] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -137.94999216418947\n", + "logZ_P A1 MS -136.1423018737457\n", + "DDG A1: 6.18629000489442\n", + "logZ_P A2 MD -136.37866916694378\n", + "logZ_P A2 MS -136.0829964230061\n", + "DDG A2: 1.824939842873294\n", + "logZ_P A3 MD -137.4368384685191\n", + "logZ_P A3 MS -136.01994756767039\n", + "DDG A3: 7.089402321306366\n", + "logZ_P A4 MD -135.86964714894077\n", + "logZ_P A4 MS -135.9371153347607\n", + "DDG A4: -2.5193687628284316\n", + "logZ_P A5 MD -136.23921187598373\n", + "logZ_P A5 MS -136.56210515384544\n", + "DDG A5: -1.6976580091888211\n", + "DDG loss: 0.014516436006135816\n", + "loss: 0.5015310640635543\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-137.94999216, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-136.14230187, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(6.18629, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-136.37866917, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-136.08299642, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.82493984, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-137.43683847, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-136.01994757, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(7.08940232, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-135.86964715, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-135.93711533, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.51936876, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-136.23921188, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-136.56210515, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.69765801, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(0.01451644, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 0.01368896 0.00872458 0.03505517 0.01702541 0.08558898 -0.00189596] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -137.9244779330467\n", + "logZ_P A1 MS -136.11691530323114\n", + "DDG A1: 6.185973917178974\n", + "logZ_P A2 MD -136.35328654610166\n", + "logZ_P A2 MS -136.0574946101639\n", + "DDG A2: 1.8252349622654338\n", + "logZ_P A3 MD -137.4114049538987\n", + "logZ_P A3 MS -135.99480239150682\n", + "DDG A3: 7.088688395287229\n", + "logZ_P A4 MD -135.8446981571338\n", + "logZ_P A4 MS -135.91230707563463\n", + "DDG A4: -2.519717216946351\n", + "logZ_P A5 MD -136.21359471543332\n", + "logZ_P A5 MS -136.53654023594194\n", + "DDG A5: -1.6977873619825854\n", + "DDG loss: 0.014603680074707788\n", + "loss: 0.5015305212262559\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-137.92447793, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-136.1169153, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(6.18597392, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-136.35328655, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-136.05749461, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.82523496, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-137.41140495, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-135.99480239, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(7.0886884, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-135.84469816, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-135.91230708, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.51971722, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-136.21359472, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-136.53654024, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.69778736, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(0.01460368, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 0.00760151 0.00289611 0.00203605 0.01008647 0.03497994 -0.00045562] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -137.9244974757397\n", + "logZ_P A1 MS -136.1169387433678\n", + "DDG A1: 6.185964267108537\n", + "logZ_P A2 MD -136.35338035836494\n", + "logZ_P A2 MS -136.0575865046779\n", + "DDG A2: 1.8252397106126341\n", + "logZ_P A3 MD -137.41139557808054\n", + "logZ_P A3 MS -135.9948263188349\n", + "DDG A3: 7.0886059366971415\n", + "logZ_P A4 MD -135.84474089809027\n", + "logZ_P A4 MS -135.9122969853303\n", + "DDG A4: -2.5195864067446037\n", + "logZ_P A5 MD -136.21360560447445\n", + "logZ_P A5 MS -136.53659848206686\n", + "DDG A5: -1.6979046181220416\n", + "DDG loss: 0.014603488061679206\n", + "loss: 0.501530492121333\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-137.92449748, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-136.11693874, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(6.18596427, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-136.35338036, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-136.0575865, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.82523971, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-137.41139558, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-135.99482632, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(7.08860594, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-135.8447409, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-135.91229699, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.51958641, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-136.2136056, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-136.53659848, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.69790462, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(0.01460349, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 0.0032019 0.00078705 0.00150605 0.00463204 0.0169135 -0.00028357] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -137.92520422551053\n", + "logZ_P A1 MS -136.11765678709094\n", + "DDG A1: 6.1859363032825065\n", + "logZ_P A2 MD -136.3541013326239\n", + "logZ_P A2 MS -136.0583247904804\n", + "DDG A2: 1.825196847230783\n", + "logZ_P A3 MD -137.41209391614012\n", + "logZ_P A3 MS -135.9955375706424\n", + "DDG A3: 7.088573962257283\n", + "logZ_P A4 MD -135.84541840251896\n", + "logZ_P A4 MS -135.91297325058167\n", + "DDG A4: -2.5195833385415534\n", + "logZ_P A5 MD -136.21432599764728\n", + "logZ_P A5 MS -136.53733198000847\n", + "DDG A5: -1.6979370655295485\n", + "DDG loss: 0.014601547325474373\n", + "loss: 0.5015304863351864\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-137.92520423, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-136.11765679, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(6.1859363, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-136.35410133, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-136.05832479, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.82519685, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-137.41209392, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-135.99553757, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(7.08857396, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-135.8454184, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-135.91297325, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.51958334, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-136.214326, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-136.53733198, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.69793707, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(0.01460155, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 7.33956154e-04 1.92515324e-04 5.51695893e-04 1.02132601e-03\n", + " 3.91408928e-03 -8.10608363e-05] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -137.92584035987045\n", + "logZ_P A1 MS -136.1182965203525\n", + "DDG A1: 6.185927392402076\n", + "logZ_P A2 MD -136.3547405411158\n", + "logZ_P A2 MS -136.0589716040273\n", + "DDG A2: 1.8251780171146645\n", + "logZ_P A3 MD -137.41272401841516\n", + "logZ_P A3 MS -135.9961727088501\n", + "DDG A3: 7.088561493287983\n", + "logZ_P A4 MD -135.84603415979385\n", + "logZ_P A4 MS -135.91359110522154\n", + "DDG A4: -2.5195885316172535\n", + "logZ_P A5 MD -136.2149748495219\n", + "logZ_P A5 MS -136.53797966957393\n", + "DDG A5: -1.697934187652066\n", + "DDG loss: 0.01460045668016355\n", + "loss: 0.5015304856455685\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-137.92584036, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-136.11829652, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(6.18592739, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-136.35474054, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-136.0589716, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.82517802, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-137.41272402, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-135.99617271, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(7.08856149, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-135.84603416, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-135.91359111, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.51958853, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-136.21497485, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-136.53797967, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.69793419, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(0.01460046, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [-1.43610415e-05 -2.01625472e-06 3.07399264e-05 -3.22215073e-05\n", + " -7.85532836e-05 -1.90333869e-06] \n", + "\n", + "logZ_P A1 MD -137.92584035987045\n", + "logZ_P A1 MS -136.1182965203525\n", + "DDG A1: 6.185927392402076\n", + "logZ_P A2 MD -136.3547405411158\n", + "logZ_P A2 MS -136.0589716040273\n", + "DDG A2: 1.8251780171146645\n", + "logZ_P A3 MD -137.41272401841516\n", + "logZ_P A3 MS -135.9961727088501\n", + "DDG A3: 7.088561493287983\n", + "logZ_P A4 MD -135.84603415979385\n", + "logZ_P A4 MS -135.91359110522154\n", + "DDG A4: -2.5195885316172535\n", + "logZ_P A5 MD -136.2149748495219\n", + "logZ_P A5 MS -136.53797966957393\n", + "DDG A5: -1.697934187652066\n", + "DDG loss: 0.01460045668016355\n", + "beta: 0.05\n", + "New evaluation:\n", + "logZ_P A1 MD -1.1102230246251565e-16\n", + "logZ_P A1 MS 0.0\n", + "DDG A1: 1.7104488457556373\n", + "logZ_P A2 MD 0.0\n", + "logZ_P A2 MS 0.0\n", + "DDG A2: 1.0928541288835474\n", + "logZ_P A3 MD 0.0\n", + "logZ_P A3 MS 0.0\n", + "DDG A3: 3.581180450804952\n", + "logZ_P A4 MD 0.0\n", + "logZ_P A4 MS -2.2204460492503136e-16\n", + "DDG A4: -2.352317534738276\n", + "logZ_P A5 MD 0.0\n", + "logZ_P A5 MS 0.0\n", + "DDG A5: -0.898174253203229\n", + "DDG loss: 17.239715782404367\n", + "loss: 17.239715782404367\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-1.11022302e-16, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(0., dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(1.71044885, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(0., dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(0., dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.09285413, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(0., dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(0., dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(3.58118045, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(0., dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-2.22044605e-16, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.35231753, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(0., dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(0., dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.89817425, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(17.23971578, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ -59.13012539 13.42119932 -159.92372304 4.94716807 -214.32616084\n", + " 17.13657393] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD 1006.7577376784201\n", + "logZ_P A1 MS 939.7778109380298\n", + "DDG A1: -164.13184976345045\n", + "logZ_P A2 MD 974.8972355044261\n", + "logZ_P A2 MS 943.2582091009476\n", + "DDG A2: -77.2453752461291\n", + "logZ_P A3 MD 990.5815404433174\n", + "logZ_P A3 MS 935.1601483420638\n", + "DDG A3: -133.64218639189883\n", + "logZ_P A4 MD 959.0058460528106\n", + "logZ_P A4 MS 944.7166389943978\n", + "DDG A4: -37.7323942113684\n", + "logZ_P A5 MD 929.5784480542366\n", + "logZ_P A5 MS 954.2829294045306\n", + "DDG A5: 60.27012157012479\n", + "DDG loss: 30084.68414309839\n", + "loss: 30101.356995728995\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(1006.75773768, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(939.77781094, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(-164.13184976, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(974.8972355, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(943.2582091, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(-77.24537525, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(990.58154044, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(935.16014834, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(-133.64218639, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(959.00584605, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(944.71663899, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-37.73239421, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(929.57844805, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(954.2829294, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(60.27012157, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(30084.6841431, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ -2392.86026967 -28238.51400828 95398.66968485 28304.05146465\n", + " 126498.84785266 775.45038271] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD 40.16173832156186\n", + "logZ_P A1 MS 41.44007582471252\n", + "DDG A1: 4.875612503556653\n", + "logZ_P A2 MD 34.9026403662396\n", + "logZ_P A2 MS 40.093666749395624\n", + "DDG A2: 13.945835453577875\n", + "logZ_P A3 MD 35.54484414501008\n", + "logZ_P A3 MS 40.69287258215792\n", + "DDG A3: 16.327698861183013\n", + "logZ_P A4 MD 40.03506014659668\n", + "logZ_P A4 MS 44.57146189413153\n", + "DDG A4: 8.87981319215802\n", + "logZ_P A5 MD 38.182032895047314\n", + "logZ_P A5 MS 40.562491238614335\n", + "DDG A5: 4.995840605468715\n", + "DDG loss: 205.7371108355323\n", + "loss: 209.8835462043982\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(40.16173832, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(41.44007582, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(4.8756125, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(34.90264037, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(40.09366675, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(13.94583545, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(35.54484415, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(40.69287258, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(16.32769886, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(40.03506015, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(44.57146189, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(8.87981319, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(38.1820329, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(40.56249124, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(4.99584061, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(205.73711084, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 278.55728611 -49.38491877 93.74425025 387.99235074 1704.29497528\n", + " -39.48477395] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -2.0092775806637393\n", + "logZ_P A1 MS -1.7748150718932165\n", + "DDG A1: 2.290978017471444\n", + "logZ_P A2 MD -2.169996420819434\n", + "logZ_P A2 MS -1.7864061320836635\n", + "DDG A2: 2.0426236837932903\n", + "logZ_P A3 MD -2.1550293846062347\n", + "logZ_P A3 MS -1.8118083141256183\n", + "DDG A3: 4.430995821314976\n", + "logZ_P A4 MD -1.8754676078551835\n", + "logZ_P A4 MS -1.7768820981724167\n", + "DDG A4: -2.108219812763754\n", + "logZ_P A5 MD -1.9085592395577247\n", + "logZ_P A5 MS -1.7450732790350156\n", + "DDG A5: -0.49338301494900805\n", + "DDG loss: 12.461323907327904\n", + "loss: 12.545420302097018\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-2.00927758, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-1.77481507, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(2.29097802, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-2.16999642, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-1.78640613, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(2.04262368, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-2.15502938, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-1.81180831, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(4.43099582, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-1.87546761, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-1.7768821, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.10821981, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-1.90855924, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-1.74507328, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.49338301, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(12.46132391, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ -46.07543241 -0.49555419 -97.92853894 10.72729267 -127.66606571\n", + " 12.45457878] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -6.025215557786696\n", + "logZ_P A1 MS -4.79778014406011\n", + "DDG A1: 4.749578930142654\n", + "logZ_P A2 MD -5.848495475758096\n", + "logZ_P A2 MS -4.960522390378229\n", + "DDG A2: 3.291475488284103\n", + "logZ_P A3 MD -6.591877351648433\n", + "logZ_P A3 MS -4.728241543798406\n", + "DDG A3: 8.195542711041629\n", + "logZ_P A4 MD -4.826941880788123\n", + "logZ_P A4 MS -5.019925242985215\n", + "DDG A4: -2.8301443395382537\n", + "logZ_P A5 MD -5.207331381818458\n", + "logZ_P A5 MS -4.925767752570657\n", + "DDG A5: -0.20102270718567872\n", + "DDG loss: 4.2463708823426325\n", + "loss: 5.55095244934295\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-6.02521556, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-4.79778014, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(4.74957893, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-5.84849548, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-4.96052239, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(3.29147549, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-6.59187735, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-4.72824154, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(8.19554271, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-4.82694188, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-5.01992524, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.83014434, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-5.20733138, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-4.92576775, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.20102271, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(4.24637088, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 2.62037237 34.23798364 93.07676166 -4.1631468 21.71887383 -2.24224388] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD 48.66552893708805\n", + "logZ_P A1 MS 54.933782783116605\n", + "DDG A1: 17.230645368522346\n", + "logZ_P A2 MD 47.373827817324084\n", + "logZ_P A2 MS 54.51861049968357\n", + "DDG A2: 18.78333605040563\n", + "logZ_P A3 MD 48.02216896119212\n", + "logZ_P A3 MS 52.43858893584032\n", + "DDG A3: 14.516236308033895\n", + "logZ_P A4 MD 53.922581606764666\n", + "logZ_P A4 MS 53.72576145702958\n", + "DDG A4: -2.8396442254823566\n", + "logZ_P A5 MD 51.45572334962848\n", + "logZ_P A5 MS 51.497732842014784\n", + "DDG A5: -0.794158750054735\n", + "DDG loss: 233.6279231650469\n", + "loss: 237.71667970934445\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(48.66552894, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(54.93378278, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(17.23064537, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(47.37382782, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(54.5186105, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(18.78333605, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(48.02216896, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(52.43858894, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(14.51623631, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(53.92258161, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(53.72576146, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.83964423, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(51.45572335, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(51.49773284, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.79415875, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(233.62792317, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 626.51614685 373.20793088 22.53913135 150.97589463 2180.17182258\n", + " -70.1632581 ] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -5.418766075858573\n", + "logZ_P A1 MS -4.031897697844633\n", + "DDG A1: 5.144334949718162\n", + "logZ_P A2 MD -5.202993376258711\n", + "logZ_P A2 MS -4.2934271455266275\n", + "DDG A2: 3.344940116176183\n", + "logZ_P A3 MD -5.911375494284083\n", + "logZ_P A3 MS -4.0703826723621575\n", + "DDG A3: 8.13947867788365\n", + "logZ_P A4 MD -4.13744036501191\n", + "logZ_P A4 MS -4.318612934010783\n", + "DDG A4: -2.80090081557949\n", + "logZ_P A5 MD -4.584420285409921\n", + "logZ_P A5 MS -4.271372223717211\n", + "DDG A5: -0.12306725245207507\n", + "DDG loss: 3.849581903564415\n", + "loss: 5.23828198799094\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-5.41876608, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-4.0318977, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(5.14433495, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-5.20299338, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-4.29342715, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(3.34494012, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-5.91137549, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-4.07038267, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(8.13947868, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-4.13744037, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-4.31861293, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.80090082, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-4.58442029, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-4.27137222, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.12306725, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(3.8495819, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [11.74957103 42.05879392 89.92740727 2.80239076 54.72128861 -3.01352316] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -6.849203897428949\n", + "logZ_P A1 MS -5.474501665877106\n", + "DDG A1: 5.11421157107802\n", + "logZ_P A2 MD -6.502909849998064\n", + "logZ_P A2 MS -5.644306557234881\n", + "DDG A2: 3.2187558817651754\n", + "logZ_P A3 MD -7.203582820687382\n", + "logZ_P A3 MS -5.442958887080728\n", + "DDG A3: 7.940485310415023\n", + "logZ_P A4 MD -5.498759939460715\n", + "logZ_P A4 MS -5.67719282703719\n", + "DDG A4: -2.794117364377634\n", + "logZ_P A5 MD -5.896444046782438\n", + "logZ_P A5 MS -5.633552696396789\n", + "DDG A5: -0.2472552696483749\n", + "DDG loss: 3.3080507295889365\n", + "loss: 4.653607558614265\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-6.8492039, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-5.47450167, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(5.11421157, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-6.50290985, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-5.64430656, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(3.21875588, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-7.20358282, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-5.44295889, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(7.94048531, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-5.49875994, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-5.67719283, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.79411736, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-5.89644405, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-5.6335527, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.24725527, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(3.30805073, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 7.89172336 34.56666025 75.43238157 1.0870368 38.82373968 -2.31484544] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -3.5075371541264806\n", + "logZ_P A1 MS -2.02473283292667\n", + "DDG A1: 5.381872345046362\n", + "logZ_P A2 MD -2.724861967051572\n", + "logZ_P A2 MS -1.8484513379949377\n", + "DDG A2: 3.262846846427743\n", + "logZ_P A3 MD -3.6304641244124802\n", + "logZ_P A3 MS -1.9261486368578629\n", + "DDG A3: 7.8010655979902\n", + "logZ_P A4 MD -1.8382075925744736\n", + "logZ_P A4 MS -1.9098770096597484\n", + "DDG A4: -2.5297710114414165\n", + "logZ_P A5 MD -2.113095288352018\n", + "logZ_P A5 MS -1.9505008248022522\n", + "DDG A5: -0.4955903614540083\n", + "DDG loss: 2.614215259704949\n", + "loss: 4.195037119832432\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-3.50753715, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-2.02473283, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(5.38187235, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-2.72486197, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-1.84845134, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(3.26284685, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-3.63046412, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-1.92614864, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(7.8010656, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-1.83820759, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-1.90987701, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.52977101, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-2.11309529, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-1.95050082, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.49559036, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(2.61421526, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [16.47865645 41.5558382 67.94333626 -2.438774 18.42079797 -2.65928752] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -7.367654574421858\n", + "logZ_P A1 MS -5.826881202514794\n", + "DDG A1: 5.52540371459753\n", + "logZ_P A2 MD -6.435931464845293\n", + "logZ_P A2 MS -5.596893391224783\n", + "DDG A2: 3.1703123991679414\n", + "logZ_P A3 MD -7.25728754844869\n", + "logZ_P A3 MS -5.713900047331695\n", + "DDG A3: 7.402607903570634\n", + "logZ_P A4 MD -5.612101711699146\n", + "logZ_P A4 MS -5.703167560349938\n", + "DDG A4: -2.5777965759976564\n", + "logZ_P A5 MD -5.849543558719291\n", + "logZ_P A5 MS -5.754244436469541\n", + "DDG A5: -0.6622136265128686\n", + "DDG loss: 1.9682211820211184\n", + "loss: 3.435280360097982\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-7.36765457, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-5.8268812, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(5.52540371, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-6.43593146, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-5.59689339, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(3.1703124, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-7.25728755, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-5.71390005, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(7.4026079, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-5.61210171, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-5.70316756, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.57779658, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-5.84954356, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-5.75424444, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.66221363, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(1.96822118, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [13.3258877 29.83314636 45.28705565 -1.62832849 14.02616033 -1.97470831] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -12.642816043302192\n", + "logZ_P A1 MS -11.14581991098726\n", + "DDG A1: 5.417011269367412\n", + "logZ_P A2 MD -11.649660774674336\n", + "logZ_P A2 MS -10.9142366808416\n", + "DDG A2: 2.9137641852133958\n", + "logZ_P A3 MD -12.238574708936376\n", + "logZ_P A3 MS -11.02135811583311\n", + "DDG A3: 6.595008735328623\n", + "logZ_P A4 MD -10.910518104190709\n", + "logZ_P A4 MS -11.019491376484067\n", + "DDG A4: -2.6221353569366226\n", + "logZ_P A5 MD -11.12748579984723\n", + "logZ_P A5 MS -11.11577944005863\n", + "DDG A5: -0.8691893063666444\n", + "DDG loss: 1.6065361135974283\n", + "loss: 2.6690277454987252\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-12.64281604, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-11.14581991, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(5.41701127, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-11.64966077, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-10.91423668, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(2.91376419, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-12.23857471, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-11.02135812, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(6.59500874, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-10.9105181, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-11.01949138, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.62213536, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-11.1274858, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-11.11577944, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.86918931, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(1.60653611, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [0.01997605 6.20715507 2.60916799 2.34355913 3.48779095 0.33578161] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -20.68380778711727\n", + "logZ_P A1 MS -19.097500026018658\n", + "DDG A1: 5.638146862235795\n", + "logZ_P A2 MD -19.570680419609786\n", + "logZ_P A2 MS -18.811554685627353\n", + "DDG A2: 2.972449446224043\n", + "logZ_P A3 MD -20.116012475794953\n", + "logZ_P A3 MS -18.96154909965536\n", + "DDG A3: 6.4396317701265735\n", + "logZ_P A4 MD -18.83798250048572\n", + "logZ_P A4 MS -18.96192781150869\n", + "DDG A4: -2.6592061248311367\n", + "logZ_P A5 MD -18.975193382712675\n", + "logZ_P A5 MS -19.05162149498281\n", + "DDG A5: -1.0874102591840864\n", + "DDG loss: 1.4469380744635079\n", + "loss: 2.5393073196472917\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-20.68380779, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-19.09750003, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(5.63814686, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-19.57068042, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-18.81155469, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(2.97244945, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-20.11601248, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-18.9615491, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(6.43963177, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-18.8379825, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-18.96192781, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.65920612, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-18.97519338, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-19.05162149, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.08741026, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(1.44693807, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 1.3067808 3.25770331 -4.01031269 0.18509973 -2.59553787 0.09129878] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -22.65162485153275\n", + "logZ_P A1 MS -21.081844922048198\n", + "DDG A1: 5.597223951159357\n", + "logZ_P A2 MD -21.55844710318818\n", + "logZ_P A2 MS -20.794981437676693\n", + "DDG A2: 2.9831951166899957\n", + "logZ_P A3 MD -22.087705821687265\n", + "logZ_P A3 MS -20.95121910271376\n", + "DDG A3: 6.39512156698334\n", + "logZ_P A4 MD -20.82018562476347\n", + "logZ_P A4 MS -20.950097904321833\n", + "DDG A4: -2.6739803389247965\n", + "logZ_P A5 MD -20.945577827029716\n", + "logZ_P A5 MS -21.043571839934337\n", + "DDG A5: -1.1408074291550714\n", + "DDG loss: 1.490151488636843\n", + "loss: 2.5133527580818917\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-22.65162485, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-21.08184492, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(5.59722395, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-21.5584471, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-20.79498144, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(2.98319512, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-22.08770582, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-20.9512191, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(6.39512157, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-20.82018562, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-20.9500979, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.67398034, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-20.94557783, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-21.04357184, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.14080743, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(1.49015149, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 0.10516278 1.75092586 -5.34037501 -0.07391697 -4.88864206 0.23829513] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -26.279016275587857\n", + "logZ_P A1 MS -24.734123732020144\n", + "DDG A1: 5.535602783629294\n", + "logZ_P A2 MD -25.23247032390507\n", + "logZ_P A2 MS -24.44379069638667\n", + "DDG A2: 3.045624886619119\n", + "logZ_P A3 MD -25.73786304821048\n", + "logZ_P A3 MS -24.621798039095907\n", + "DDG A3: 6.344557413372613\n", + "logZ_P A4 MD -24.46564924048612\n", + "logZ_P A4 MS -24.607361441405736\n", + "DDG A4: -2.7031969442152746\n", + "logZ_P A5 MD -24.569007706035755\n", + "logZ_P A5 MS -24.71200313806799\n", + "DDG A5: -1.2522309429150118\n", + "DDG loss: 1.6037445340977416\n", + "loss: 2.4760893898705074\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-26.27901628, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-24.73412373, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(5.53560278, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-25.23247032, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-24.4437907, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(3.04562489, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-25.73786305, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-24.62179804, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(6.34455741, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-24.46564924, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-24.60736144, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.70319694, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-24.56900771, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-24.71200314, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.25223094, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(1.60374453, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [-1.14597119 -0.47533207 -5.05409708 -0.46761273 -6.70243356 0.33598607] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -29.37196810067747\n", + "logZ_P A1 MS -27.837768801529627\n", + "DDG A1: 5.509126310445662\n", + "logZ_P A2 MD -28.37950132115933\n", + "logZ_P A2 MS -27.560819839905992\n", + "DDG A2: 3.119909476466842\n", + "logZ_P A3 MD -28.86158165345933\n", + "logZ_P A3 MS -27.738047789780538\n", + "DDG A3: 6.363050297273629\n", + "logZ_P A4 MD -27.573541415417292\n", + "logZ_P A4 MS -27.721210838812496\n", + "DDG A4: -2.7179470270648625\n", + "logZ_P A5 MD -27.662725985139335\n", + "logZ_P A5 MS -27.828215620328\n", + "DDG A5: -1.3079265899303596\n", + "DDG loss: 1.6929707220140828\n", + "loss: 2.465404014770296\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-29.3719681, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-27.8377688, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(5.50912631, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-28.37950132, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-27.56081984, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(3.11990948, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-28.86158165, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-27.73804779, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(6.3630503, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-27.57354142, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-27.72121084, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.71794703, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-27.66272599, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-27.82821562, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.30792659, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(1.69297072, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [-1.15565601 -1.12131459 -2.16836721 -0.36209844 -3.66944378 0.20544741] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -28.958688092585582\n", + "logZ_P A1 MS -27.419339536524664\n", + "DDG A1: 5.521875870562463\n", + "logZ_P A2 MD -27.962793602900245\n", + "logZ_P A2 MS -27.141380868279427\n", + "DDG A2: 3.1266720598047018\n", + "logZ_P A3 MD -28.446344379873107\n", + "logZ_P A3 MS -27.31814486986016\n", + "DDG A3: 6.3746024375970105\n", + "logZ_P A4 MD -27.154889094752644\n", + "logZ_P A4 MS -27.301482115100583\n", + "DDG A4: -2.715281853119801\n", + "logZ_P A5 MD -27.246887935403485\n", + "logZ_P A5 MS -27.408125615609006\n", + "DDG A5: -1.2973987493920882\n", + "DDG loss: 1.6877529969271323\n", + "loss: 2.4640196827910574\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-28.95868809, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-27.41933954, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(5.52187587, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-27.9627936, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-27.14138087, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(3.12667206, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-28.44634438, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-27.31814487, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(6.37460244, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-27.15488909, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-27.30148212, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.71528185, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-27.24688794, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-27.40812562, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.29739875, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(1.687753, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [-0.74963363 -0.6599201 -1.58936012 -0.20388128 -2.34280613 0.14427492] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -27.70344932700533\n", + "logZ_P A1 MS -26.154108707512016\n", + "DDG A1: 5.546616219621101\n", + "logZ_P A2 MD -26.701109638203533\n", + "logZ_P A2 MS -25.87036653244867\n", + "DDG A2: 3.1497740587325875\n", + "logZ_P A3 MD -27.188398029123434\n", + "logZ_P A3 MS -26.051826962717715\n", + "DDG A3: 6.395330411225449\n", + "logZ_P A4 MD -25.885564641101002\n", + "logZ_P A4 MS -26.030487713644995\n", + "DDG A4: -2.7111470623571576\n", + "logZ_P A5 MD -25.98262487598512\n", + "logZ_P A5 MS -26.138897840799007\n", + "DDG A5: -1.2851061140824307\n", + "DDG loss: 1.6913555948847472\n", + "loss: 2.462440185395725\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-27.70344933, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-26.15410871, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(5.54661622, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-26.70110964, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-25.87036653, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(3.14977406, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-27.18839803, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-26.05182696, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(6.39533041, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-25.88556464, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-26.03048771, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.71114706, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-25.98262488, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-26.13889784, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.28510611, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(1.69135559, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 0.12289303 0.13014463 -0.17316968 0.07931771 0.31326406 0.00915582] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -27.166917927469232\n", + "logZ_P A1 MS -25.616936479480476\n", + "DDG A1: 5.548202910975762\n", + "logZ_P A2 MD -26.165461696667013\n", + "logZ_P A2 MS -25.332797889887438\n", + "DDG A2: 3.1545297144697835\n", + "logZ_P A3 MD -26.65212186862451\n", + "logZ_P A3 MS -25.514118066528106\n", + "DDG A3: 6.398877864795654\n", + "logZ_P A4 MD -25.347286890510343\n", + "logZ_P A4 MS -25.492094721149186\n", + "DDG A4: -2.7108617234000785\n", + "logZ_P A5 MD -25.445647265951507\n", + "logZ_P A5 MS -25.60076128833908\n", + "DDG A5: -1.2822365726348044\n", + "DDG loss: 1.695708374726767\n", + "loss: 2.462116624096147\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-27.16691793, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-25.61693648, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(5.54820291, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-26.1654617, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-25.33279789, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(3.15452971, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-26.65212187, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-25.51411807, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(6.39887786, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-25.34728689, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-25.49209472, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.71086172, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-25.44564727, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-25.60076129, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.28223657, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(1.69570837, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 0.23303732 0.25669433 0.11076444 0.11680377 0.70586022 -0.01035321] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -26.191837643371947\n", + "logZ_P A1 MS -24.64143273940921\n", + "DDG A1: 5.549251387967354\n", + "logZ_P A2 MD -25.192320912117786\n", + "logZ_P A2 MS -24.357120924912433\n", + "DDG A2: 3.1608092972040107\n", + "logZ_P A3 MD -25.676793617198275\n", + "logZ_P A3 MS -24.537835543904627\n", + "DDG A3: 6.401240640280067\n", + "logZ_P A4 MD -24.36982716408726\n", + "logZ_P A4 MS -24.514723040859504\n", + "DDG A4: -2.711079725626375\n", + "logZ_P A5 MD -24.470010266312517\n", + "logZ_P A5 MS -24.623917085214938\n", + "DDG A5: -1.2792475368056049\n", + "DDG loss: 1.7037196049587433\n", + "loss: 2.4615045184748783\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-26.19183764, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-24.64143274, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(5.54925139, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-25.19232091, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-24.35712092, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(3.1608093, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-25.67679362, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-24.53783554, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(6.40124064, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-24.36982716, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-24.51472304, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.71107973, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-24.47001027, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-24.62391709, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.27924754, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(1.7037196, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 0.33266316 0.37051573 0.4075788 0.1426641 1.04898403 -0.02949793] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -24.32910349923182\n", + "logZ_P A1 MS -22.77838958250043\n", + "DDG A1: 5.550016503582575\n", + "logZ_P A2 MD -23.33354481918171\n", + "logZ_P A2 MS -22.49443389127174\n", + "DDG A2: 3.1704927863886354\n", + "logZ_P A3 MD -23.81281067122965\n", + "logZ_P A3 MS -22.67341256641339\n", + "DDG A3: 6.402330158329991\n", + "logZ_P A4 MD -22.503311617654205\n", + "logZ_P A4 MS -22.648557026645094\n", + "DDG A4: -2.711945167399716\n", + "logZ_P A5 MD -22.606494546014915\n", + "logZ_P A5 MS -22.75873732320806\n", + "DDG A5: -1.2751273695334728\n", + "DDG loss: 1.7185024968995066\n", + "loss: 2.4603724622720664\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-24.3291035, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-22.77838958, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(5.5500165, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-23.33354482, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-22.49443389, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(3.17049279, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-23.81281067, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-22.67341257, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(6.40233016, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-22.50331162, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-22.64855703, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.71194517, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-22.60649455, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-22.75873732, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.27512737, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(1.7185025, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 0.44027807 0.49406292 0.77920502 0.16864924 1.43610274 -0.05232999] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -20.632376259792093\n", + "logZ_P A1 MS -19.081374012813292\n", + "DDG A1: 5.550730409275139\n", + "logZ_P A2 MD -19.644672415976224\n", + "logZ_P A2 MS -18.799186452268906\n", + "DDG A2: 3.186277375022868\n", + "logZ_P A3 MD -20.11243081722754\n", + "logZ_P A3 MS -18.973686165968985\n", + "DDG A3: 6.400712207321118\n", + "logZ_P A4 MD -18.80007686624505\n", + "logZ_P A4 MS -18.946175187191848\n", + "DDG A4: -2.714056977402531\n", + "logZ_P A5 MD -18.908238951471656\n", + "logZ_P A5 MS -19.058193586332735\n", + "DDG A5: -1.2694619291192506\n", + "DDG loss: 1.7453060960659974\n", + "loss: 2.4585032143856083\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-20.63237626, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-19.08137401, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(5.55073041, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-19.64467242, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-18.79918645, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(3.18627738, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-20.11243082, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-18.97368617, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(6.40071221, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-18.80007687, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-18.94617519, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.71405698, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-18.90823895, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-19.05819359, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.26946193, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(1.7453061, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 0.55541709 0.61651404 1.27687225 0.20189938 1.91815193 -0.08183321] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -13.898074314965429\n", + "logZ_P A1 MS -12.346477383642926\n", + "DDG A1: 5.552202847710165\n", + "logZ_P A2 MD -12.923751557758472\n", + "logZ_P A2 MS -12.070015382504202\n", + "DDG A2: 3.2067048988131535\n", + "logZ_P A3 MD -13.36863049748111\n", + "logZ_P A3 MS -12.233501844676164\n", + "DDG A3: 6.391758995149976\n", + "logZ_P A4 MD -12.055868870354495\n", + "logZ_P A4 MS -12.203888233312666\n", + "DDG A4: -2.718813477422731\n", + "logZ_P A5 MD -12.170845809859538\n", + "logZ_P A5 MS -12.318688700279836\n", + "DDG A5: -1.2642332498838742\n", + "DDG loss: 1.7843687762199556\n", + "loss: 2.4568970646430333\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-13.89807431, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-12.34647738, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(5.55220285, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-12.92375156, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-12.07001538, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(3.2067049, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-13.3686305, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-12.23350184, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(6.391759, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-12.05586887, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-12.20388823, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.71881348, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-12.17084581, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-12.3186887, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.26423325, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(1.78436878, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 0.58139499 0.6111985 1.71641838 0.21583712 2.22755899 -0.10763497] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -14.179977281128844\n", + "logZ_P A1 MS -12.628773038490966\n", + "DDG A1: 5.551230550527028\n", + "logZ_P A2 MD -13.203687269728352\n", + "logZ_P A2 MS -12.353816517797119\n", + "DDG A2: 3.1971341106652846\n", + "logZ_P A3 MD -13.64736175190188\n", + "logZ_P A3 MS -12.515617916781109\n", + "DDG A3: 6.383378186563985\n", + "logZ_P A4 MD -12.339155158496567\n", + "logZ_P A4 MS -12.487886560776957\n", + "DDG A4: -2.720576486784522\n", + "logZ_P A5 MD -12.453596265556317\n", + "logZ_P A5 MS -12.602060106418907\n", + "DDG A5: -1.2657707231790014\n", + "DDG loss: 1.7764110543223013\n", + "loss: 2.456265664677764\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-14.17997728, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-12.62877304, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(5.55123055, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-13.20368727, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-12.35381652, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(3.19713411, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-13.64736175, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-12.51561792, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(6.38337819, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-12.33915516, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-12.48788656, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.72057649, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-12.45359627, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-12.60206011, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.26577072, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(1.77641105, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 0.38282335 0.4549925 1.08860749 0.0906282 1.27013835 -0.07035063] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -13.716289126514651\n", + "logZ_P A1 MS -12.16689725980027\n", + "DDG A1: 5.54674310774046\n", + "logZ_P A2 MD -12.740901228919942\n", + "logZ_P A2 MS -11.894344767911262\n", + "DDG A2: 3.1889279263410253\n", + "logZ_P A3 MD -13.178415491896367\n", + "logZ_P A3 MS -12.054201835730026\n", + "DDG A3: 6.364733463472827\n", + "logZ_P A4 MD -11.877052776348489\n", + "logZ_P A4 MS -12.026913305073341\n", + "DDG A4: -2.7233722038609893\n", + "logZ_P A5 MD -11.990545288979378\n", + "logZ_P A5 MS -12.141423688310978\n", + "DDG A5: -1.271749169948278\n", + "DDG loss: 1.7791065551045266\n", + "loss: 2.4558795340486057\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-13.71628913, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-12.16689726, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(5.54674311, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-12.74090123, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-11.89434477, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(3.18892793, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-13.17841549, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-12.05420184, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(6.36473346, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-11.87705278, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-12.02691331, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.7233722, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-11.99054529, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-12.14142369, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.27174917, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(1.77910656, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 0.0331586 0.05721395 0.13375079 -0.02889976 0.01084667 -0.0086811 ] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -13.73027709271744\n", + "logZ_P A1 MS -12.181303579305073\n", + "DDG A1: 5.545707264964684\n", + "logZ_P A2 MD -12.754998438609757\n", + "logZ_P A2 MS -11.908674693414891\n", + "DDG A2: 3.188351721986035\n", + "logZ_P A3 MD -13.192077797985732\n", + "logZ_P A3 MS -12.068951952784522\n", + "DDG A3: 6.362040043523161\n", + "logZ_P A4 MD -11.891409596738482\n", + "logZ_P A4 MS -12.041194509183299\n", + "DDG A4: -2.7231849779516386\n", + "logZ_P A5 MD -12.004815648385602\n", + "logZ_P A5 MS -12.155936375968379\n", + "DDG A5: -1.2723491746981888\n", + "DDG loss: 1.7807150192968715\n", + "loss: 2.4558700139142964\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-13.73027709, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-12.18130358, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(5.54570726, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-12.75499844, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-11.90867469, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(3.18835172, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-13.1920778, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-12.06895195, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(6.36204004, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-11.8914096, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-12.04119451, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.72318498, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-12.00481565, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-12.15593638, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.27234917, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(1.78071502, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [-0.00378157 0.00413962 0.01804145 -0.01248053 -0.04068558 -0.00021136] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -13.720377758469736\n", + "logZ_P A1 MS -12.171355943708816\n", + "DDG A1: 5.545826859103675\n", + "logZ_P A2 MD -12.745134074261568\n", + "logZ_P A2 MS -11.898725711553665\n", + "DDG A2: 3.18856123494832\n", + "logZ_P A3 MD -13.182006521511935\n", + "logZ_P A3 MS -12.059104872458326\n", + "DDG A3: 6.361484933861707\n", + "logZ_P A4 MD -11.88144531071728\n", + "logZ_P A4 MS -12.031189190631574\n", + "DDG A4: -2.7230833814060755\n", + "logZ_P A5 MD -11.994874127765073\n", + "logZ_P A5 MS -12.1460160673493\n", + "DDG A5: -1.2724016956137956\n", + "DDG loss: 1.7813013422635335\n", + "loss: 2.455869425733942\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-13.72037776, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-12.17135594, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(5.54582686, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-12.74513407, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-11.89872571, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(3.18856123, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-13.18200652, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-12.05910487, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(6.36148493, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-11.88144531, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-12.03118919, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.72308338, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-11.99487413, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-12.14601607, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.2724017, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(1.78130134, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [-0.00293348 -0.00265241 0.0024921 -0.00279542 -0.01226331 0.00023153] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -13.717178100760249\n", + "logZ_P A1 MS -12.168113860128967\n", + "DDG A1: 5.545931905558691\n", + "logZ_P A2 MD -12.741898553326552\n", + "logZ_P A2 MS -11.895488561542274\n", + "DDG A2: 3.1885652685414003\n", + "logZ_P A3 MD -13.17874537571326\n", + "logZ_P A3 MS -12.055865392809853\n", + "DDG A3: 6.361431288473803\n", + "logZ_P A4 MD -11.878208690091048\n", + "logZ_P A4 MS -12.02793780102121\n", + "DDG A4: -2.72304681340137\n", + "logZ_P A5 MD -11.991668684582867\n", + "logZ_P A5 MS -12.142774937569373\n", + "DDG A5: -1.2723133355978242\n", + "DDG loss: 1.7812973776417549\n", + "loss: 2.45586939624509\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-13.7171781, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-12.16811386, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(5.54593191, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-12.74189855, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-11.89548856, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(3.18856527, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-13.17874538, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-12.05586539, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(6.36143129, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-11.87820869, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-12.0279378, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.72304681, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-11.99166868, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-12.14277494, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.27231334, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(1.78129738, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [-0.0009876 -0.0008536 0.00017272 -0.00043749 -0.0029159 0.00012236] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -13.717082655130724\n", + "logZ_P A1 MS -12.167995334491133\n", + "DDG A1: 5.5459890516592525\n", + "logZ_P A2 MD -12.741787636257783\n", + "logZ_P A2 MS -11.895373684880353\n", + "DDG A2: 3.1885750724940602\n", + "logZ_P A3 MD -13.17862623272436\n", + "logZ_P A3 MS -12.055747468409207\n", + "DDG A3: 6.361428271249254\n", + "logZ_P A4 MD -11.87809357895228\n", + "logZ_P A4 MS -12.027820078905405\n", + "DDG A4: -2.723040348622232\n", + "logZ_P A5 MD -11.991560669652609\n", + "logZ_P A5 MS -12.14265891355816\n", + "DDG A5: -1.2722935051133735\n", + "DDG loss: 1.7812781490300027\n", + "loss: 2.455869393617138\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-13.71708266, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-12.16799533, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(5.54598905, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-12.74178764, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-11.89537368, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(3.18857507, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-13.17862623, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-12.05574747, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(6.36142827, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-11.87809358, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-12.02782008, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.72304035, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-11.99156067, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-12.14265891, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.27229351, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(1.78127815, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 1.21652432e-05 -5.72271214e-05 2.69491963e-05 2.41773488e-05\n", + " 1.33473777e-04 -3.40887999e-06] \n", + "\n", + "logZ_P A1 MD -13.717082655130724\n", + "logZ_P A1 MS -12.167995334491133\n", + "DDG A1: 5.5459890516592525\n", + "logZ_P A2 MD -12.741787636257783\n", + "logZ_P A2 MS -11.895373684880353\n", + "DDG A2: 3.1885750724940602\n", + "logZ_P A3 MD -13.17862623272436\n", + "logZ_P A3 MS -12.055747468409207\n", + "DDG A3: 6.361428271249254\n", + "logZ_P A4 MD -11.87809357895228\n", + "logZ_P A4 MS -12.027820078905405\n", + "DDG A4: -2.723040348622232\n", + "logZ_P A5 MD -11.991560669652609\n", + "logZ_P A5 MS -12.14265891355816\n", + "DDG A5: -1.2722935051133735\n", + "DDG loss: 1.7812781490300027\n", + "beta: 0.1\n", + "New evaluation:\n", + "logZ_P A1 MD -1.1102230246251565e-16\n", + "logZ_P A1 MS 0.0\n", + "DDG A1: 1.7104488457556373\n", + "logZ_P A2 MD 0.0\n", + "logZ_P A2 MS 0.0\n", + "DDG A2: 1.0928541288835474\n", + "logZ_P A3 MD 0.0\n", + "logZ_P A3 MS 0.0\n", + "DDG A3: 3.581180450804952\n", + "logZ_P A4 MD 0.0\n", + "logZ_P A4 MS -2.2204460492503136e-16\n", + "DDG A4: -2.352317534738276\n", + "logZ_P A5 MD 0.0\n", + "logZ_P A5 MS 0.0\n", + "DDG A5: -0.898174253203229\n", + "DDG loss: 17.239715782404367\n", + "loss: 17.239715782404367\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-1.11022302e-16, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(0., dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(1.71044885, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(0., dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(0., dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.09285413, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(0., dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(0., dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(3.58118045, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(0., dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-2.22044605e-16, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.35231753, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(0., dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(0., dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.89817425, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(17.23971578, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ -59.13012539 13.42119932 -159.92372304 4.94716807 -214.32616084\n", + " 17.13657393] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD 1006.7577376784187\n", + "logZ_P A1 MS 939.7778109380281\n", + "DDG A1: -164.1318497634513\n", + "logZ_P A2 MD 974.8972355044248\n", + "logZ_P A2 MS 943.2582091009463\n", + "DDG A2: -77.2453752461291\n", + "logZ_P A3 MD 990.5815404433158\n", + "logZ_P A3 MS 935.1601483420625\n", + "DDG A3: -133.64218639189826\n", + "logZ_P A4 MD 959.0058460528095\n", + "logZ_P A4 MS 944.7166389943962\n", + "DDG A4: -37.73239421136953\n", + "logZ_P A5 MD 929.578448054235\n", + "logZ_P A5 MS 954.2829294045292\n", + "DDG A5: 60.270121570125355\n", + "DDG loss: 30084.684143098533\n", + "loss: 30118.029848359736\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(1006.75773768, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(939.77781094, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(-164.13184976, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(974.8972355, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(943.2582091, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(-77.24537525, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(990.58154044, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(935.16014834, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(-133.64218639, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(959.00584605, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(944.71663899, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-37.73239421, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(929.57844805, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(954.2829294, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(60.27012157, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(30084.6841431, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ -2391.08828941 -28242.11323158 95398.21844273 28307.83393552\n", + " 126528.04108337 775.4479655 ] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD 40.13088967117993\n", + "logZ_P A1 MS 41.40991205616495\n", + "DDG A1: 4.877308270978545\n", + "logZ_P A2 MD 34.873709288447365\n", + "logZ_P A2 MS 40.06370506519879\n", + "DDG A2: 13.94328367212009\n", + "logZ_P A3 MD 35.51536311566076\n", + "logZ_P A3 MS 40.66253051299838\n", + "DDG A3: 16.325566926612893\n", + "logZ_P A4 MD 40.00522875509857\n", + "logZ_P A4 MS 44.54025340476778\n", + "DDG A4: 8.87640349784269\n", + "logZ_P A5 MD 38.1529519391086\n", + "logZ_P A5 MS 40.532834830995455\n", + "DDG A5: 4.9944157871086485\n", + "DDG loss: 205.63544561282953\n", + "loss: 213.92725424115076\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(40.13088967, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(41.40991206, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(4.87730827, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(34.87370929, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(40.06370507, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(13.94328367, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(35.51536312, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(40.66253051, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(16.32556693, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(40.00522876, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(44.5402534, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(8.8764035, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(38.15295194, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(40.53283483, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(4.99441579, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(205.63544561, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 279.80217631 -49.06710119 95.61126794 390.7424243 1712.74544295\n", + " -39.47858945] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -1.9696646836141674\n", + "logZ_P A1 MS -1.7415887966827182\n", + "DDG A1: 2.275164741797907\n", + "logZ_P A2 MD -2.1243858906440707\n", + "logZ_P A2 MS -1.7520024112777455\n", + "DDG A2: 2.014875623794556\n", + "logZ_P A3 MD -2.110004920106097\n", + "logZ_P A3 MS -1.776774962426213\n", + "DDG A3: 4.406257826020325\n", + "logZ_P A4 MD -1.8387787254609975\n", + "logZ_P A4 MS -1.7430468267472847\n", + "DDG A4: -2.115285353523134\n", + "logZ_P A5 MD -1.8709348202071927\n", + "logZ_P A5 MS -1.712193952716054\n", + "DDG A5: -0.5051318652951484\n", + "DDG loss: 12.565203816275167\n", + "loss: 12.724111838543761\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-1.96966468, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-1.7415888, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(2.27516474, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-2.12438589, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-1.75200241, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(2.01487562, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-2.11000492, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-1.77677496, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(4.40625783, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-1.83877873, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-1.74304683, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.11528535, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-1.87093482, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-1.71219395, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.50513187, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(12.56520382, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ -45.42170195 0.59664001 -99.2447629 13.21677887 -120.97093282\n", + " 12.58891497] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -12.62134310273869\n", + "logZ_P A1 MS -12.163562955710033\n", + "DDG A1: 2.843912489798593\n", + "logZ_P A2 MD -12.954392953092142\n", + "logZ_P A2 MS -11.992962238027113\n", + "DDG A2: 3.4733565793845385\n", + "logZ_P A3 MD -14.029827119983873\n", + "logZ_P A3 MS -11.730111866035537\n", + "DDG A3: 9.27527541958103\n", + "logZ_P A4 MD -11.977410985137588\n", + "logZ_P A4 MS -12.205037483291006\n", + "DDG A4: -2.915920744166126\n", + "logZ_P A5 MD -11.949734922172446\n", + "logZ_P A5 MS -12.019113668732535\n", + "DDG A5: -1.0699560296860133\n", + "DDG loss: 10.195551528403369\n", + "loss: 12.348623129837748\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-12.6213431, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-12.16356296, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(2.84391249, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-12.95439295, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-11.99296224, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(3.47335658, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-14.02982712, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-11.73011187, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(9.27527542, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-11.97741099, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-12.20503748, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.91592074, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-11.94973492, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-12.01911367, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.06995603, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(10.19555153, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ -34.91743741 37.09088166 167.4505381 -67.33098896 -188.69246318\n", + " -0.98038938] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -5.9228735652881745\n", + "logZ_P A1 MS -5.651098745313494\n", + "DDG A1: 2.383363300012947\n", + "logZ_P A2 MD -5.906716486743175\n", + "logZ_P A2 MS -5.569489582835818\n", + "DDG A2: 1.9278279429581815\n", + "logZ_P A3 MD -6.149249058490266\n", + "logZ_P A3 MS -5.567314517183513\n", + "DDG A3: 5.022050375080467\n", + "logZ_P A4 MD -5.641026679741061\n", + "logZ_P A4 MS -5.645922288524361\n", + "DDG A4: -2.3644390620857285\n", + "logZ_P A5 MD -5.663007375796812\n", + "logZ_P A5 MS -5.578906329050571\n", + "DDG A5: -0.6899400614595361\n", + "DDG loss: 10.374210551156906\n", + "loss: 10.460839319410297\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-5.92287357, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-5.65109875, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(2.3833633, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-5.90671649, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-5.56948958, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.92782794, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-6.14924906, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-5.56731452, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(5.02205038, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-5.64102668, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-5.64592229, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.36443906, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-5.66300738, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-5.57890633, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.68994006, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(10.37421055, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ -44.07866915 -4.73254246 -90.73240715 6.93166108 -119.40085819\n", + " 11.33761347] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -4.377932688277975\n", + "logZ_P A1 MS -3.606846658477133\n", + "DDG A1: 3.6196578555425205\n", + "logZ_P A2 MD -4.255062158588688\n", + "logZ_P A2 MS -3.5824720342065475\n", + "DDG A2: 2.7581872768537252\n", + "logZ_P A3 MD -4.847664729469686\n", + "logZ_P A3 MS -3.450812715203516\n", + "DDG A3: 7.039786038127996\n", + "logZ_P A4 MD -3.589192449796844\n", + "logZ_P A4 MS -3.6909348771343664\n", + "DDG A4: -2.604231784825993\n", + "logZ_P A5 MD -3.8738813749483483\n", + "logZ_P A5 MS -3.610042667169678\n", + "DDG A5: -0.24490961274323075\n", + "DDG loss: 5.217886172754705\n", + "loss: 6.780953887202952\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-4.37793269, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-3.60684666, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(3.61965786, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-4.25506216, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-3.58247203, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(2.75818728, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-4.84766473, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-3.45081272, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(7.03978604, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-3.58919245, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-3.69093488, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.60423178, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-3.87388137, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-3.61004267, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.24490961, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(5.21788617, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [-20.55570963 5.04767049 18.98087697 2.12122909 -26.8397621\n", + " 3.30584765] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD 12.576853446309574\n", + "logZ_P A1 MS 16.33025385684286\n", + "DDG A1: 11.00386826223606\n", + "logZ_P A2 MD 12.366173024310683\n", + "logZ_P A2 MS 14.688289372869464\n", + "DDG A2: 6.842414207915085\n", + "logZ_P A3 MD 11.875254775599696\n", + "logZ_P A3 MS 14.412963829016869\n", + "DDG A3: 9.864548067065876\n", + "logZ_P A4 MD 15.105261347748954\n", + "logZ_P A4 MS 15.33797299427446\n", + "DDG A4: -1.776123497941099\n", + "logZ_P A5 MD 13.36066013585051\n", + "logZ_P A5 MS 14.280785665910924\n", + "DDG A5: 1.3800565592263645\n", + "DDG loss: 33.112136063811334\n", + "loss: 38.90390124583714\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(12.57685345, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(16.33025386, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(11.00386826, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(12.36617302, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(14.68828937, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(6.84241421, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(11.87525478, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(14.41296383, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(9.86454807, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(15.10526135, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(15.33797299, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-1.7761235, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(13.36066014, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(14.28078567, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(1.38005656, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(33.11213606, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [266.82658699 413.29599331 104.51793645 150.15108267 920.04561644\n", + " -24.82195684] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -3.023442504863893\n", + "logZ_P A1 MS -1.9741327224508138\n", + "DDG A1: 4.3085398670104125\n", + "logZ_P A2 MD -2.8332287723979412\n", + "logZ_P A2 MS -2.0869332082377525\n", + "DDG A2: 2.9406819457441835\n", + "logZ_P A3 MD -3.3786933160253976\n", + "logZ_P A3 MS -1.9688736566892446\n", + "DDG A3: 7.071893927321261\n", + "logZ_P A4 MD -2.046249615731217\n", + "logZ_P A4 MS -2.1412512302809947\n", + "DDG A4: -2.5875415323635487\n", + "logZ_P A5 MD -2.4512120660325927\n", + "logZ_P A5 MS -2.1309436051193464\n", + "DDG A5: -0.10518954398201043\n", + "DDG loss: 4.028539506808383\n", + "loss: 6.035602220095883\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-3.0234425, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-1.97413272, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(4.30853987, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-2.83322877, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-2.08693321, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(2.94068195, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-3.37869332, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-1.96887366, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(7.07189393, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-2.04624962, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-2.14125123, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.58754153, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-2.45121207, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-2.13094361, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.10518954, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(4.02853951, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [-8.44729929 11.81298417 25.53397455 9.30303751 18.36648559 1.52848642] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -0.6807784981301657\n", + "logZ_P A1 MS 0.3871584886651114\n", + "DDG A1: 4.354660825060737\n", + "logZ_P A2 MD -0.07588898785035258\n", + "logZ_P A2 MS 0.5828103233733621\n", + "DDG A2: 2.7237936234734628\n", + "logZ_P A3 MD -0.8102857288191672\n", + "logZ_P A3 MS 0.5246286023838866\n", + "DDG A3: 6.886428334863709\n", + "logZ_P A4 MD 0.5929414050191539\n", + "logZ_P A4 MS 0.5149479120519604\n", + "DDG A4: -2.545429423325052\n", + "logZ_P A5 MD 0.33595164082493323\n", + "logZ_P A5 MS 0.4405090767813844\n", + "DDG A5: -0.6392900417750559\n", + "DDG loss: 3.0026400965742956\n", + "loss: 5.121681715200715\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-0.6807785, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(0.38715849, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(4.35466083, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-0.07588899, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(0.58281032, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(2.72379362, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-0.81028573, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(0.5246286, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(6.88642833, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(0.59294141, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(0.51494791, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.54542942, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(0.33595164, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(0.44050908, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.63929004, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(3.0026401, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ -7.54244672 11.3500553 15.20432588 4.48380978 -15.29892614\n", + " 2.22669308] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD 1.4067863057342063\n", + "logZ_P A1 MS 2.632703678215556\n", + "DDG A1: 4.745820260019455\n", + "logZ_P A2 MD 2.3936043778056995\n", + "logZ_P A2 MS 2.952816176375098\n", + "DDG A2: 2.4774625421413647\n", + "logZ_P A3 MD 1.8920556291174258\n", + "logZ_P A3 MS 2.7277902892713852\n", + "DDG A3: 5.650459469346158\n", + "logZ_P A4 MD 2.9439289367624264\n", + "logZ_P A4 MS 2.8624192775525295\n", + "DDG A4: -2.554135450941988\n", + "logZ_P A5 MD 2.7635099494562505\n", + "logZ_P A5 MS 2.6776836931760126\n", + "DDG A5: -1.110680063753109\n", + "DDG loss: 2.73565952645693\n", + "loss: 4.251394612184488\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(1.40678631, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(2.63270368, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(4.74582026, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(2.39360438, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(2.95281618, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(2.47746254, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(1.89205563, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(2.72779029, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(5.65045947, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(2.94392894, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(2.86241928, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.55413545, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(2.76350995, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(2.67768369, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.11068006, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(2.73565953, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [-15.73107887 -6.47778323 -40.47382312 3.04846321 -49.73106926\n", + " 4.37071503] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD 1.7418448594501905\n", + "logZ_P A1 MS 3.356192749307805\n", + "DDG A1: 5.707574221043084\n", + "logZ_P A2 MD 2.9413037315415664\n", + "logZ_P A2 MS 3.6457158161888614\n", + "DDG A2: 2.836978450470232\n", + "logZ_P A3 MD 2.4444174291387544\n", + "logZ_P A3 MS 3.4287139396584685\n", + "DDG A3: 6.01829861085176\n", + "logZ_P A4 MD 3.64186835524189\n", + "logZ_P A4 MS 3.597960515648049\n", + "DDG A4: -2.461033345572595\n", + "logZ_P A5 MD 3.382982096970391\n", + "logZ_P A5 MS 3.367505185344042\n", + "DDG A5: -0.9364950863900738\n", + "DDG loss: 1.6991121744776976\n", + "loss: 3.952586759942668\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(1.74184486, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(3.35619275, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(5.70757422, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(2.94130373, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(3.64571582, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(2.83697845, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(2.44441743, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(3.42871394, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(6.01829861, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(3.64186836, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(3.59796052, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.46103335, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(3.3829821, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(3.36750519, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.93649509, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(1.69911217, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 4.54631574 12.90882418 -25.07029087 2.12120029 -14.3476664\n", + " 1.0484634 ] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD 0.7282425447717227\n", + "logZ_P A1 MS 2.209117327719528\n", + "DDG A1: 5.37709480833441\n", + "logZ_P A2 MD 1.8266299592425543\n", + "logZ_P A2 MS 2.5045517772338597\n", + "DDG A2: 2.771388550230017\n", + "logZ_P A3 MD 1.3814499548696997\n", + "logZ_P A3 MS 2.3078260327893183\n", + "DDG A3: 5.87488761973395\n", + "logZ_P A4 MD 2.5143938975188522\n", + "logZ_P A4 MS 2.414939578649011\n", + "DDG A4: -2.5985664282600145\n", + "logZ_P A5 MD 2.3197508547370074\n", + "logZ_P A5 MS 2.234108846012565\n", + "DDG A5: -1.110223866804964\n", + "DDG loss: 1.9290394953574248\n", + "loss: 3.580024038156137\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(0.72824254, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(2.20911733, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(5.37709481, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(1.82662996, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(2.50455178, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(2.77138855, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(1.38144995, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(2.30782603, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(5.87488762, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(2.5143939, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(2.41493958, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.59856643, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(2.31975085, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(2.23410885, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.11022387, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(1.9290395, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ -4.34355353 3.58214305 -29.77672712 0.7422259 -29.6383303\n", + " 2.10949822] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -2.514474575881615\n", + "logZ_P A1 MS -1.0775738452240304\n", + "DDG A1: 5.26821505486385\n", + "logZ_P A2 MD -1.5956690049461422\n", + "logZ_P A2 MS -0.808734539460815\n", + "DDG A2: 3.0413038654252262\n", + "logZ_P A3 MD -1.9588865169450242\n", + "logZ_P A3 MS -0.9907818008165465\n", + "DDG A3: 5.9782077279390675\n", + "logZ_P A4 MD -0.7692305824254113\n", + "logZ_P A4 MS -0.9152960574284972\n", + "DDG A4: -2.7139756508459123\n", + "logZ_P A5 MD -0.8663616458057373\n", + "logZ_P A5 MS -1.0516960377911229\n", + "DDG A5: -1.3570622077590262\n", + "DDG loss: 2.142743021285967\n", + "loss: 3.0878138497954635\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-2.51447458, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-1.07757385, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(5.26821505, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-1.595669, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-0.80873454, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(3.04130387, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-1.95888652, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-0.9907818, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(5.97820773, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-0.76923058, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-0.91529606, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.71397565, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-0.86636165, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-1.05169604, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.35706221, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(2.14274302, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ -5.28192771 -0.70600958 -18.61358192 -1.12472168 -27.06850728\n", + " 1.58916588] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -7.359886761449954\n", + "logZ_P A1 MS -5.8731041077418045\n", + "DDG A1: 5.391722696337009\n", + "logZ_P A2 MD -6.743620341255278\n", + "logZ_P A2 MS -5.722477338378113\n", + "DDG A2: 3.6212042040074137\n", + "logZ_P A3 MD -6.955154230845501\n", + "logZ_P A3 MS -5.838554103746069\n", + "DDG A3: 6.345882365503145\n", + "logZ_P A4 MD -5.645880999084944\n", + "logZ_P A4 MS -5.784835856912081\n", + "DDG A4: -2.696369762718286\n", + "logZ_P A5 MD -5.681941352359866\n", + "logZ_P A5 MS -5.8863187906812335\n", + "DDG A5: -1.4042127904869133\n", + "DDG loss: 2.6053689087628897\n", + "loss: 3.026063181860641\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-7.35988676, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-5.87310411, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(5.3917227, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-6.74362034, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-5.72247734, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(3.6212042, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-6.95515423, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-5.8385541, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(6.34588237, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-5.645881, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-5.78483586, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.69636976, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-5.68194135, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-5.88631879, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.40421279, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(2.60536891, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [-1.18162808 -6.39637646 8.41898126 -0.62377986 7.28396342 -0.51833667] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -4.907023224899283\n", + "logZ_P A1 MS -3.4492366428928634\n", + "DDG A1: 5.319928422803499\n", + "logZ_P A2 MD -4.132047083914212\n", + "logZ_P A2 MS -3.237273420444099\n", + "DDG A2: 3.3083137196355614\n", + "logZ_P A3 MD -4.41843251379308\n", + "logZ_P A3 MS -3.386580423121785\n", + "DDG A3: 6.136046227307074\n", + "logZ_P A4 MD -3.176895818039677\n", + "logZ_P A4 MS -3.3238319935607987\n", + "DDG A4: -2.7161315053285686\n", + "logZ_P A5 MD -3.2425419386140217\n", + "logZ_P A5 MS -3.440987939206984\n", + "DDG A5: -1.3895265506714134\n", + "DDG loss: 2.30976339170946\n", + "loss: 2.948999896912292\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-4.90702322, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-3.44923664, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(5.31992842, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-4.13204708, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-3.23727342, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(3.30831372, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-4.41843251, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-3.38658042, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(6.13604623, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-3.17689582, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-3.32383199, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.71613151, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-3.24254194, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-3.44098794, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.38952655, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(2.30976339, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ -3.215456 -2.4375581 -6.52471611 -0.7576283 -11.38313378\n", + " 0.65155227] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -5.846852873884932\n", + "logZ_P A1 MS -4.370690588558091\n", + "DDG A1: 5.365426664224884\n", + "logZ_P A2 MD -5.093809130728349\n", + "logZ_P A2 MS -4.171868222555091\n", + "DDG A2: 3.375579817520527\n", + "logZ_P A3 MD -5.365400065559914\n", + "logZ_P A3 MS -4.305757838087466\n", + "DDG A3: 6.204854606026707\n", + "logZ_P A4 MD -4.1125178045406345\n", + "logZ_P A4 MS -4.255801104398224\n", + "DDG A4: -2.7070869851856947\n", + "logZ_P A5 MD -4.182018842134114\n", + "logZ_P A5 MS -4.365706272784407\n", + "DDG A5: -1.3529843314933592\n", + "DDG loss: 2.3227926073989806\n", + "loss: 2.934928183921768\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-5.84685287, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-4.37069059, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(5.36542666, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-5.09380913, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-4.17186822, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(3.37557982, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-5.36540007, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-4.30575784, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(6.20485461, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-4.1125178, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-4.2558011, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.70708699, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-4.18201884, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-4.36570627, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.35298433, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(2.32279261, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [-1.85445851 -1.61303031 -2.55354348 -0.18016201 -4.01716728 0.29442152] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -6.1266802875880115\n", + "logZ_P A1 MS -4.629311354862259\n", + "DDG A1: 5.417934323184626\n", + "logZ_P A2 MD -5.355152067538215\n", + "logZ_P A2 MS -4.425007115777586\n", + "DDG A2: 3.3958930294428535\n", + "logZ_P A3 MD -5.635075415227906\n", + "logZ_P A3 MS -4.560937539975585\n", + "DDG A3: 6.240745829929693\n", + "logZ_P A4 MD -4.367856275702637\n", + "logZ_P A4 MS -4.511766661689572\n", + "DDG A4: -2.7086396504419445\n", + "logZ_P A5 MD -4.441844191315054\n", + "logZ_P A5 MS -4.623132740593544\n", + "DDG A5: -1.3470447012167739\n", + "DDG loss: 2.2802593504937625\n", + "loss: 2.928428623877919\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-6.12668029, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-4.62931135, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(5.41793432, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-5.35515207, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-4.42500712, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(3.39589303, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-5.63507542, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-4.56093754, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(6.24074583, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-4.36785628, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-4.51176666, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.70863965, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-4.44184419, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-4.62313274, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.3470447, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(2.28025935, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [-0.66474196 -0.66146465 -0.7823732 -0.08435438 -1.03902997 0.08055638] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -6.1523098678705885\n", + "logZ_P A1 MS -4.644544036553477\n", + "DDG A1: 5.4436770440967805\n", + "logZ_P A2 MD -5.361909196405317\n", + "logZ_P A2 MS -4.431691758927252\n", + "DDG A2: 3.3960725040792323\n", + "logZ_P A3 MD -5.654290218376685\n", + "logZ_P A3 MS -4.573333446359555\n", + "DDG A3: 6.25762941831937\n", + "logZ_P A4 MD -4.377333979745408\n", + "logZ_P A4 MS -4.521730182386718\n", + "DDG A4: -2.7098425324781785\n", + "logZ_P A5 MD -4.4544936896764336\n", + "logZ_P A5 MS -4.6354446308750905\n", + "DDG A5: -1.346208783611075\n", + "DDG loss: 2.244370627006099\n", + "loss: 2.926928738770421\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-6.15230987, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-4.64454404, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(5.44367704, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-5.3619092, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-4.43169176, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(3.3960725, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-5.65429022, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-4.57333345, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(6.25762942, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-4.37733398, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-4.52173018, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.70984253, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-4.45449369, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-4.63544463, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.34620878, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(2.24437063, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [-0.01142796 0.02793035 -0.10178364 -0.05208154 -0.0843492 -0.0036627 ] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -6.123073958009125\n", + "logZ_P A1 MS -4.615688911194039\n", + "DDG A1: 5.442734221669795\n", + "logZ_P A2 MD -5.331384119637295\n", + "logZ_P A2 MS -4.401107406451773\n", + "DDG A2: 3.3962192707308962\n", + "logZ_P A3 MD -5.625864234337107\n", + "logZ_P A3 MS -4.544821880444099\n", + "DDG A3: 6.257841319044012\n", + "logZ_P A4 MD -4.3471718909326125\n", + "logZ_P A4 MS -4.491522552208172\n", + "DDG A4: -2.7097297720565447\n", + "logZ_P A5 MD -4.4238781375870495\n", + "logZ_P A5 MS -4.605858454460435\n", + "DDG A5: -1.3487575177817142\n", + "DDG loss: 2.244326765803114\n", + "loss: 2.9268590375962886\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-6.12307396, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-4.61568891, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(5.44273422, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-5.33138412, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-4.40110741, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(3.39621927, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-5.62586423, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-4.54482188, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(6.25784132, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-4.34717189, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-4.49152255, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.70972977, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-4.42387814, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-4.60585845, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.34875752, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(2.24432677, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [-0.00103788 -0.01452681 -0.05346384 -0.04517522 -0.11512023 -0.00252757] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -6.109136511685895\n", + "logZ_P A1 MS -4.602763387426905\n", + "DDG A1: 5.440228701420885\n", + "logZ_P A2 MD -5.317337869065508\n", + "logZ_P A2 MS -4.387382666590989\n", + "DDG A2: 3.395423210210451\n", + "logZ_P A3 MD -5.6130102466557625\n", + "logZ_P A3 MS -4.531742841578341\n", + "DDG A3: 6.258398545776659\n", + "logZ_P A4 MD -4.333979673823324\n", + "logZ_P A4 MS -4.478011973571306\n", + "DDG A4: -2.708941508914302\n", + "logZ_P A5 MD -4.410847848933342\n", + "logZ_P A5 MS -4.592342115430332\n", + "DDG A5: -1.34755405704976\n", + "DDG loss: 2.2449171260905194\n", + "loss: 2.92684410777053\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-6.10913651, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-4.60276339, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(5.4402287, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-5.31733787, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-4.38738267, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(3.39542321, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-5.61301025, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-4.53174284, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(6.25839855, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-4.33397967, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-4.47801197, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.70894151, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-4.41084785, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-4.59234212, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.34755406, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(2.24491713, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [-0.00470722 0.01038409 -0.02743781 -0.00074675 -0.03166477 0.0028702 ] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -6.1001410514399055\n", + "logZ_P A1 MS -4.593672992013316\n", + "DDG A1: 5.440463760895887\n", + "logZ_P A2 MD -5.3086172955070285\n", + "logZ_P A2 MS -4.378383210744424\n", + "DDG A2: 3.396113722755787\n", + "logZ_P A3 MD -5.604093456207975\n", + "logZ_P A3 MS -4.522767237928273\n", + "DDG A3: 6.2585441672654865\n", + "logZ_P A4 MD -4.324887840718037\n", + "logZ_P A4 MS -4.468950070371264\n", + "DDG A4: -2.709015615359673\n", + "logZ_P A5 MD -4.401614716257313\n", + "logZ_P A5 MS -4.583302089812723\n", + "DDG A5: -1.3480321901264127\n", + "DDG loss: 2.2456105459740314\n", + "loss: 2.9268430010742423\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-6.10014105, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-4.59367299, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(5.44046376, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-5.3086173, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-4.37838321, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(3.39611372, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-5.60409346, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-4.52276724, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(6.25854417, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-4.32488784, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-4.46895007, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.70901562, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-4.40161472, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-4.58330209, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.34803219, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(2.24561055, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [-0.00309894 -0.00781217 -0.00533509 -0.00466904 -0.0166128 0.00076052] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -6.08660671055667\n", + "logZ_P A1 MS -4.580103475241916\n", + "DDG A1: 5.440550856394966\n", + "logZ_P A2 MD -5.2951643202532725\n", + "logZ_P A2 MS -4.364870001216181\n", + "DDG A2: 3.396262862819413\n", + "logZ_P A3 MD -5.590544851751821\n", + "logZ_P A3 MS -4.5091881813673105\n", + "DDG A3: 6.258619566676995\n", + "logZ_P A4 MD -4.311341776637137\n", + "logZ_P A4 MS -4.455407411286897\n", + "DDG A4: -2.7090240461310904\n", + "logZ_P A5 MD -4.3880701956378125\n", + "logZ_P A5 MS -4.569743234939361\n", + "DDG A5: -1.3479966985138854\n", + "DDG loss: 2.245739469960341\n", + "loss: 2.926842516838153\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-6.08660671, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-4.58010348, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(5.44055086, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-5.29516432, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-4.36487, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(3.39626286, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-5.59054485, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-4.50918818, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(6.25861957, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-4.31134178, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-4.45540741, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.70902405, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-4.3880702, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-4.56974323, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.3479967, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(2.24573947, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [-0.00169977 -0.0078793 0.00076311 -0.00413108 -0.00659173 0.00014691] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -6.055290504906212\n", + "logZ_P A1 MS -4.548752236710091\n", + "DDG A1: 5.44063759780924\n", + "logZ_P A2 MD -5.263914658967558\n", + "logZ_P A2 MS -4.3335756944837165\n", + "DDG A2: 3.396373404945529\n", + "logZ_P A3 MD -5.559176950788607\n", + "logZ_P A3 MS -4.47780052493315\n", + "DDG A3: 6.258668481223088\n", + "logZ_P A4 MD -4.27999890563746\n", + "logZ_P A4 MS -4.424069625246275\n", + "DDG A4: -2.709036636489714\n", + "logZ_P A5 MD -4.356748154758119\n", + "logZ_P A5 MS -4.538387340559984\n", + "DDG A5: -1.347912877248625\n", + "DDG loss: 2.2458434245976506\n", + "loss: 2.926841707695355\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-6.0552905, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-4.54875224, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(5.4406376, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-5.26391466, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-4.33357569, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(3.3963734, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-5.55917695, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-4.47780052, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(6.25866848, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-4.27999891, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-4.42406963, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.70903664, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-4.35674815, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-4.53838734, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.34791288, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(2.24584342, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [-0.00024991 -0.00610113 0.00549018 -0.00264693 0.00308331 -0.00033854] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -5.988635220337496\n", + "logZ_P A1 MS -4.482056560245088\n", + "DDG A1: 5.440737608144459\n", + "logZ_P A2 MD -5.197281241813869\n", + "logZ_P A2 MS -4.2669367771578415\n", + "DDG A2: 3.39638702337188\n", + "logZ_P A3 MD -5.492380049304424\n", + "logZ_P A3 MS -4.4110168024636565\n", + "DDG A3: 6.258635849982689\n", + "logZ_P A4 MD -4.213276543100705\n", + "logZ_P A4 MS -4.357359859673504\n", + "DDG A4: -2.709067826572538\n", + "logZ_P A5 MD -4.290083059912383\n", + "logZ_P A5 MS -4.471659837851474\n", + "DDG A5: -1.3477583553804395\n", + "DDG loss: 2.2458689781841112\n", + "loss: 2.9268409438428122\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-5.98863522, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-4.48205656, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(5.44073761, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-5.19728124, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-4.26693678, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(3.39638702, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-5.49238005, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-4.4110168, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(6.25863585, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-4.21327654, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-4.35735986, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.70906783, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-4.29008306, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-4.47165984, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.34775836, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(2.24586898, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 0.00100595 -0.00102375 0.00579238 0.0001055 0.00867474 -0.00050016] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -5.983903566505651\n", + "logZ_P A1 MS -4.477334467542086\n", + "DDG A1: 5.440713934789394\n", + "logZ_P A2 MD -5.192505570250108\n", + "logZ_P A2 MS -4.262194352859694\n", + "DDG A2: 3.3963047031422056\n", + "logZ_P A3 MD -5.48762583053106\n", + "logZ_P A3 MS -4.406284889308314\n", + "DDG A3: 6.258580621272477\n", + "logZ_P A4 MD -4.208535359436743\n", + "logZ_P A4 MS -4.352620521531033\n", + "DDG A4: -2.7090723960837613\n", + "logZ_P A5 MD -4.285350365651221\n", + "logZ_P A5 MS -4.466927418042706\n", + "DDG A5: -1.3477590349245212\n", + "DDG loss: 2.2457968614736057\n", + "loss: 2.9268409175560954\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-5.98390357, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-4.47733447, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(5.44071393, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-5.19250557, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-4.26219435, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(3.3963047, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-5.48762583, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-4.40628489, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(6.25858062, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-4.20853536, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-4.35262052, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.7090724, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-4.28535037, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-4.46692742, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.34775903, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(2.24579686, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 0.0003928 -0.00023892 0.00208514 0.00010722 0.00325703 -0.00018312] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -5.983583734728201\n", + "logZ_P A1 MS -4.4770212639033415\n", + "DDG A1: 5.440697523517993\n", + "logZ_P A2 MD -5.192160840186833\n", + "logZ_P A2 MS -4.2618680453830535\n", + "DDG A2: 3.3962590888176973\n", + "logZ_P A3 MD -5.487298443775827\n", + "logZ_P A3 MS -4.4059693556514015\n", + "DDG A3: 6.258551273001016\n", + "logZ_P A4 MD -4.2082125430464234\n", + "logZ_P A4 MS -4.352298320876213\n", + "DDG A4: -2.7090739206448284\n", + "logZ_P A5 MD -4.285030180353343\n", + "logZ_P A5 MS -4.466609652442052\n", + "DDG A5: -1.347765026094885\n", + "DDG loss: 2.245756491894351\n", + "loss: 2.9268409141294778\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-5.98358373, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-4.47702126, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(5.44069752, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-5.19216084, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-4.26186805, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(3.39625909, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-5.48729844, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-4.40596936, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(6.25855127, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-4.20821254, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-4.35229832, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.70907392, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-4.28503018, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-4.46660965, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.34776503, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(2.24575649, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 9.63488127e-06 8.56938624e-06 3.53936744e-05 8.62811967e-06\n", + " 6.86451808e-05 -3.35834836e-06] \n", + "\n", + "logZ_P A1 MD -5.983583734728201\n", + "logZ_P A1 MS -4.4770212639033415\n", + "DDG A1: 5.440697523517993\n", + "logZ_P A2 MD -5.192160840186833\n", + "logZ_P A2 MS -4.2618680453830535\n", + "DDG A2: 3.3962590888176973\n", + "logZ_P A3 MD -5.487298443775827\n", + "logZ_P A3 MS -4.4059693556514015\n", + "DDG A3: 6.258551273001016\n", + "logZ_P A4 MD -4.2082125430464234\n", + "logZ_P A4 MS -4.352298320876213\n", + "DDG A4: -2.7090739206448284\n", + "logZ_P A5 MD -4.285030180353343\n", + "logZ_P A5 MS -4.466609652442052\n", + "DDG A5: -1.347765026094885\n", + "DDG loss: 2.245756491894351\n", + "beta: 0.5\n", + "New evaluation:\n", + "logZ_P A1 MD -1.1102230246251565e-16\n", + "logZ_P A1 MS 0.0\n", + "DDG A1: 1.7104488457556373\n", + "logZ_P A2 MD 0.0\n", + "logZ_P A2 MS 0.0\n", + "DDG A2: 1.0928541288835474\n", + "logZ_P A3 MD 0.0\n", + "logZ_P A3 MS 0.0\n", + "DDG A3: 3.581180450804952\n", + "logZ_P A4 MD 0.0\n", + "logZ_P A4 MS -2.2204460492503136e-16\n", + "DDG A4: -2.352317534738276\n", + "logZ_P A5 MD 0.0\n", + "logZ_P A5 MS 0.0\n", + "DDG A5: -0.898174253203229\n", + "DDG loss: 17.239715782404367\n", + "loss: 17.239715782404367\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-1.11022302e-16, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(0., dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(1.71044885, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(0., dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(0., dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.09285413, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(0., dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(0., dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(3.58118045, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(0., dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-2.22044605e-16, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.35231753, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(0., dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(0., dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.89817425, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(17.23971578, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ -59.13012539 13.42119932 -159.92372304 4.94716807 -214.32616084\n", + " 17.13657393] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD 1006.7577376784187\n", + "logZ_P A1 MS 939.7778109380281\n", + "DDG A1: -164.1318497634513\n", + "logZ_P A2 MD 974.8972355044249\n", + "logZ_P A2 MS 943.2582091009463\n", + "DDG A2: -77.24537524612938\n", + "logZ_P A3 MD 990.5815404433159\n", + "logZ_P A3 MS 935.1601483420625\n", + "DDG A3: -133.64218639189855\n", + "logZ_P A4 MD 959.0058460528095\n", + "logZ_P A4 MS 944.7166389943962\n", + "DDG A4: -37.73239421136953\n", + "logZ_P A5 MD 929.578448054235\n", + "logZ_P A5 MS 954.2829294045292\n", + "DDG A5: 60.270121570125355\n", + "DDG loss: 30084.6841430986\n", + "loss: 30251.412669404617\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(1006.75773768, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(939.77781094, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(-164.13184976, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(974.8972355, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(943.2582091, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(-77.24537525, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(990.58154044, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(935.16014834, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(-133.64218639, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(959.00584605, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(944.71663899, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-37.73239421, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(929.57844805, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(954.2829294, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(60.27012157, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(30084.6841431, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ -2376.91244735 -28270.90701794 95394.6085058 28338.09370246\n", + " 126761.58692907 775.4286278 ] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD 39.884271534707025\n", + "logZ_P A1 MS 41.16874109023751\n", + "DDG A1: 4.890795465249119\n", + "logZ_P A2 MD 34.642444725559656\n", + "logZ_P A2 MS 39.82416104820328\n", + "DDG A2: 13.922783743749159\n", + "logZ_P A3 MD 35.27970144150634\n", + "logZ_P A3 MS 40.41993825672938\n", + "DDG A3: 16.308406805297185\n", + "logZ_P A4 MD 39.766715650051054\n", + "logZ_P A4 MS 44.290703439549446\n", + "DDG A4: 8.849076232059742\n", + "logZ_P A5 MD 37.92045374088295\n", + "logZ_P A5 MS 40.29572260888853\n", + "DDG A5: 4.982991463978597\n", + "DDG loss: 204.82048099388942\n", + "loss: 246.2368623377941\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(39.88427153, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(41.16874109, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(4.89079547, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(34.64244473, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(39.82416105, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(13.92278374, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(35.27970144, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(40.41993826, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(16.30840681, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(39.76671565, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(44.29070344, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(8.84907623, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(37.92045374, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(40.29572261, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(4.98299146, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(204.82048099, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 289.85171913 -46.38152211 110.51776939 412.90186893 1780.85795342\n", + " -39.42863427] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -1.69280034490952\n", + "logZ_P A1 MS -1.505929619498069\n", + "DDG A1: 2.173140761874359\n", + "logZ_P A2 MD -1.8111322267333656\n", + "logZ_P A2 MS -1.5099605844664\n", + "DDG A2: 1.838555115136553\n", + "logZ_P A3 MD -1.8002937911207104\n", + "logZ_P A3 MS -1.530656795006574\n", + "DDG A3: 4.248801653183538\n", + "logZ_P A4 MD -1.5817801870090655\n", + "logZ_P A4 MS -1.5042274248172962\n", + "DDG A4: -2.1602968955514847\n", + "logZ_P A5 MD -1.6080130318184398\n", + "logZ_P A5 MS -1.4794547832155323\n", + "DDG A5: -0.5798640296624135\n", + "DDG loss: 13.274799747669233\n", + "loss: 13.802889897258499\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-1.69280034, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-1.50592962, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(2.17314076, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-1.81113223, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-1.50996058, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.83855512, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-1.80029379, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-1.5306568, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(4.24880165, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-1.58178019, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-1.50422742, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.1602969, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-1.60801303, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-1.47945478, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.57986403, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(13.27479975, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ -41.2452507 7.61353906 -107.87098283 29.10351936 -78.24034191\n", + " 13.44609821] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -12.428018960006055\n", + "logZ_P A1 MS -12.244062269123217\n", + "DDG A1: 2.165925612381543\n", + "logZ_P A2 MD -12.88651084974927\n", + "logZ_P A2 MS -12.200117048244836\n", + "DDG A2: 2.792365181408533\n", + "logZ_P A3 MD -13.332957491432618\n", + "logZ_P A3 MS -12.171286519598157\n", + "DDG A3: 6.457477777067095\n", + "logZ_P A4 MD -12.246806030856916\n", + "logZ_P A4 MS -12.288423835668139\n", + "DDG A4: -2.455363219450868\n", + "logZ_P A5 MD -12.15471788886768\n", + "logZ_P A5 MS -12.151689164155323\n", + "DDG A5: -0.8906751308154478\n", + "DDG loss: 9.67683336246882\n", + "loss: 11.101987732094345\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-12.42801896, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-12.24406227, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(2.16592561, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-12.88651085, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-12.20011705, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(2.79236518, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-13.33295749, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-12.17128652, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(6.45747778, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-12.24680603, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-12.28842384, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.45536322, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-12.15471789, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-12.15168916, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.89067513, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(9.67683336, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ -49.60710611 -21.71708531 8.50430979 -28.18097062 -167.83917879\n", + " 7.23865194] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -14.021893073423145\n", + "logZ_P A1 MS -13.36817223031423\n", + "DDG A1: 3.3290616532933086\n", + "logZ_P A2 MD -13.910148355834963\n", + "logZ_P A2 MS -13.176708818792696\n", + "DDG A2: 2.9088504226002145\n", + "logZ_P A3 MD -14.542225732944827\n", + "logZ_P A3 MS -13.132870943048681\n", + "DDG A3: 7.070742910587799\n", + "logZ_P A4 MD -13.22001210334784\n", + "logZ_P A4 MS -13.34119953784927\n", + "DDG A4: -2.652377622563798\n", + "logZ_P A5 MD -13.270430621576601\n", + "logZ_P A5 MS -13.23715458691961\n", + "DDG A5: -0.8157827913925503\n", + "DDG loss: 5.546854496644811\n", + "loss: 9.096373199357485\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-14.02189307, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-13.36817223, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(3.32906165, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-13.91014836, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-13.17670882, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(2.90885042, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-14.54222573, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-13.13287094, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(7.07074291, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-13.2200121, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-13.34119954, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.65237762, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-13.27043062, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-13.23715459, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.81578279, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(5.5468545, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ -12.73536837 52.34399448 30.26130434 -25.06600489 -129.07109912\n", + " 3.51821671] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -19.278077934657144\n", + "logZ_P A1 MS -18.22944664958803\n", + "DDG A1: 4.30685990758678\n", + "logZ_P A2 MD -18.72419353211677\n", + "logZ_P A2 MS -18.011616300203418\n", + "DDG A2: 2.8571953551010205\n", + "logZ_P A3 MD -19.184052904534898\n", + "logZ_P A3 MS -18.10877167820701\n", + "DDG A3: 6.2435767671928035\n", + "logZ_P A4 MD -17.998291461134002\n", + "logZ_P A4 MS -18.138226199869056\n", + "DDG A4: -2.6987959478462606\n", + "logZ_P A5 MD -18.041438228603116\n", + "logZ_P A5 MS -18.175046272174335\n", + "DDG A5: -1.228987769085592\n", + "DDG loss: 3.153270811047672\n", + "loss: 6.450592317231637\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-19.27807793, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-18.22944665, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(4.30685991, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-18.72419353, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-18.0116163, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(2.85719536, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-19.1840529, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-18.10877168, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(6.24357677, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-17.99829146, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-18.1382262, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.69879595, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-18.04143823, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-18.17504627, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.22898777, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(3.15327081, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ -7.41902686 33.79457291 -15.42003798 -25.62030747 -135.72776181\n", + " 3.32266783] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -122.74510764407306\n", + "logZ_P A1 MS -122.25518373390874\n", + "DDG A1: 2.9235004473225334\n", + "logZ_P A2 MD -124.34411595270468\n", + "logZ_P A2 MS -123.47483570785364\n", + "DDG A2: 3.245192015134724\n", + "logZ_P A3 MD -124.06740558153776\n", + "logZ_P A3 MS -122.4312339355189\n", + "DDG A3: 7.632341446347664\n", + "logZ_P A4 MD -123.71300123761135\n", + "logZ_P A4 MS -122.95395421325766\n", + "DDG A4: -0.47291710243853663\n", + "logZ_P A5 MD -122.01169509735554\n", + "logZ_P A5 MS -123.40018184046127\n", + "DDG A5: -4.3360674291329815\n", + "DDG loss: 12.564835786444355\n", + "loss: 41.72931031310517\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-122.74510764, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-122.25518373, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(2.92350045, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-124.34411595, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-123.47483571, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(3.24519202, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-124.06740558, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-122.43123394, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(7.63234145, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-123.71300124, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-122.95395421, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-0.4729171, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-122.0116951, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-123.40018184, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-4.33606743, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(12.56483579, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [-145.80475451 47.61797969 59.04912121 -173.71787514 -390.96308892\n", + " 2.55613319] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -23.56693604094725\n", + "logZ_P A1 MS -22.488458973130037\n", + "DDG A1: 4.380758065671034\n", + "logZ_P A2 MD -23.07651782567917\n", + "logZ_P A2 MS -22.33298979383998\n", + "DDG A2: 2.9338295357173827\n", + "logZ_P A3 MD -23.44668466115327\n", + "logZ_P A3 MS -22.365182648305876\n", + "DDG A3: 6.258979434615136\n", + "logZ_P A4 MD -22.324253902774046\n", + "logZ_P A4 MS -22.448394175807213\n", + "DDG A4: -2.659688850768388\n", + "logZ_P A5 MD -22.384075994888637\n", + "logZ_P A5 MS -22.46795809692087\n", + "DDG A5: -1.1058663378350408\n", + "DDG loss: 3.145817927336456\n", + "loss: 6.199178910822921\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-23.56693604, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-22.48845897, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(4.38075807, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-23.07651783, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-22.33298979, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(2.93382954, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-23.44668466, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-22.36518265, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(6.25897943, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-22.3242539, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-22.44839418, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.65968885, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-22.38407599, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-22.4679581, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.10586634, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(3.14581793, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ -8.518906 37.44245427 -17.88061915 -25.55764162 -123.82010649\n", + " 2.99683882] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -22.514190182697977\n", + "logZ_P A1 MS -21.405561045057333\n", + "DDG A1: 4.455414590553882\n", + "logZ_P A2 MD -22.032380041651027\n", + "logZ_P A2 MS -21.256526819787695\n", + "DDG A2: 3.0138667062171502\n", + "logZ_P A3 MD -22.367382590998222\n", + "logZ_P A3 MS -21.297965401997196\n", + "DDG A3: 6.229057410771501\n", + "logZ_P A4 MD -21.24546633374756\n", + "logZ_P A4 MS -21.36333295084858\n", + "DDG A4: -2.6441552786804245\n", + "logZ_P A5 MD -21.300713765630658\n", + "logZ_P A5 MS -21.38935116394115\n", + "DDG A5: -1.1176404514199818\n", + "DDG loss: 3.1236027181866004\n", + "loss: 5.717903264117087\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-22.51419018, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-21.40556105, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(4.45541459, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-22.03238004, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-21.25652682, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(3.01386671, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-22.36738259, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-21.2979654, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(6.22905741, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-21.24546633, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-21.36333295, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.64415528, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-21.30071377, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-21.38935116, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.11764045, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(3.12360272, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ -7.71717637 33.13950811 -16.59186803 -22.58252594 -110.30662174\n", + " 2.75091151] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -19.120713707138353\n", + "logZ_P A1 MS -17.938524855463978\n", + "DDG A1: 4.637548442501373\n", + "logZ_P A2 MD -18.667922114143327\n", + "logZ_P A2 MS -17.808505125735735\n", + "DDG A2: 3.220770592180736\n", + "logZ_P A3 MD -18.927575807805727\n", + "logZ_P A3 MS -17.86257052356439\n", + "DDG A3: 6.218133534586503\n", + "logZ_P A4 MD -17.787747302107707\n", + "logZ_P A4 MS -17.89374633958412\n", + "DDG A4: -2.6147711515298635\n", + "logZ_P A5 MD -17.832306704470188\n", + "logZ_P A5 MS -17.932518530435747\n", + "DDG A5: -1.1462987342939528\n", + "DDG loss: 3.0869671733801103\n", + "loss: 4.86875908073392\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-19.12071371, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-17.93852486, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(4.63754844, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-18.66792211, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-17.80850513, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(3.22077059, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-18.92757581, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-17.86257052, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(6.21813353, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-17.7877473, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-17.89374634, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.61477115, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-17.8323067, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-17.93251853, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.14629873, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(3.08696717, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ -5.8955732 23.74968365 -11.50682955 -17.24530841 -82.04721602\n", + " 2.00595302] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -7.631455793127445\n", + "logZ_P A1 MS -6.278437307028083\n", + "DDG A1: 5.060522617337649\n", + "logZ_P A2 MD -7.282707347307429\n", + "logZ_P A2 MS -6.200802310009772\n", + "DDG A2: 3.7716510012325513\n", + "logZ_P A3 MD -7.366795518856202\n", + "logZ_P A3 MS -6.275526463810526\n", + "DDG A3: 6.28316263109807\n", + "logZ_P A4 MD -6.15440186747638\n", + "logZ_P A4 MS -6.226812684715218\n", + "DDG A4: -2.531606718221626\n", + "logZ_P A5 MD -6.180841417584046\n", + "logZ_P A5 MS -6.294957802537177\n", + "DDG A5: -1.1807264223471918\n", + "DDG loss: 3.3829546866795295\n", + "loss: 3.9069917052682164\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-7.63145579, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-6.27843731, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(5.06052262, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-7.28270735, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-6.20080231, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(3.771651, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-7.36679552, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-6.27552646, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(6.28316263, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-6.15440187, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-6.22681268, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.53160672, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-6.18084142, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-6.2949578, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.18072642, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(3.38295469, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [-1.09719333 -0.04506917 2.92100353 -3.33133303 -7.56650032 -0.04017705] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -3.319105907062307\n", + "logZ_P A1 MS -1.9575818007066434\n", + "DDG A1: 5.08158253309225\n", + "logZ_P A2 MD -2.967766041744352\n", + "logZ_P A2 MS -1.8787076795249624\n", + "DDG A2: 3.789362633738757\n", + "logZ_P A3 MD -3.0333043966373205\n", + "logZ_P A3 MS -1.9608202535300108\n", + "DDG A3: 6.236651189138635\n", + "logZ_P A4 MD -1.8306345588725832\n", + "logZ_P A4 MS -1.898031171390063\n", + "DDG A4: -2.5191915473315323\n", + "logZ_P A5 MD -1.8607112262289074\n", + "logZ_P A5 MS -1.9712746340401306\n", + "DDG A5: -1.1719292509438282\n", + "DDG loss: 3.4372877698215545\n", + "loss: 3.878892155151127\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-3.31910591, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-1.9575818, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(5.08158253, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-2.96776604, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-1.87870768, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(3.78936263, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-3.0333044, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-1.96082025, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(6.23665119, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-1.83063456, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-1.89803117, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.51919155, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-1.86071123, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-1.97127463, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.17192925, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(3.43728777, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 0.2034985 -0.37226383 1.45968693 0.51671733 3.00136949 -0.02525248] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -1.992275331313511\n", + "logZ_P A1 MS -0.6266976796646098\n", + "DDG A1: 5.091619111238292\n", + "logZ_P A2 MD -1.6385486654013257\n", + "logZ_P A2 MS -0.5502272667745807\n", + "DDG A2: 3.7875379118833714\n", + "logZ_P A3 MD -1.697167162849941\n", + "logZ_P A3 MS -0.6308000460519294\n", + "DDG A3: 6.221505431996814\n", + "logZ_P A4 MD -0.49805510178750967\n", + "logZ_P A4 MS -0.5674493865990466\n", + "DDG A4: -2.524137783931642\n", + "logZ_P A5 MD -0.5278942241697215\n", + "logZ_P A5 MS -0.6424008864062771\n", + "DDG A5: -1.181692748900928\n", + "DDG loss: 3.4294883255205164\n", + "loss: 3.8762195295732855\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-1.99227533, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-0.62669768, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(5.09161911, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-1.63854867, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-0.55022727, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(3.78753791, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-1.69716716, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-0.63080005, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(6.22150543, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-0.4980551, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-0.56744939, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.52413778, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-0.52789422, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-0.64240089, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.18169275, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(3.42948833, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [-0.01277722 -0.62843024 0.61374756 0.15053358 0.87883101 -0.01169625] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -1.4843695748968142\n", + "logZ_P A1 MS -0.1167804870047906\n", + "DDG A1: 5.0965994273763\n", + "logZ_P A2 MD -1.1273038552961707\n", + "logZ_P A2 MS -0.04139279471863322\n", + "DDG A2: 3.781569914873547\n", + "logZ_P A3 MD -1.1826498201782916\n", + "logZ_P A3 MS -0.1197095687186196\n", + "DDG A3: 6.213020513419117\n", + "logZ_P A4 MD 0.011754013718915601\n", + "logZ_P A4 MS -0.058490475254414864\n", + "DDG A4: -2.5262428894362414\n", + "logZ_P A5 MD -0.019317704287591386\n", + "logZ_P A5 MS -0.1334916214954407\n", + "DDG A5: -1.1808688722098661\n", + "DDG loss: 3.4190123376998094\n", + "loss: 3.8756792276778333\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-1.48436957, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-0.11678049, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(5.09659943, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-1.12730386, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-0.04139279, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(3.78156991, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-1.18264982, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-0.11970957, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(6.21302051, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(0.01175401, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-0.05849048, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.52624289, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-0.0193177, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-0.13349162, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.18086887, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(3.41901234, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 0.04040084 -0.0273028 -0.13049228 0.08055089 0.11462506 0.00692982] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -1.480375708252357\n", + "logZ_P A1 MS -0.11309795196421302\n", + "DDG A1: 5.095828570325088\n", + "logZ_P A2 MD -1.1244304116877881\n", + "logZ_P A2 MS -0.03828807447892757\n", + "DDG A2: 3.782142555812673\n", + "logZ_P A3 MD -1.1793717320535226\n", + "logZ_P A3 MS -0.1157270887607269\n", + "DDG A3: 6.2147645875979345\n", + "logZ_P A4 MD 0.014902803992844937\n", + "logZ_P A4 MS -0.05538369868227866\n", + "DDG A4: -2.5263469153618656\n", + "logZ_P A5 MD -0.016070853831298137\n", + "logZ_P A5 MS -0.1299815172639036\n", + "DDG A5: -1.1802170558623601\n", + "DDG loss: 3.4199283295537932\n", + "loss: 3.875655950945848\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-1.48037571, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-0.11309795, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(5.09582857, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-1.12443041, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-0.03828807, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(3.78214256, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-1.17937173, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-0.11572709, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(6.21476459, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(0.0149028, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-0.0553837, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.52634692, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-0.01607085, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-0.12998152, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.18021706, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(3.41992833, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [-0.01916634 -0.0386197 -0.06993433 -0.0056852 -0.07749806 0.00389432] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -1.488561783260435\n", + "logZ_P A1 MS -0.12120361361571819\n", + "DDG A1: 5.096027673795957\n", + "logZ_P A2 MD -1.1326392886252035\n", + "logZ_P A2 MS -0.04636087382907039\n", + "DDG A2: 3.7824794839187565\n", + "logZ_P A3 MD -1.1877441557831216\n", + "logZ_P A3 MS -0.12369799615385357\n", + "DDG A3: 6.215758742047027\n", + "logZ_P A4 MD 0.006736603151107801\n", + "logZ_P A4 MS -0.06353725788151943\n", + "DDG A4: -2.5263156146550734\n", + "logZ_P A5 MD -0.024276332275476875\n", + "logZ_P A5 MS -0.13802539842845674\n", + "DDG A5: -1.1798169409979995\n", + "DDG loss: 3.419717845960657\n", + "loss: 3.8756539460282964\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-1.48856178, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-0.12120361, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(5.09602767, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-1.13263929, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-0.04636087, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(3.78247948, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-1.18774416, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-0.123698, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(6.21575874, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(0.0067366, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-0.06353726, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.52631561, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-0.02427633, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-0.1380254, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.17981694, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(3.41971785, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [-0.00349911 -0.00468458 -0.0232157 -0.00230397 -0.0172679 0.0008864 ] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -1.4843409139035864\n", + "logZ_P A1 MS -0.11701219113819405\n", + "DDG A1: 5.095954763322751\n", + "logZ_P A2 MD -1.1284633840785094\n", + "logZ_P A2 MS -0.042145011997613224\n", + "DDG A2: 3.7825784181558464\n", + "logZ_P A3 MD -1.183652941133487\n", + "logZ_P A3 MS -0.11946877219385632\n", + "DDG A3: 6.216100453099483\n", + "logZ_P A4 MD 0.010926032708159727\n", + "logZ_P A4 MS -0.05934331817370797\n", + "DDG A4: -2.5263044475217575\n", + "logZ_P A5 MD -0.020081964254130558\n", + "logZ_P A5 MS -0.13379280641488078\n", + "DDG A5: -1.1797222983932267\n", + "DDG loss: 3.419758509746636\n", + "loss: 3.8756537384815615\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-1.48434091, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-0.11701219, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(5.09595476, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-1.12846338, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-0.04214501, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(3.78257842, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-1.18365294, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-0.11946877, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(6.21610045, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(0.01092603, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-0.05934332, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.52630445, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-0.02008196, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-0.13379281, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.1797223, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(3.41975851, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [-0.00080798 0.00042436 -0.00243449 -0.00044665 -0.00235225 0.00016332] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -1.4826776026914075\n", + "logZ_P A1 MS -0.11533615182366486\n", + "DDG A1: 5.0959862781041645\n", + "logZ_P A2 MD -1.126794238557446\n", + "logZ_P A2 MS -0.04046333529497925\n", + "DDG A2: 3.782609445361444\n", + "logZ_P A3 MD -1.1819908860274853\n", + "logZ_P A3 MS -0.11779332286842203\n", + "DDG A3: 6.2161336171868085\n", + "logZ_P A4 MD 0.012609222990766611\n", + "logZ_P A4 MS -0.05766156924947374\n", + "DDG A4: -2.526308016325103\n", + "logZ_P A5 MD -0.018397539554888986\n", + "logZ_P A5 MS -0.13211269185267138\n", + "DDG A5: -1.179732970292547\n", + "DDG loss: 3.4197504105065084\n", + "loss: 3.875653732416619\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-1.4826776, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-0.11533615, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(5.09598628, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-1.12679424, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-0.04046334, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(3.78260945, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-1.18199089, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-0.11779332, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(6.21613362, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(0.01260922, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-0.05766157, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.52630802, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-0.01839754, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-0.13211269, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.17973297, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(3.41975041, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 1.00397749e-04 7.48174359e-05 2.00525020e-04 -1.08777665e-05\n", + " 4.06311570e-04 -2.50802144e-05] \n", + "\n", + "logZ_P A1 MD -1.4826776026914075\n", + "logZ_P A1 MS -0.11533615182366486\n", + "DDG A1: 5.0959862781041645\n", + "logZ_P A2 MD -1.126794238557446\n", + "logZ_P A2 MS -0.04046333529497925\n", + "DDG A2: 3.782609445361444\n", + "logZ_P A3 MD -1.1819908860274853\n", + "logZ_P A3 MS -0.11779332286842203\n", + "DDG A3: 6.2161336171868085\n", + "logZ_P A4 MD 0.012609222990766611\n", + "logZ_P A4 MS -0.05766156924947374\n", + "DDG A4: -2.526308016325103\n", + "logZ_P A5 MD -0.018397539554888986\n", + "logZ_P A5 MS -0.13211269185267138\n", + "DDG A5: -1.179732970292547\n", + "DDG loss: 3.4197504105065084\n", + "beta: 1.0\n", + "New evaluation:\n", + "logZ_P A1 MD -1.1102230246251565e-16\n", + "logZ_P A1 MS 0.0\n", + "DDG A1: 1.7104488457556373\n", + "logZ_P A2 MD 0.0\n", + "logZ_P A2 MS 0.0\n", + "DDG A2: 1.0928541288835474\n", + "logZ_P A3 MD 0.0\n", + "logZ_P A3 MS 0.0\n", + "DDG A3: 3.581180450804952\n", + "logZ_P A4 MD 0.0\n", + "logZ_P A4 MS -2.2204460492503136e-16\n", + "DDG A4: -2.352317534738276\n", + "logZ_P A5 MD 0.0\n", + "logZ_P A5 MS 0.0\n", + "DDG A5: -0.898174253203229\n", + "DDG loss: 17.239715782404367\n", + "loss: 17.239715782404367\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-1.11022302e-16, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(0., dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(1.71044885, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(0., dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(0., dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.09285413, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(0., dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(0., dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(3.58118045, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(0., dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-2.22044605e-16, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.35231753, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(0., dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(0., dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.89817425, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(17.23971578, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ -59.13012539 13.42119932 -159.92372304 4.94716807 -214.32616084\n", + " 17.13657393] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD 1006.7577376784203\n", + "logZ_P A1 MS 939.7778109380303\n", + "DDG A1: -164.1318497634499\n", + "logZ_P A2 MD 974.8972355044268\n", + "logZ_P A2 MS 943.2582091009481\n", + "DDG A2: -77.24537524612967\n", + "logZ_P A3 MD 990.581540443318\n", + "logZ_P A3 MS 935.1601483420645\n", + "DDG A3: -133.64218639189855\n", + "logZ_P A4 MD 959.0058460528114\n", + "logZ_P A4 MS 944.7166389943984\n", + "DDG A4: -37.73239421136896\n", + "logZ_P A5 MD 929.578448054237\n", + "logZ_P A5 MS 954.2829294045315\n", + "DDG A5: 60.270121570125916\n", + "DDG loss: 30084.68414309839\n", + "loss: 30418.141195710432\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(1006.75773768, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(939.77781094, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(-164.13184976, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(974.8972355, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(943.2582091, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(-77.24537525, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(990.58154044, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(935.16014834, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(-133.64218639, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(959.00584605, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(944.71663899, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-37.73239421, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(929.57844805, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(954.2829294, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(60.27012157, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(30084.6841431, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ -2359.19264476 -28306.89925089 95390.09608464 28375.91841114\n", + " 127053.51923619 775.40445566] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD 39.576428415148555\n", + "logZ_P A1 MS 40.86762690819833\n", + "DDG A1: 4.907456314546884\n", + "logZ_P A2 MD 34.35382599809964\n", + "logZ_P A2 MS 39.52510644883954\n", + "DDG A2: 13.89694452491554\n", + "logZ_P A3 MD 34.98559291759867\n", + "logZ_P A3 MS 40.11706036523847\n", + "DDG A3: 16.286693851161115\n", + "logZ_P A4 MD 39.46892090107847\n", + "logZ_P A4 MS 43.97906213025706\n", + "DDG A4: 8.814792148707921\n", + "logZ_P A5 MD 37.63020627647002\n", + "logZ_P A5 MS 39.99968144500055\n", + "DDG A5: 4.968646264078358\n", + "DDG loss: 203.79767096929632\n", + "loss: 286.52288526162135\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(39.57642842, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(40.86762691, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(4.90745631, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(34.353826, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(39.52510645, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(13.89694452, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(34.98559292, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(40.11706037, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(16.28669385, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(39.4689209, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(43.97906213, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(8.81479215, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(37.63020628, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(39.99968145, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(4.96864626, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(203.79767097, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 302.64274976 -42.66004196 129.0739325 441.0024284 1867.28415009\n", + " -39.36498916] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -1.4298479681135616\n", + "logZ_P A1 MS -1.277898926523096\n", + "DDG A1: 2.0866746727336407\n", + "logZ_P A2 MD -1.5203932514246898\n", + "logZ_P A2 MS -1.2781403839274903\n", + "DDG A2: 1.6926722288066145\n", + "logZ_P A3 MD -1.5122308588287738\n", + "logZ_P A3 MS -1.2953175196247204\n", + "DDG A3: 4.118257878674192\n", + "logZ_P A4 MD -1.3370046520006829\n", + "logZ_P A4 MS -1.2745546782633066\n", + "DDG A4: -2.1976913997645067\n", + "logZ_P A5 MD -1.358328369848139\n", + "logZ_P A5 MS -1.2547864967864888\n", + "DDG A5: -0.641804575502598\n", + "DDG loss: 13.927059066953472\n", + "loss: 14.61953978661387\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-1.42984797, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-1.27789893, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(2.08667467, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-1.52039325, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-1.27814038, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.69267223, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-1.51223086, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-1.29531752, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(4.11825788, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-1.33700465, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-1.27455468, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.1976914, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-1.35832837, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-1.2547865, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.64180458, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(13.92705907, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ -37.7702824 13.51677511 -115.35872668 42.30058456 -42.77212163\n", + " 14.1599003 ] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -8.52865464639319\n", + "logZ_P A1 MS -8.329792768178898\n", + "DDG A1: 2.2028308562142143\n", + "logZ_P A2 MD -8.796557342222458\n", + "logZ_P A2 MS -8.295768778789736\n", + "DDG A2: 2.3328066119429645\n", + "logZ_P A3 MD -9.033796383771586\n", + "logZ_P A3 MS -8.29372369017059\n", + "DDG A3: 5.413600440161011\n", + "logZ_P A4 MD -8.36275290137382\n", + "logZ_P A4 MS -8.343359440130817\n", + "DDG A4: -2.304299324700577\n", + "logZ_P A5 MD -8.313987167660073\n", + "logZ_P A5 MS -8.253079848561114\n", + "DDG A5: -0.7473677311142063\n", + "DDG loss: 10.488494835184682\n", + "loss: 11.260581678515319\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-8.52865465, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-8.32979277, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(2.20283086, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-8.79655734, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-8.29576878, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(2.33280661, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-9.03379638, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-8.29372369, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(5.41360044, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-8.3627529, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-8.34335944, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.30429932, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-8.31398717, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-8.25307985, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.74736773, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(10.48849484, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ -47.29226981 -23.35590308 -36.03837671 2.22072532 -109.26576027\n", + " 10.12370892] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -11.044939398856195\n", + "logZ_P A1 MS -10.38672649416019\n", + "DDG A1: 3.34018399778297\n", + "logZ_P A2 MD -10.966572161330078\n", + "logZ_P A2 MS -10.233793718324621\n", + "DDG A2: 2.907213553765061\n", + "logZ_P A3 MD -11.542759141374242\n", + "logZ_P A3 MS -10.16546176463759\n", + "DDG A3: 6.991368755604931\n", + "logZ_P A4 MD -10.310833341100288\n", + "logZ_P A4 MS -10.389616143711246\n", + "DDG A4: -2.5473837540030115\n", + "logZ_P A5 MD -10.427884695548933\n", + "logZ_P A5 MS -10.273325513299785\n", + "DDG A5: -0.5154857179543471\n", + "DDG loss: 5.817497691573218\n", + "loss: 13.455642450172883\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-11.0449394, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-10.38672649, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(3.340184, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-10.96657216, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-10.23379372, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(2.90721355, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-11.54275914, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-10.16546176, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(6.99136876, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-10.31083334, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-10.38961614, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.54738375, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-10.4278847, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-10.27332551, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.51548572, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(5.81749769, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 23.6773922 147.63114644 26.01791048 -0.91628895 -66.42445756\n", + " 3.65673565] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -9.712650530279207\n", + "logZ_P A1 MS -9.360689709708533\n", + "DDG A1: 2.58190383748861\n", + "logZ_P A2 MD -9.787854291297501\n", + "logZ_P A2 MS -9.25242305254211\n", + "DDG A2: 2.418581876041901\n", + "logZ_P A3 MD -10.161893641262154\n", + "logZ_P A3 MS -9.241758559756414\n", + "DDG A3: 5.859434912613149\n", + "logZ_P A4 MD -9.338021787719118\n", + "logZ_P A4 MS -9.359455083061146\n", + "DDG A4: -2.4053863740051558\n", + "logZ_P A5 MD -9.339916039313515\n", + "logZ_P A5 MS -9.256241310621467\n", + "DDG A5: -0.6909956249616889\n", + "DDG loss: 8.453321144685656\n", + "loss: 9.860849337233537\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-9.71265053, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-9.36068971, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(2.58190384, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-9.78785429, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-9.25242305, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(2.41858188, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-10.16189364, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-9.24175856, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(5.85943491, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-9.33802179, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-9.35945508, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.40538637, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-9.33991604, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-9.25624131, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.69099562, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(8.45332114, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ -23.42923459 35.86518414 -24.38173803 0.73549912 -103.76252991\n", + " 8.33429713] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -12.956555990700709\n", + "logZ_P A1 MS -12.333220858877473\n", + "DDG A1: 3.2538266321499782\n", + "logZ_P A2 MD -12.786538152944358\n", + "logZ_P A2 MS -12.21858515934002\n", + "DDG A2: 2.499105741047885\n", + "logZ_P A3 MD -13.046726289221155\n", + "logZ_P A3 MS -12.270742231254072\n", + "DDG A3: 5.502516978331441\n", + "logZ_P A4 MD -12.25420260146362\n", + "logZ_P A4 MS -12.292623846041424\n", + "DDG A4: -2.447448536312921\n", + "logZ_P A5 MD -12.271786868986911\n", + "logZ_P A5 MS -12.274646694432302\n", + "DDG A5: -0.905255181006035\n", + "DDG loss: 6.552037580273573\n", + "loss: 7.56198401413567\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-12.95655599, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-12.33322086, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(3.25382663, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-12.78653815, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-12.21858516, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(2.49910574, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-13.04672629, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-12.27074223, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(5.50251698, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-12.2542026, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-12.29262385, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.44744854, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-12.27178687, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-12.27464669, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.90525518, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(6.55203758, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ -17.52922396 28.64020282 -44.2108669 -1.17501848 -103.97861344\n", + " 7.5558092 ] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -67.56637660739781\n", + "logZ_P A1 MS -66.8498758682309\n", + "DDG A1: 3.484504675932961\n", + "logZ_P A2 MD -68.59128024664852\n", + "logZ_P A2 MS -67.50513604332629\n", + "DDG A2: 3.7821471763094356\n", + "logZ_P A3 MD -68.34124950666127\n", + "logZ_P A3 MS -66.86754327906597\n", + "DDG A3: 7.230077070330952\n", + "logZ_P A4 MD -67.65605536611403\n", + "logZ_P A4 MS -67.35569847943393\n", + "DDG A4: -1.6086338833183336\n", + "logZ_P A5 MD -67.42146250332621\n", + "logZ_P A5 MS -67.33348716501288\n", + "DDG A5: -0.6803473155394296\n", + "DDG loss: 7.0567479893892\n", + "loss: 31.862000634346153\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-67.56637661, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-66.84987587, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(3.48450468, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-68.59128025, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-67.50513604, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(3.78214718, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-68.34124951, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-66.86754328, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(7.23007707, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-67.65605537, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-67.35569848, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-1.60863388, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-67.4214625, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-67.33348717, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.68034732, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(7.05674799, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [-108.82898179 46.28457049 1.78455555 -72.93808915 -23.26340431\n", + " 1.16379653] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -16.489259259323095\n", + "logZ_P A1 MS -15.843335015124437\n", + "DDG A1: 3.3097572743915027\n", + "logZ_P A2 MD -16.38616820673473\n", + "logZ_P A2 MS -15.772718624283915\n", + "DDG A2: 2.611755295031758\n", + "logZ_P A3 MD -16.5874757104815\n", + "logZ_P A3 MS -15.77263324451988\n", + "DDG A3: 5.5987303965259185\n", + "logZ_P A4 MD -15.818578342379823\n", + "logZ_P A4 MS -15.843430583688956\n", + "DDG A4: -2.4138516842196913\n", + "logZ_P A5 MD -15.839659144463353\n", + "logZ_P A5 MS -15.809979395812539\n", + "DDG A5: -0.8246871955437959\n", + "DDG loss: 6.400126868172488\n", + "loss: 7.2894316483898285\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-16.48925926, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-15.84333502, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(3.30975727, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-16.38616821, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-15.77271862, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(2.6117553, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-16.58747571, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-15.77263324, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(5.5987304, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-15.81857834, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-15.84343058, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.41385168, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-15.83965914, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-15.8099794, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.8246872, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(6.40012687, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [-21.13820424 31.14487491 -44.5705922 -4.50108687 -96.93078456\n", + " 7.03590919] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -15.610348448356236\n", + "logZ_P A1 MS -14.903857465543052\n", + "DDG A1: 3.4597205192010683\n", + "logZ_P A2 MD -15.490733898029518\n", + "logZ_P A2 MS -14.83451627743148\n", + "DDG A2: 2.7176489574843\n", + "logZ_P A3 MD -15.675387242273075\n", + "logZ_P A3 MS -14.841560942810695\n", + "DDG A3: 5.645734368273824\n", + "logZ_P A4 MD -14.872533288333969\n", + "logZ_P A4 MS -14.899112902614133\n", + "DDG A4: -2.418128659695968\n", + "logZ_P A5 MD -14.893075869548586\n", + "logZ_P A5 MS -14.8747770637486\n", + "DDG A5: -0.8528664100424626\n", + "DDG loss: 5.971011846466893\n", + "loss: 6.762048060637398\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-15.61034845, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-14.90385747, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(3.45972052, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-15.4907339, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-14.83451628, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(2.71764896, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-15.67538724, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-14.84156094, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(5.64573437, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-14.87253329, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-14.8991129, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.41812866, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-14.89307587, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-14.87477706, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.85286641, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(5.97101185, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [-19.36136271 28.23767523 -40.61785982 -4.36196913 -89.31878564\n", + " 6.43960475] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -12.100028002336183\n", + "logZ_P A1 MS -11.150593565492095\n", + "DDG A1: 4.06124851138163\n", + "logZ_P A2 MD -11.923321261589878\n", + "logZ_P A2 MS -11.088405663517905\n", + "DDG A2: 3.1601051497097523\n", + "logZ_P A3 MD -12.040681018028074\n", + "logZ_P A3 MS -11.123212268939955\n", + "DDG A3: 5.852833073547126\n", + "logZ_P A4 MD -11.094609347331948\n", + "logZ_P A4 MS -11.127842859509647\n", + "DDG A4: -2.4346037108902316\n", + "logZ_P A5 MD -11.113338609007503\n", + "logZ_P A5 MS -11.140579782167686\n", + "DDG A5: -0.9656233979478644\n", + "DDG loss: 4.62146314335439\n", + "loss: 5.130586002468172\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-12.100028, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-11.15059357, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(4.06124851, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-11.92332126, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-11.08840566, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(3.16010515, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-12.04068102, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-11.12321227, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(5.85283307, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-11.09460935, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-11.12784286, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.43460371, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-11.11333861, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-11.14057978, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.9656234, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(4.62146314, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [-12.19556178 15.32923726 -24.87902221 -3.66175004 -57.07940721\n", + " 3.97652937] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -1.3397150802136562\n", + "logZ_P A1 MS -0.009150652660244729\n", + "DDG A1: 5.004926368377886\n", + "logZ_P A2 MD -1.1183828939126965\n", + "logZ_P A2 MS 0.0289186624561919\n", + "DDG A2: 3.933572782452913\n", + "logZ_P A3 MD -1.116199394151403\n", + "logZ_P A3 MS -0.03087188350132264\n", + "DDG A3: 6.268451367174572\n", + "logZ_P A4 MD 0.07426484968169045\n", + "logZ_P A4 MS 0.03217954827238345\n", + "DDG A4: -2.456520741027741\n", + "logZ_P A5 MD 0.05578890739160647\n", + "logZ_P A5 MS -0.030831476881545417\n", + "DDG A5: -1.1126463246635399\n", + "DDG loss: 3.8522055002416002\n", + "loss: 4.160572008144288\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-1.33971508, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-0.00915065, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(5.00492637, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-1.11838289, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(0.02891866, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(3.93357278, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-1.11619939, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-0.03087188, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(6.26845137, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(0.07426485, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(0.03217955, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.45652074, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(0.05578891, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-0.03083148, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.11264632, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(3.8522055, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [-0.30540784 -6.17613258 0.75956756 0.16647702 4.5396385 -0.22173562] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -0.7254496433370671\n", + "logZ_P A1 MS 0.5801379622399356\n", + "DDG A1: 4.943083757164296\n", + "logZ_P A2 MD -0.4986061832865758\n", + "logZ_P A2 MS 0.6236993951819925\n", + "DDG A2: 3.8716827411717265\n", + "logZ_P A3 MD -0.5143396747863793\n", + "logZ_P A3 MS 0.5705480406212844\n", + "DDG A3: 6.267362434154355\n", + "logZ_P A4 MD 0.6632130098084712\n", + "logZ_P A4 MS 0.619376784090599\n", + "DDG A4: -2.460856029615718\n", + "logZ_P A5 MD 0.6424871715150591\n", + "logZ_P A5 MS 0.5650795228032044\n", + "DDG A5: -1.0898355914137818\n", + "DDG loss: 3.812272895177341\n", + "loss: 4.146576763826025\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-0.72544964, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(0.58013796, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(4.94308376, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-0.49860618, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(0.6236994, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(3.87168274, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-0.51433967, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(0.57054804, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(6.26736243, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(0.66321301, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(0.61937678, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.46085603, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(0.64248717, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(0.56507952, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.08983559, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(3.8122729, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 0.06272023 0.11404163 0.2079187 -0.1015961 -0.96248533 0.02401574] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -0.7152576986972212\n", + "logZ_P A1 MS 0.5920361581498028\n", + "DDG A1: 4.947308435308871\n", + "logZ_P A2 MD -0.4905803191278868\n", + "logZ_P A2 MS 0.633937737153111\n", + "DDG A2: 3.8771608362352805\n", + "logZ_P A3 MD -0.5028733181178051\n", + "logZ_P A3 MS 0.5822912587659923\n", + "DDG A3: 6.268047943169236\n", + "logZ_P A4 MD 0.6733951397916746\n", + "logZ_P A4 MS 0.6301770179590798\n", + "DDG A4: -2.4593256043957816\n", + "logZ_P A5 MD 0.6523134354083138\n", + "logZ_P A5 MS 0.5760564572149156\n", + "DDG A5: -1.086986531210085\n", + "DDG loss: 3.8196939601318953\n", + "loss: 4.1462833759092215\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-0.7152577, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(0.59203616, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(4.94730844, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-0.49058032, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(0.63393774, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(3.87716084, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-0.50287332, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(0.58229126, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(6.26804794, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(0.67339514, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(0.63017702, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.4593256, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(0.65231344, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(0.57605646, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.08698653, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(3.81969396, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [0.05022257 0.03888282 0.00979027 0.08640993 0.26117744 0.0035797 ] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -0.6466601702778978\n", + "logZ_P A1 MS 0.6608549089677287\n", + "DDG A1: 4.947856181967824\n", + "logZ_P A2 MD -0.422516971093702\n", + "logZ_P A2 MS 0.7023874014427487\n", + "DDG A2: 3.8781173552837944\n", + "logZ_P A3 MD -0.4343114263020218\n", + "logZ_P A3 MS 0.6511589503742672\n", + "DDG A3: 6.268805103455431\n", + "logZ_P A4 MD 0.7420636615136311\n", + "logZ_P A4 MS 0.6987448086947377\n", + "DDG A4: -2.4595750143178354\n", + "logZ_P A5 MD 0.7210892684163315\n", + "logZ_P A5 MS 0.6447125890590439\n", + "DDG A5: -1.0872829112918927\n", + "DDG loss: 3.82021474216759\n", + "loss: 4.146272027770932\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-0.64666017, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(0.66085491, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(4.94785618, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-0.42251697, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(0.7023874, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(3.87811736, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-0.43431143, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(0.65115895, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(6.2688051, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(0.74206366, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(0.69874481, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.45957501, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(0.72108927, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(0.64471259, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.08728291, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(3.82021474, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [-0.02305902 -0.04556967 0.03704363 -0.01928129 -0.04539291 -0.00087176] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -0.6533557711792406\n", + "logZ_P A1 MS 0.6542901168730038\n", + "DDG A1: 4.948180064572972\n", + "logZ_P A2 MD -0.4289401903902128\n", + "logZ_P A2 MS 0.6958801449137517\n", + "DDG A2: 3.8779092790961665\n", + "logZ_P A3 MD -0.44073477432266084\n", + "logZ_P A3 MS 0.6445984028734857\n", + "DDG A3: 6.268465397542614\n", + "logZ_P A4 MD 0.7355420457488584\n", + "logZ_P A4 MS 0.6922173157284235\n", + "DDG A4: -2.459589566268861\n", + "logZ_P A5 MD 0.7145018814781523\n", + "logZ_P A5 MS 0.6381383150361137\n", + "DDG A5: -1.0872504437137214\n", + "DDG loss: 3.8196253913792253\n", + "loss: 4.146271151097766\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-0.65335577, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(0.65429012, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(4.94818006, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-0.42894019, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(0.69588014, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(3.87790928, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-0.44073477, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(0.6445984, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(6.2684654, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(0.73554205, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(0.69221732, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.45958957, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(0.71450188, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(0.63813832, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.08725044, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(3.81962539, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 0.00282557 0.00371113 0.00147485 0.00039263 0.007666 -0.00043116] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -0.6528272789324198\n", + "logZ_P A1 MS 0.6547768617041696\n", + "DDG A1: 4.948076697971821\n", + "logZ_P A2 MD -0.4284301294693542\n", + "logZ_P A2 MS 0.6963665834974857\n", + "DDG A2: 3.877850790189411\n", + "logZ_P A3 MD -0.44022957290769504\n", + "logZ_P A3 MS 0.6450827222719535\n", + "DDG A3: 6.2684136936697605\n", + "logZ_P A4 MD 0.7360283383236899\n", + "logZ_P A4 MS 0.6927053527715923\n", + "DDG A4: -2.4595852469652635\n", + "logZ_P A5 MD 0.7149933573750091\n", + "logZ_P A5 MS 0.6386284525211232\n", + "DDG A5: -1.0872537576214594\n", + "DDG loss: 3.8196788867916336\n", + "loss: 4.14627113511654\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-0.65282728, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(0.65477686, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(4.9480767, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-0.42843013, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(0.69636658, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(3.87785079, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-0.44022957, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(0.64508272, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(6.26841369, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(0.73602834, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(0.69270535, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.45958525, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(0.71499336, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(0.63862845, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.08725376, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(3.81967889, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 1.00270749e-04 1.06869540e-04 5.43251686e-04 1.84326695e-04\n", + " 9.94063078e-04 -1.10367928e-05] \n", + "\n", + "logZ_P A1 MD -0.6528272789324198\n", + "logZ_P A1 MS 0.6547768617041696\n", + "DDG A1: 4.948076697971821\n", + "logZ_P A2 MD -0.4284301294693542\n", + "logZ_P A2 MS 0.6963665834974857\n", + "DDG A2: 3.877850790189411\n", + "logZ_P A3 MD -0.44022957290769504\n", + "logZ_P A3 MS 0.6450827222719535\n", + "DDG A3: 6.2684136936697605\n", + "logZ_P A4 MD 0.7360283383236899\n", + "logZ_P A4 MS 0.6927053527715923\n", + "DDG A4: -2.4595852469652635\n", + "logZ_P A5 MD 0.7149933573750091\n", + "logZ_P A5 MS 0.6386284525211232\n", + "DDG A5: -1.0872537576214594\n", + "DDG loss: 3.8196788867916336\n", + "beta: 2.0\n", + "New evaluation:\n", + "logZ_P A1 MD -1.1102230246251565e-16\n", + "logZ_P A1 MS 0.0\n", + "DDG A1: 1.7104488457556373\n", + "logZ_P A2 MD 0.0\n", + "logZ_P A2 MS 0.0\n", + "DDG A2: 1.0928541288835474\n", + "logZ_P A3 MD 0.0\n", + "logZ_P A3 MS 0.0\n", + "DDG A3: 3.581180450804952\n", + "logZ_P A4 MD 0.0\n", + "logZ_P A4 MS -2.2204460492503136e-16\n", + "DDG A4: -2.352317534738276\n", + "logZ_P A5 MD 0.0\n", + "logZ_P A5 MS 0.0\n", + "DDG A5: -0.898174253203229\n", + "DDG loss: 17.239715782404367\n", + "loss: 17.239715782404367\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-1.11022302e-16, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(0., dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(1.71044885, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(0., dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(0., dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.09285413, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(0., dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(0., dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(3.58118045, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(0., dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-2.22044605e-16, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.35231753, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(0., dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(0., dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.89817425, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(17.23971578, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ -59.13012539 13.42119932 -159.92372304 4.94716807 -214.32616084\n", + " 17.13657393] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD 1006.7577376784199\n", + "logZ_P A1 MS 939.7778109380295\n", + "DDG A1: -164.13184976345073\n", + "logZ_P A2 MD 974.8972355044259\n", + "logZ_P A2 MS 943.2582091009472\n", + "DDG A2: -77.24537524612967\n", + "logZ_P A3 MD 990.5815404433171\n", + "logZ_P A3 MS 935.1601483420636\n", + "DDG A3: -133.64218639189855\n", + "logZ_P A4 MD 959.0058460528105\n", + "logZ_P A4 MS 944.7166389943975\n", + "DDG A4: -37.73239421136896\n", + "logZ_P A5 MD 929.5784480542363\n", + "logZ_P A5 MS 954.2829294045304\n", + "DDG A5: 60.27012157012479\n", + "DDG loss: 30084.684143098464\n", + "loss: 30751.59824832254\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(1006.75773768, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(939.77781094, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(-164.13184976, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(974.8972355, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(943.2582091, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(-77.24537525, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(990.58154044, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(935.16014834, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(-133.64218639, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(959.00584605, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(944.71663899, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-37.73239421, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(929.57844805, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(954.2829294, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(60.27012157, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(30084.6841431, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ -2323.75303959 -28378.88371678 95381.0712423 28451.5678285\n", + " 127637.38385043 775.3561114 ] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD 38.9621868385231\n", + "logZ_P A1 MS 40.26657433964557\n", + "DDG A1: 4.940112298534856\n", + "logZ_P A2 MD 33.77814090688546\n", + "logZ_P A2 MS 38.92826078553554\n", + "DDG A2: 13.84455094842113\n", + "logZ_P A3 MD 34.39895248705405\n", + "logZ_P A3 MS 39.512524183365315\n", + "DDG A3: 16.242383970871618\n", + "logZ_P A4 MD 38.87449752974301\n", + "logZ_P A4 MS 43.356775382111294\n", + "DDG A4: 8.745802427725595\n", + "logZ_P A5 MD 37.05097361066388\n", + "logZ_P A5 MS 39.408773184844364\n", + "DDG A5: 4.939737492467664\n", + "DDG loss: 201.73839159128136\n", + "loss: 366.75257552329714\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(38.96218684, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(40.26657434, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(4.9401123, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(33.77814091, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(38.92826079, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(13.84455095, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(34.39895249, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(39.51252418, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(16.24238397, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(38.87449753, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(43.35677538, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(8.74580243, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(37.05097361, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(39.40877318, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(4.93973749, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(201.73839159, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 329.0089002 -33.95580287 165.9104364 498.56883026 2044.51395447\n", + " -39.23367317] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -1.0806854201281384\n", + "logZ_P A1 MS -0.970678390980996\n", + "DDG A1: 1.9828262499239588\n", + "logZ_P A2 MD -1.141431010647032\n", + "logZ_P A2 MS -0.9682776509743679\n", + "DDG A2: 1.5215818474330376\n", + "logZ_P A3 MD -1.136084948602376\n", + "logZ_P A3 MS -0.9810759408606036\n", + "DDG A3: 3.9649827539735694\n", + "logZ_P A4 MD -1.0112668525217805\n", + "logZ_P A4 MS -0.9665923934208072\n", + "DDG A4: -2.241703574004263\n", + "logZ_P A5 MD -1.026759402883485\n", + "logZ_P A5 MS -0.9526188656709016\n", + "DDG A5: -0.7146022830648675\n", + "DDG loss: 14.76794053130866\n", + "loss: 15.486656810610354\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-1.08068542, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-0.97067839, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(1.98282625, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-1.14143101, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-0.96827765, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.52158185, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-1.13608495, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-0.98107594, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(3.96498275, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-1.01126685, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-0.96659239, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.24170357, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-1.0267594, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-0.95261887, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.71460228, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(14.76794053, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ -33.71976673 20.52587648 -124.56392032 57.70108852 -1.53164605\n", + " 15.00221207] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -5.264221099341246\n", + "logZ_P A1 MS -5.103401216739033\n", + "DDG A1: 2.108638875078714\n", + "logZ_P A2 MD -5.430322202569541\n", + "logZ_P A2 MS -5.0832816448604365\n", + "DDG A2: 1.9521265497712967\n", + "logZ_P A3 MD -5.553012753296113\n", + "logZ_P A3 MS -5.088650906861012\n", + "DDG A3: 4.730940382578251\n", + "logZ_P A4 MD -5.140783974213367\n", + "logZ_P A4 MS -5.107119935370356\n", + "DDG A4: -2.2689653745629736\n", + "logZ_P A5 MD -5.118131086071132\n", + "logZ_P A5 MS -5.051294187278971\n", + "DDG A5: -0.7326860917938383\n", + "DDG loss: 12.116296271329697\n", + "loss: 12.82982296252645\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-5.2642211, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-5.10340122, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(2.10863888, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-5.4303222, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-5.08328164, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.95212655, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-5.55301275, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-5.08865091, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(4.73094038, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-5.14078397, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-5.10711994, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.26896537, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-5.11813109, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-5.05129419, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.73268609, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(12.11629627, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [-44.51329501 -17.98101807 -60.56968522 29.03418749 -52.53182456\n", + " 12.40078362] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -8.42058302358716\n", + "logZ_P A1 MS -8.008548603810976\n", + "DDG A1: 2.730646069121451\n", + "logZ_P A2 MD -8.39887311225415\n", + "logZ_P A2 MS -7.888465576094212\n", + "DDG A2: 2.3566231884155378\n", + "logZ_P A3 MD -8.78962018960423\n", + "logZ_P A3 MS -7.860064158558197\n", + "DDG A3: 5.88276118367493\n", + "logZ_P A4 MD -7.984612513374367\n", + "logZ_P A4 MS -8.010089085537698\n", + "DDG A4: -2.4153975274146755\n", + "logZ_P A5 MD -8.039162678164084\n", + "logZ_P A5 MS -7.907517620028392\n", + "DDG A5: -0.572221089259228\n", + "DDG loss: 7.966077340645393\n", + "loss: 13.52704881237155\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-8.42058302, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-8.0085486, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(2.73064607, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-8.39887311, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-7.88846558, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(2.35662319, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-8.78962019, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-7.86006416, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(5.88276118, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-7.98461251, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-8.01008909, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.41539753, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-8.03916268, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-7.90751762, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.57222109, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(7.96607734, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 25.90668541 169.57846386 -23.0038758 24.0919477 -48.27443244\n", + " 8.11878436] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -6.756229654996013\n", + "logZ_P A1 MS -6.48774035412562\n", + "DDG A1: 2.3752283547107464\n", + "logZ_P A2 MD -6.809475569780204\n", + "logZ_P A2 MS -6.414316039401009\n", + "DDG A2: 2.0712691261024196\n", + "logZ_P A3 MD -7.05526313522584\n", + "logZ_P A3 MS -6.411901901111301\n", + "DDG A3: 5.174142866472544\n", + "logZ_P A4 MD -6.493499999795257\n", + "logZ_P A4 MS -6.487411184769245\n", + "DDG A4: -2.337241628733855\n", + "logZ_P A5 MD -6.501104396212497\n", + "logZ_P A5 MS -6.410236444502583\n", + "DDG A5: -0.6731852047694912\n", + "DDG loss: 10.165718920771717\n", + "loss: 11.576837745585875\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-6.75622965, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-6.48774035, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(2.37522835, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-6.80947557, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-6.41431604, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(2.07126913, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-7.05526314, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-6.4119019, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(5.17414287, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-6.4935, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-6.48741118, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.33724163, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-6.5011044, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-6.41023644, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.6731852, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(10.16571892, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [-14.6872544 60.77573113 -49.53164048 26.91382645 -54.32343874\n", + " 10.77158376] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -9.813606689633186\n", + "logZ_P A1 MS -9.338849857603993\n", + "DDG A1: 2.8859467618599375\n", + "logZ_P A2 MD -9.728311780764683\n", + "logZ_P A2 MS -9.263155680746701\n", + "DDG A2: 2.2445806325280615\n", + "logZ_P A3 MD -9.90083987455003\n", + "logZ_P A3 MS -9.297531514275711\n", + "DDG A3: 5.074971950844148\n", + "logZ_P A4 MD -9.31112903153838\n", + "logZ_P A4 MS -9.315334590719326\n", + "DDG A4: -2.362730499270298\n", + "logZ_P A5 MD -9.330589463261848\n", + "logZ_P A5 MS -9.291439747775868\n", + "DDG A5: -0.8012395576599516\n", + "DDG loss: 8.439839713296562\n", + "loss: 9.410232043343152\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-9.81360669, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-9.33884986, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(2.88594676, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-9.72831178, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-9.26315568, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(2.24458063, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-9.90083987, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-9.29753151, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(5.07497195, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-9.31112903, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-9.31533459, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.3627305, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-9.33058946, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-9.29143975, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.80123956, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(8.43983971, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ -9.09185407 53.35204607 -62.02753653 22.19031492 -53.70338852\n", + " 9.62070963] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -48.14409925547555\n", + "logZ_P A1 MS -47.68455345422868\n", + "DDG A1: 2.848284249642971\n", + "logZ_P A2 MD -49.13344571687962\n", + "logZ_P A2 MS -48.14524886469967\n", + "DDG A2: 3.5396295348811124\n", + "logZ_P A3 MD -49.02998675731945\n", + "logZ_P A3 MS -47.64399725379015\n", + "DDG A3: 7.012890461543504\n", + "logZ_P A4 MD -48.319600240855394\n", + "logZ_P A4 MS -48.10968940056327\n", + "DDG A4: -1.8325782941749407\n", + "logZ_P A5 MD -48.221042978094545\n", + "logZ_P A5 MS -47.96641622628005\n", + "DDG A5: -0.2677184157105303\n", + "DDG loss: 8.901524394330487\n", + "loss: 38.04232995866531\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-48.14409926, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-47.68455345, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(2.84828425, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-49.13344572, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-48.14524886, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(3.53962953, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-49.02998676, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-47.64399725, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(7.01289046, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-48.31960024, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-48.1096894, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-1.83257829, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-48.22104298, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-47.96641623, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.26771842, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(8.90152439, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [-158.03857523 88.26417944 -9.37945324 -96.35360717 -20.23728763\n", + " 3.33063235] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -12.19368266534395\n", + "logZ_P A1 MS -11.71547736737947\n", + "DDG A1: 2.8944851635156517\n", + "logZ_P A2 MD -12.173487169343167\n", + "logZ_P A2 MS -11.668909221891145\n", + "DDG A2: 2.3421891267747497\n", + "logZ_P A3 MD -12.319288579835403\n", + "logZ_P A3 MS -11.663507391993615\n", + "DDG A3: 5.204894671901205\n", + "logZ_P A4 MD -11.727922531076658\n", + "logZ_P A4 MS -11.722317812842343\n", + "DDG A4: -2.3384402523901264\n", + "logZ_P A5 MD -11.746245759089229\n", + "logZ_P A5 MS -11.68092093383331\n", + "DDG A5: -0.7364299858695513\n", + "DDG loss: 8.277965552415145\n", + "loss: 9.198346215712329\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-12.19368267, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-11.71547737, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(2.89448516, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-12.17348717, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-11.66890922, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(2.34218913, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-12.31928858, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-11.66350739, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(5.20489467, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-11.72792253, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-11.72231781, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.33844025, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-11.74624576, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-11.68092093, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.73642999, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(8.27796555, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [-15.4089972 55.6972685 -61.41382298 16.88258384 -49.33246195\n", + " 9.15727472] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -11.343209482417347\n", + "logZ_P A1 MS -10.831798154366872\n", + "DDG A1: 2.976703294008639\n", + "logZ_P A2 MD -11.31745363309445\n", + "logZ_P A2 MS -10.786576631562259\n", + "DDG A2: 2.4073055846772493\n", + "logZ_P A3 MD -11.455052307099791\n", + "logZ_P A3 MS -10.782235649132016\n", + "DDG A3: 5.2470744959331554\n", + "logZ_P A4 MD -10.8413307273438\n", + "logZ_P A4 MS -10.837167828717062\n", + "DDG A4: -2.3420101977384546\n", + "logZ_P A5 MD -10.859339584302008\n", + "logZ_P A5 MS -10.799006140797776\n", + "DDG A5: -0.7487886470867451\n", + "DDG loss: 7.953839462659866\n", + "loss: 8.779794232926884\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-11.34320948, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-10.83179815, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(2.97670329, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-11.31745363, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-10.78657663, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(2.40730558, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-11.45505231, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-10.78223565, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(5.2470745, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-10.84133073, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-10.83716783, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.3420102, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-10.85933958, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-10.79900614, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.74878865, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(7.95383946, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [-14.8876366 53.48119769 -59.07277222 16.23730411 -47.70635137\n", + " 8.7841041 ] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -7.900647100156266\n", + "logZ_P A1 MS -7.256531933392027\n", + "DDG A1: 3.3052779986638887\n", + "logZ_P A2 MD -7.854369564584009\n", + "logZ_P A2 MS -7.217150689319284\n", + "DDG A2: 2.6706080640389986\n", + "logZ_P A3 MD -7.958965304749388\n", + "logZ_P A3 MS -7.216972722747499\n", + "DDG A3: 5.418354083841619\n", + "logZ_P A4 MD -7.2548708771511725\n", + "logZ_P A4 MS -7.256394695596057\n", + "DDG A4: -2.3560905092078004\n", + "logZ_P A5 MD -7.271638450011725\n", + "logZ_P A5 MS -7.231286839843213\n", + "DDG A5: -0.7982636664259879\n", + "DDG loss: 6.786105611711913\n", + "loss: 7.296105081366778\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-7.9006471, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-7.25653193, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(3.305278, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-7.85436956, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-7.21715069, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(2.67060806, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-7.9589653, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-7.21697272, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(5.41835408, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-7.25487088, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-7.2563947, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.35609051, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-7.27163845, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-7.23128684, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.79826367, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(6.78610561, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [-12.87248668 44.20226527 -49.64210566 13.64586927 -41.11946671\n", + " 7.28146715] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -4.692146920699761\n", + "logZ_P A1 MS -3.637912778138658\n", + "DDG A1: 4.3207325827369205\n", + "logZ_P A2 MD -4.576965325861429\n", + "logZ_P A2 MS -3.6083227175980195\n", + "DDG A2: 3.491213226943747\n", + "logZ_P A3 MD -4.603591287803413\n", + "logZ_P A3 MS -3.6367443154644574\n", + "DDG A3: 5.975093554316208\n", + "logZ_P A4 MD -3.6028455997914333\n", + "logZ_P A4 MS -3.61847851053207\n", + "DDG A4: -2.3910246217320887\n", + "logZ_P A5 MD -3.6182224142450266\n", + "logZ_P A5 MS -3.639810911736756\n", + "DDG A5: -0.9516273729927635\n", + "DDG loss: 4.481648033440389\n", + "loss: 4.700181772694446\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-4.69214692, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-3.63791278, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(4.32073258, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-4.57696533, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-3.60832272, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(3.49121323, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-4.60359129, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-3.63674432, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(5.97509355, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-3.6028456, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-3.61847851, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.39102462, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-3.61822241, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-3.63981091, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.95162737, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(4.48164803, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ -4.06071105 12.96844486 -19.38741545 5.60683608 -9.2704517\n", + " 2.57162319] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD 0.674138217663612\n", + "logZ_P A1 MS 1.9331551001051772\n", + "DDG A1: 4.827774646680968\n", + "logZ_P A2 MD 0.8021865150721867\n", + "logZ_P A2 MS 1.9535265666766253\n", + "DDG A2: 3.94357209665613\n", + "logZ_P A3 MD 0.8100522762055626\n", + "logZ_P A3 MS 1.9232778015934024\n", + "DDG A3: 6.337526851665226\n", + "logZ_P A4 MD 1.9821009887780623\n", + "logZ_P A4 MS 1.956348257649998\n", + "DDG A4: -2.4160812970113663\n", + "logZ_P A5 MD 1.9701400805850984\n", + "logZ_P A5 MS 1.9209533497260713\n", + "DDG A5: -1.0199605988101628\n", + "DDG loss: 4.1259622408314\n", + "loss: 4.336315868167583\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(0.67413822, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(1.9331551, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(4.82777465, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(0.80218652, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(1.95352657, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(3.9435721, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(0.81005228, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(1.9232778, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(6.33752685, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(1.98210099, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(1.95634826, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.4160813, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(1.97014008, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(1.92095335, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.0199606, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(4.12596224, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [-1.01410968 -2.2527023 0.96027278 -0.78022612 -3.81579751 -0.02992071] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -0.670705882513415\n", + "logZ_P A1 MS 0.5914633564080706\n", + "DDG A1: 4.8355798813252395\n", + "logZ_P A2 MD -0.5357031316114425\n", + "logZ_P A2 MS 0.6138357619719959\n", + "DDG A2: 3.9391124293961446\n", + "logZ_P A3 MD -0.5299037224652481\n", + "logZ_P A3 MS 0.5813317133241802\n", + "DDG A3: 6.332599389819568\n", + "logZ_P A4 MD 0.6402918891421381\n", + "logZ_P A4 MS 0.6154142745659453\n", + "DDG A4: -2.413914508428907\n", + "logZ_P A5 MD 0.6264062164312052\n", + "logZ_P A5 MS 0.5788135980317959\n", + "DDG A5: -1.0160135763601588\n", + "DDG loss: 4.111151295771831\n", + "loss: 4.333178570442903\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-0.67070588, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(0.59146336, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(4.83557988, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-0.53570313, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(0.61383576, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(3.93911243, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-0.52990372, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(0.58133171, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(6.33259939, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(0.64029189, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(0.61541427, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.41391451, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(0.62640622, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(0.5788136, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.01601358, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(4.1111513, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 0.48086461 0.21052909 -0.45567942 0.34261993 1.89122214 -0.02676025] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -0.38357939476035013\n", + "logZ_P A1 MS 0.8738837912519586\n", + "DDG A1: 4.823927694322097\n", + "logZ_P A2 MD -0.2515511988393899\n", + "logZ_P A2 MS 0.8959413385335916\n", + "DDG A2: 3.9340456514190536\n", + "logZ_P A3 MD -0.24690769019216274\n", + "logZ_P A3 MS 0.8647309551274862\n", + "DDG A3: 6.333597736616391\n", + "logZ_P A4 MD 0.9222126078043226\n", + "logZ_P A4 MS 0.8972201180017577\n", + "DDG A4: -2.414198939489442\n", + "logZ_P A5 MD 0.9089308059358817\n", + "logZ_P A5 MS 0.8619337561086735\n", + "DDG A5: -1.0145389485754055\n", + "DDG loss: 4.1171702642690144\n", + "loss: 4.332697832793537\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-0.38357939, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(0.87388379, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(4.82392769, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-0.2515512, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(0.89594134, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(3.93404565, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-0.24690769, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(0.86473096, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(6.33359774, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(0.92221261, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(0.89722012, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.41419894, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(0.90893081, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(0.86193376, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.01453895, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(4.11717026, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [-0.01083264 0.07092594 0.04280686 -0.03427285 -0.17402585 0.00418284] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -0.3695421088335504\n", + "logZ_P A1 MS 0.8884743881935968\n", + "DDG A1: 4.825297692394877\n", + "logZ_P A2 MD -0.23746339782262704\n", + "logZ_P A2 MS 0.910429740949238\n", + "DDG A2: 3.9350375404826807\n", + "logZ_P A3 MD -0.23240785214397708\n", + "logZ_P A3 MS 0.8791725284265406\n", + "DDG A3: 6.333453473097548\n", + "logZ_P A4 MD 0.936804585000204\n", + "logZ_P A4 MS 0.9118331379451822\n", + "DDG A4: -2.4141468376465136\n", + "logZ_P A5 MD 0.9234947101374046\n", + "logZ_P A5 MS 0.8764061540833701\n", + "DDG A5: -1.0147655179930204\n", + "DDG loss: 4.117325171073212\n", + "loss: 4.332693849311971\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-0.36954211, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(0.88847439, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(4.82529769, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-0.2374634, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(0.91042974, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(3.93503754, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-0.23240785, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(0.87917253, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(6.33345347, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(0.93680459, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(0.91183314, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.41414684, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(0.92349471, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(0.87640615, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.01476552, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(4.11732517, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [-0.00133185 -0.01353601 -0.0046545 0.00703904 0.02407445 -0.00018409] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -0.37313320548218637\n", + "logZ_P A1 MS 0.8848557153193176\n", + "DDG A1: 4.825229413660173\n", + "logZ_P A2 MD -0.241038153865349\n", + "logZ_P A2 MS 0.9068263089158914\n", + "DDG A2: 3.934966538729905\n", + "logZ_P A3 MD -0.23603300142279882\n", + "logZ_P A3 MS 0.8755705426881785\n", + "DDG A3: 6.333510826023732\n", + "logZ_P A4 MD 0.9331903677005617\n", + "logZ_P A4 MS 0.9082134422902839\n", + "DDG A4: -2.414160402054109\n", + "logZ_P A5 MD 0.9198809017838169\n", + "logZ_P A5 MS 0.8727979387482533\n", + "DDG A5: -1.0147516696792849\n", + "DDG loss: 4.1172315380905555\n", + "loss: 4.332693765631739\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-0.37313321, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(0.88485572, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(4.82522941, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-0.24103815, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(0.90682631, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(3.93496654, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-0.236033, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(0.87557054, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(6.33351083, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(0.93319037, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(0.90821344, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.4141604, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(0.9198809, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(0.87279794, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-1.01475167, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(4.11723154, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 1.69063257e-04 -7.74472693e-05 2.92713506e-04 -1.24329825e-04\n", + " -1.95520919e-04 -2.24617011e-05] \n", + "\n", + "logZ_P A1 MD -0.37313320548218637\n", + "logZ_P A1 MS 0.8848557153193176\n", + "DDG A1: 4.825229413660173\n", + "logZ_P A2 MD -0.241038153865349\n", + "logZ_P A2 MS 0.9068263089158914\n", + "DDG A2: 3.934966538729905\n", + "logZ_P A3 MD -0.23603300142279882\n", + "logZ_P A3 MS 0.8755705426881785\n", + "DDG A3: 6.333510826023732\n", + "logZ_P A4 MD 0.9331903677005617\n", + "logZ_P A4 MS 0.9082134422902839\n", + "DDG A4: -2.414160402054109\n", + "logZ_P A5 MD 0.9198809017838169\n", + "logZ_P A5 MS 0.8727979387482533\n", + "DDG A5: -1.0147516696792849\n", + "DDG loss: 4.1172315380905555\n", + "beta: 5.0\n", + "New evaluation:\n", + "logZ_P A1 MD -1.1102230246251565e-16\n", + "logZ_P A1 MS 0.0\n", + "DDG A1: 1.7104488457556373\n", + "logZ_P A2 MD 0.0\n", + "logZ_P A2 MS 0.0\n", + "DDG A2: 1.0928541288835474\n", + "logZ_P A3 MD 0.0\n", + "logZ_P A3 MS 0.0\n", + "DDG A3: 3.581180450804952\n", + "logZ_P A4 MD 0.0\n", + "logZ_P A4 MS -2.2204460492503136e-16\n", + "DDG A4: -2.352317534738276\n", + "logZ_P A5 MD 0.0\n", + "logZ_P A5 MS 0.0\n", + "DDG A5: -0.898174253203229\n", + "DDG loss: 17.239715782404367\n", + "loss: 17.239715782404367\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-1.11022302e-16, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(0., dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(1.71044885, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(0., dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(0., dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.09285413, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(0., dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(0., dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(3.58118045, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(0., dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-2.22044605e-16, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.35231753, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(0., dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(0., dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.89817425, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(17.23971578, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ -59.13012539 13.42119932 -159.92372304 4.94716807 -214.32616084\n", + " 17.13657393] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD 1006.7577376784233\n", + "logZ_P A1 MS 939.7778109380326\n", + "DDG A1: -164.1318497634513\n", + "logZ_P A2 MD 974.8972355044294\n", + "logZ_P A2 MS 943.2582091009508\n", + "DDG A2: -77.24537524612938\n", + "logZ_P A3 MD 990.5815404433204\n", + "logZ_P A3 MS 935.1601483420673\n", + "DDG A3: -133.6421863918977\n", + "logZ_P A4 MD 959.0058460528139\n", + "logZ_P A4 MS 944.716638994401\n", + "DDG A4: -37.732394211368685\n", + "logZ_P A5 MD 929.57844805424\n", + "logZ_P A5 MS 954.2829294045338\n", + "DDG A5: 60.27012157012423\n", + "DDG loss: 30084.684143098377\n", + "loss: 31751.969406158576\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(1006.75773768, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(939.77781094, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(-164.13184976, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(974.8972355, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(943.2582091, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(-77.24537525, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(990.58154044, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(935.16014834, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(-133.64218639, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(959.00584605, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(944.71663899, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-37.73239421, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(929.57844805, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(954.2829294, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(60.27012157, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(30084.6841431, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ -2217.43422408 -28594.83711448 95353.99671531 28678.51608058\n", + " 129388.97769316 775.21107861] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD 37.13127470052565\n", + "logZ_P A1 MS 38.47303768308821\n", + "DDG A1: 5.032653990580528\n", + "logZ_P A2 MD 32.063752537708865\n", + "logZ_P A2 MS 37.14807410390898\n", + "DDG A2: 13.681634326795038\n", + "logZ_P A3 MD 32.651935890761095\n", + "logZ_P A3 MS 37.708902822793696\n", + "DDG A3: 16.102230574517655\n", + "logZ_P A4 MD 37.100770787211715\n", + "logZ_P A4 MS 41.49805778666857\n", + "DDG A4: 8.535365075916891\n", + "logZ_P A5 MD 35.32359998052827\n", + "logZ_P A5 MS 37.64564864414274\n", + "DDG A5: 4.851218237906191\n", + "DDG loss: 195.45181256242302\n", + "loss: 604.5899309548635\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(37.1312747, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(38.47303768, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(5.03265399, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(32.06375254, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(37.1480741, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(13.68163433, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(32.65193589, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(37.70890282, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(16.10223057, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(37.10077079, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(41.49805779, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(8.53536508, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(35.32359998, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(37.64564864, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(4.85121824, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(195.45181256, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 414.77090442 3.13136129 273.83985403 682.73364219 2613.03477489\n", + " -38.80709014] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -0.6099487226923482\n", + "logZ_P A1 MS -0.5508086221448255\n", + "DDG A1: 1.8568797347113053\n", + "logZ_P A2 MD -0.6395725128649353\n", + "logZ_P A2 MS -0.5478938608874655\n", + "DDG A2: 1.3198504711797394\n", + "logZ_P A3 MD -0.6370621084296542\n", + "logZ_P A3 MS -0.5550525158247608\n", + "DDG A3: 3.7842362020946965\n", + "logZ_P A4 MD -0.5712187144513399\n", + "logZ_P A4 MS -0.5475612619381358\n", + "DDG A4: -2.2937416823156145\n", + "logZ_P A5 MD -0.5796294821158159\n", + "logZ_P A5 MS -0.5402714003980666\n", + "DDG A5: -0.800723642870078\n", + "DDG loss: 15.865680689843801\n", + "loss: 16.378876280038988\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-0.60994872, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-0.55080862, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(1.85687973, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-0.63957251, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-0.54789386, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.31985047, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-0.63706211, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-0.55505252, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(3.7842362, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-0.57121871, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-0.54756126, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.29374168, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-0.57962948, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-0.5402714, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.80072364, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(15.86568069, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ -29.30392172 28.68761589 -136.1031221 74.89583991 43.62244194\n", + " 16.00233368] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -2.4811298371226216\n", + "logZ_P A1 MS -2.3906639898567335\n", + "DDG A1: 1.9344422835859796\n", + "logZ_P A2 MD -2.560987668328144\n", + "logZ_P A2 MS -2.3808429851587936\n", + "DDG A2: 1.5388923644108465\n", + "logZ_P A3 MD -2.6108937118193065\n", + "logZ_P A3 MS -2.385934712641466\n", + "DDG A3: 4.138178932769257\n", + "logZ_P A4 MD -2.413949393121047\n", + "logZ_P A4 MS -2.390382579905283\n", + "DDG A4: -2.2939661052160405\n", + "logZ_P A5 MD -2.40676351912418\n", + "logZ_P A5 MS -2.36421979340272\n", + "DDG A5: -0.7928359883168984\n", + "DDG loss: 14.360915194885902\n", + "loss: 14.94411497652802\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-2.48112984, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-2.39066399, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(1.93444228, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-2.56098767, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-2.38084299, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.53889236, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-2.61089371, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-2.38593471, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(4.13817893, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-2.41394939, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-2.39038258, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.29396611, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-2.40676352, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-2.36421979, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.79283599, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(14.36091519, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [-41.37604564 -8.27518314 -83.67741756 55.91672329 4.76477257\n", + " 14.72245392] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -4.56780841634831\n", + "logZ_P A1 MS -4.367404360649096\n", + "DDG A1: 2.2066492876669153\n", + "logZ_P A2 MD -4.565979934028028\n", + "logZ_P A2 MS -4.308121699322824\n", + "DDG A2: 1.7313111180136136\n", + "logZ_P A3 MD -4.744588742826501\n", + "logZ_P A3 MS -4.3054245731798\n", + "DDG A3: 4.668550934850151\n", + "logZ_P A4 MD -4.3681535379173395\n", + "logZ_P A4 MS -4.3654569315967375\n", + "DDG A4: -2.345640737488477\n", + "logZ_P A5 MD -4.38298142467682\n", + "logZ_P A5 MS -4.311136427795523\n", + "DDG A5: -0.7202860409251396\n", + "DDG loss: 11.826055610108172\n", + "loss: 14.176981819996985\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-4.56780842, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-4.36740436, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(2.20664929, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-4.56597993, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-4.3081217, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.73131112, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-4.74458874, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-4.30542457, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(4.66855093, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-4.36815354, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-4.36545693, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.34564074, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-4.38298142, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-4.31113643, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.72028604, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(11.82605561, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 19.26384385 160.85774852 -63.45109786 54.37969294 -9.08688999\n", + " 12.76621591] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -6.42944903066988\n", + "logZ_P A1 MS -6.130505873260411\n", + "DDG A1: 2.4506321035014804\n", + "logZ_P A2 MD -6.384470979835886\n", + "logZ_P A2 MS -6.069498677429427\n", + "DDG A2: 1.8727255496419422\n", + "logZ_P A3 MD -6.54352218406291\n", + "logZ_P A3 MS -6.079676099069307\n", + "DDG A3: 4.729663357249119\n", + "logZ_P A4 MD -6.120421099692763\n", + "logZ_P A4 MS -6.121012101257917\n", + "DDG A4: -2.3537808546136003\n", + "logZ_P A5 MD -6.138869126117471\n", + "logZ_P A5 MS -6.083529666283375\n", + "DDG A5: -0.7611537506539937\n", + "DDG loss: 10.684387718224329\n", + "loss: 12.748950666569291\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-6.42944903, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-6.13050587, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(2.4506321, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-6.38447098, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-6.06949868, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.87272555, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-6.54352218, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-6.0796761, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(4.72966336, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-6.1204211, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-6.1210121, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.35378085, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-6.13886913, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-6.08352967, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.76115375, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(10.68438772, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 23.02444515 154.03119532 -69.83516359 49.23518463 -8.57540642\n", + " 11.88740843] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -20.74156790975941\n", + "logZ_P A1 MS -20.467204502229237\n", + "DDG A1: 2.3897726428003487\n", + "logZ_P A2 MD -21.175873630954147\n", + "logZ_P A2 MS -20.57981241731344\n", + "DDG A2: 2.5687016938579084\n", + "logZ_P A3 MD -21.26220146696366\n", + "logZ_P A3 MS -20.359516448164925\n", + "DDG A3: 5.81622855735062\n", + "logZ_P A4 MD -20.711191083016725\n", + "logZ_P A4 MS -20.643245416459497\n", + "DDG A4: -2.18408406434256\n", + "logZ_P A5 MD -20.703589545201147\n", + "logZ_P A5 MS -20.49842330360335\n", + "DDG A5: -0.39018263900709005\n", + "DDG loss: 9.754007066213493\n", + "loss: 23.40944423609115\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-20.74156791, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-20.4672045, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(2.38977264, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-21.17587363, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-20.57981242, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(2.56870169, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-21.26220147, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-20.35951645, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(5.81622856, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-20.71119108, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-20.64324542, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.18408406, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-20.70358955, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-20.4984233, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.39018264, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(9.75400707, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [-90.44030719 198.40210678 -47.37570313 -37.19167438 14.13172348\n", + " 8.50473853] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -7.835694215247125\n", + "logZ_P A1 MS -7.538176098843002\n", + "DDG A1: 2.4471037019722743\n", + "logZ_P A2 MD -7.838754509373283\n", + "logZ_P A2 MS -7.493790758119049\n", + "DDG A2: 1.946984376989048\n", + "logZ_P A3 MD -7.988887851551283\n", + "logZ_P A3 MS -7.4784288946537725\n", + "DDG A3: 4.845076828083183\n", + "logZ_P A4 MD -7.553790939298868\n", + "logZ_P A4 MS -7.5479379106397655\n", + "DDG A4: -2.3378254357783357\n", + "logZ_P A5 MD -7.570370215612783\n", + "logZ_P A5 MS -7.4962823354616965\n", + "DDG A5: -0.7147326619491471\n", + "DDG loss: 10.493770996895059\n", + "loss: 12.568085250237374\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-7.83569422, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-7.5381761, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(2.4471037, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-7.83875451, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-7.49379076, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.94698438, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-7.98888785, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-7.47842889, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(4.84507683, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-7.55379094, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-7.54793791, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.33782544, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-7.57037022, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-7.49628234, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.71473266, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(10.493771, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 12.99537448 158.08455635 -68.75891647 41.74650538 -5.159385\n", + " 11.5220057 ] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -7.246553213599067\n", + "logZ_P A1 MS -6.928691567053714\n", + "DDG A1: 2.497474282601931\n", + "logZ_P A2 MD -7.247990691875143\n", + "logZ_P A2 MS -6.885519696124135\n", + "DDG A2: 1.9903323143630496\n", + "logZ_P A3 MD -7.393252009074614\n", + "logZ_P A3 MS -6.869757442429239\n", + "DDG A3: 4.877352997818919\n", + "logZ_P A4 MD -6.943588342155064\n", + "logZ_P A4 MS -6.938263343017798\n", + "DDG A4: -2.33913283687439\n", + "logZ_P A5 MD -6.960144972656122\n", + "logZ_P A5 MS -6.887769862616523\n", + "DDG A5: -0.7189734807451756\n", + "DDG loss: 10.23597282809748\n", + "loss: 12.20798335907375\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-7.24655321, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-6.92869157, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(2.49747428, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-7.24799069, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-6.8855197, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.99033231, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-7.39325201, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-6.86975744, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(4.877353, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-6.94358834, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-6.93826334, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.33913284, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-6.96014497, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-6.88776986, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.71897348, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(10.23597283, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 12.85673821 156.18356896 -67.84019249 41.26101393 -5.29790246\n", + " 11.27386597] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -4.866558724141053\n", + "logZ_P A1 MS -4.4675024875780736\n", + "DDG A1: 2.6985120874855864\n", + "logZ_P A2 MD -4.861918176975832\n", + "logZ_P A2 MS -4.4292444611286514\n", + "DDG A2: 2.1641542493211827\n", + "logZ_P A3 MD -4.987651482399521\n", + "logZ_P A3 MS -4.411878700665165\n", + "DDG A3: 5.0067938583791864\n", + "logZ_P A4 MD -4.47962691510077\n", + "logZ_P A4 MS -4.4763934697679755\n", + "DDG A4: -2.3443115240942727\n", + "logZ_P A5 MD -4.496095879334322\n", + "logZ_P A5 MS -4.430564710782489\n", + "DDG A5: -0.7359190798689016\n", + "DDG loss: 9.260678612280051\n", + "loss: 10.872841164202942\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-4.86655872, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-4.46750249, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(2.69851209, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-4.86191818, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-4.42924446, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(2.16415425, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-4.98765148, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-4.4118787, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(5.00679386, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-4.47962692, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-4.47639347, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.34431152, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-4.49609588, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-4.43056471, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.73591908, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(9.26067861, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 12.25197944 148.45327317 -64.15175966 39.31031793 -5.95051874\n", + " 10.28071038] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -4.686802122068207\n", + "logZ_P A1 MS -4.068593384063732\n", + "DDG A1: 3.241133681054703\n", + "logZ_P A2 MD -4.659530488472238\n", + "logZ_P A2 MS -4.03610406412202\n", + "DDG A2: 2.6364579555747123\n", + "logZ_P A3 MD -4.749628771230316\n", + "logZ_P A3 MS -4.031136561058458\n", + "DDG A3: 5.360167163190477\n", + "logZ_P A4 MD -4.069875311370623\n", + "logZ_P A4 MS -4.069988031990054\n", + "DDG A4: -2.3525966309919775\n", + "logZ_P A5 MD -4.083238406331904\n", + "logZ_P A5 MS -4.0431680730448\n", + "DDG A5: -0.7989601079843579\n", + "DDG loss: 7.047117799988134\n", + "loss: 7.9063967492182\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-4.68680212, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-4.06859338, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(3.24113368, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-4.65953049, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-4.03610406, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(2.63645796, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-4.74962877, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-4.03113656, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(5.36016716, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-4.06987531, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-4.06998803, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.35259663, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-4.08323841, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-4.04316807, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.79896011, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(7.0471178, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 8.58996104 105.19447797 -46.40991596 28.37112374 -2.49469973\n", + " 7.58696741] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -0.3988702082290627\n", + "logZ_P A1 MS 0.7435112874550538\n", + "DDG A1: 4.538985429069482\n", + "logZ_P A2 MD -0.3396844481567811\n", + "logZ_P A2 MS 0.7541737836407875\n", + "DDG A2: 3.8012471108142925\n", + "logZ_P A3 MD -0.3362602847431013\n", + "logZ_P A3 MS 0.7420213416794013\n", + "DDG A3: 6.251005757827084\n", + "logZ_P A4 MD 0.7631750529583021\n", + "logZ_P A4 MS 0.7535172167974697\n", + "DDG A4: -2.376230337072483\n", + "logZ_P A5 MD 0.7547434226340086\n", + "logZ_P A5 MS 0.7394419072806995\n", + "DDG A5: -0.9360608052180361\n", + "DDG loss: 4.418062492881538\n", + "loss: 4.531466134581766\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-0.39887021, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(0.74351129, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(4.53898543, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-0.33968445, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(0.75417378, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(3.80124711, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-0.33626028, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(0.74202134, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(6.25100576, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(0.76317505, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(0.75351722, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.37623034, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(0.75474342, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(0.73944191, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.93606081, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(4.41806249, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 1.75651391 13.93948635 -9.84367367 5.93866993 5.81762095 0.98526465] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -0.4380574640249433\n", + "logZ_P A1 MS 0.7763992660659395\n", + "DDG A1: 4.71744370946064\n", + "logZ_P A2 MD -0.3786795722337359\n", + "logZ_P A2 MS 0.7854289587017378\n", + "DDG A2: 3.975186851479794\n", + "logZ_P A3 MD -0.37039263252585863\n", + "logZ_P A3 MS 0.7707969916436017\n", + "DDG A3: 6.406765960248561\n", + "logZ_P A4 MD 0.7989180646085848\n", + "logZ_P A4 MS 0.7876103516967128\n", + "DDG A4: -2.380315431908072\n", + "logZ_P A5 MD 0.7925431674075257\n", + "logZ_P A5 MS 0.7698335338990219\n", + "DDG A5: -0.9544033057703052\n", + "DDG loss: 4.3658859410139685\n", + "loss: 4.478889045833487\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-0.43805746, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(0.77639927, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(4.71744371, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-0.37867957, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(0.78542896, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(3.97518685, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-0.37039263, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(0.77079699, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(6.40676596, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(0.79891806, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(0.78761035, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.38031543, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(0.79254317, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(0.76983353, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.95440331, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(4.36588594, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [-0.16151502 -0.59214949 0.18574801 -0.33370234 -0.68810238 -0.01491911] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -0.37557546996088814\n", + "logZ_P A1 MS 0.8377625921977229\n", + "DDG A1: 4.714673887660362\n", + "logZ_P A2 MD -0.3162601583600293\n", + "logZ_P A2 MS 0.8467994433133872\n", + "DDG A2: 3.972589702626911\n", + "logZ_P A3 MD -0.3079683793827931\n", + "logZ_P A3 MS 0.8323518897169334\n", + "DDG A3: 6.404613437095888\n", + "logZ_P A4 MD 0.8601707969007535\n", + "logZ_P A4 MS 0.8489113059330297\n", + "DDG A4: -2.3801960343743436\n", + "logZ_P A5 MD 0.8537003980445365\n", + "logZ_P A5 MS 0.831299278111053\n", + "DDG A5: -0.9536394261585528\n", + "DDG loss: 4.3664462035919716\n", + "loss: 4.4788432065784445\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-0.37557547, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(0.83776259, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(4.71467389, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-0.31626016, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(0.84679944, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(3.9725897, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-0.30796838, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(0.83235189, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(6.40461344, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(0.8601708, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(0.84891131, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.38019603, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(0.8537004, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(0.83129928, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.95363943, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(4.3664462, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [-0.00319851 0.00613461 0.01469849 0.00244384 -0.03161217 -0.00011688] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -0.3855179073675092\n", + "logZ_P A1 MS 0.827826510073584\n", + "DDG A1: 4.714689623339782\n", + "logZ_P A2 MD -0.32617212049087285\n", + "logZ_P A2 MS 0.8368682228630826\n", + "DDG A2: 3.9725420190279412\n", + "logZ_P A3 MD -0.3178793745690107\n", + "logZ_P A3 MS 0.822402427120058\n", + "DDG A3: 6.404518191787091\n", + "logZ_P A4 MD 0.8502342146894503\n", + "logZ_P A4 MS 0.8389802156699804\n", + "DDG A4: -2.380182436310492\n", + "logZ_P A5 MD 0.8437579225794181\n", + "logZ_P A5 MS 0.8213531404054357\n", + "DDG A5: -0.9536484938660005\n", + "DDG loss: 4.366373991713115\n", + "loss: 4.478842636652946\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-0.38551791, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(0.82782651, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(4.71468962, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-0.32617212, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(0.83686822, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(3.97254202, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-0.31787937, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(0.82240243, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(6.40451819, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(0.85023421, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(0.83898022, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.38018244, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(0.84375792, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(0.82135314, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.95364849, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(4.36637399, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 0.00375753 0.00524216 -0.00658758 0.00548445 0.01869857 0.00013335] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -0.3849865265204877\n", + "logZ_P A1 MS 0.8283592357322608\n", + "DDG A1: 4.714692953093464\n", + "logZ_P A2 MD -0.32564946669406036\n", + "logZ_P A2 MS 0.8374002536197905\n", + "DDG A2: 3.9725652363806407\n", + "logZ_P A3 MD -0.3173616196752937\n", + "logZ_P A3 MS 0.8229372242087634\n", + "DDG A3: 6.404560388261869\n", + "logZ_P A4 MD 0.8507665595251865\n", + "logZ_P A4 MS 0.8395114229029039\n", + "DDG A4: -2.380185253015046\n", + "logZ_P A5 MD 0.8442930764850243\n", + "logZ_P A5 MS 0.821887560221493\n", + "DDG A5: -0.9536503114717352\n", + "DDG loss: 4.366390435656553\n", + "loss: 4.4788426264205095\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-0.38498653, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(0.82835924, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(4.71469295, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-0.32564947, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(0.83740025, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(3.97256524, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-0.31736162, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(0.82293722, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(6.40456039, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(0.85076656, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(0.83951142, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.38018525, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(0.84429308, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(0.82188756, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.95365031, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(4.36639044, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [-3.35380144e-04 -5.04747458e-04 6.43303090e-04 -5.73161692e-04\n", + " -1.72627413e-03 -1.86605516e-06] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -0.3849292422322093\n", + "logZ_P A1 MS 0.8284172815800703\n", + "DDG A1: 4.714694838714834\n", + "logZ_P A2 MD -0.32559152342197817\n", + "logZ_P A2 MS 0.8374581885712779\n", + "DDG A2: 3.9725652157788414\n", + "logZ_P A3 MD -0.3173027456593811\n", + "logZ_P A3 MS 0.8229950923917682\n", + "DDG A3: 6.404557897819575\n", + "logZ_P A4 MD 0.8508246224209308\n", + "logZ_P A4 MS 0.8395695478276348\n", + "DDG A4: -2.380185099431271\n", + "logZ_P A5 MD 0.8443508709624681\n", + "logZ_P A5 MS 0.8219453913550021\n", + "DDG A5: -0.9536502207113274\n", + "DDG loss: 4.3663892176464945\n", + "loss: 4.478842626348367\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-0.38492924, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(0.82841728, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(4.71469484, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-0.32559152, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(0.83745819, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(3.97256522, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-0.31730275, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(0.82299509, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(6.4045579, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(0.85082462, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(0.83956955, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.3801851, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(0.84435087, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(0.82194539, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.95365022, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(4.36638922, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 8.80157583e-06 -3.06941786e-06 -2.18343665e-05 2.50505798e-05\n", + " 6.89413895e-05 -6.44809897e-07] \n", + "\n", + "logZ_P A1 MD -0.3849292422322093\n", + "logZ_P A1 MS 0.8284172815800703\n", + "DDG A1: 4.714694838714834\n", + "logZ_P A2 MD -0.32559152342197817\n", + "logZ_P A2 MS 0.8374581885712779\n", + "DDG A2: 3.9725652157788414\n", + "logZ_P A3 MD -0.3173027456593811\n", + "logZ_P A3 MS 0.8229950923917682\n", + "DDG A3: 6.404557897819575\n", + "logZ_P A4 MD 0.8508246224209308\n", + "logZ_P A4 MS 0.8395695478276348\n", + "DDG A4: -2.380185099431271\n", + "logZ_P A5 MD 0.8443508709624681\n", + "logZ_P A5 MS 0.8219453913550021\n", + "DDG A5: -0.9536502207113274\n", + "DDG loss: 4.3663892176464945\n", + "beta: 10.0\n", + "New evaluation:\n", + "logZ_P A1 MD -1.1102230246251565e-16\n", + "logZ_P A1 MS 0.0\n", + "DDG A1: 1.7104488457556373\n", + "logZ_P A2 MD 0.0\n", + "logZ_P A2 MS 0.0\n", + "DDG A2: 1.0928541288835474\n", + "logZ_P A3 MD 0.0\n", + "logZ_P A3 MS 0.0\n", + "DDG A3: 3.581180450804952\n", + "logZ_P A4 MD 0.0\n", + "logZ_P A4 MS -2.2204460492503136e-16\n", + "DDG A4: -2.352317534738276\n", + "logZ_P A5 MD 0.0\n", + "logZ_P A5 MS 0.0\n", + "DDG A5: -0.898174253203229\n", + "DDG loss: 17.239715782404367\n", + "loss: 17.23971578240437\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-1.11022302e-16, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(0., dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(1.71044885, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(0., dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(0., dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.09285413, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(0., dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(0., dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(3.58118045, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(0., dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-2.22044605e-16, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.35231753, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(0., dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(0., dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.89817425, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(17.23971578, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ -59.13012539 13.42119932 -159.92372304 4.94716807 -214.32616084\n", + " 17.13657393] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD 1006.757737678423\n", + "logZ_P A1 MS 939.7778109380326\n", + "DDG A1: -164.13184976345073\n", + "logZ_P A2 MD 974.8972355044294\n", + "logZ_P A2 MS 943.2582091009508\n", + "DDG A2: -77.24537524612938\n", + "logZ_P A3 MD 990.5815404433201\n", + "logZ_P A3 MS 935.1601483420671\n", + "DDG A3: -133.6421863918974\n", + "logZ_P A4 MD 959.0058460528139\n", + "logZ_P A4 MS 944.7166389944011\n", + "DDG A4: -37.7323942113684\n", + "logZ_P A5 MD 929.5784480542397\n", + "logZ_P A5 MS 954.282929404534\n", + "DDG A5: 60.270121570125355\n", + "DDG loss: 30084.6841430983\n", + "loss: 33419.2546692187\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(1006.75773768, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(939.77781094, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(-164.13184976, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(974.8972355, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(943.2582091, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(-77.24537525, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(990.58154044, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(935.16014834, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(-133.64218639, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(959.00584605, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(944.71663899, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-37.73239421, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(929.57844805, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(954.2829294, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(60.27012157, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(30084.6841431, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ -2040.23619823 -28954.75944397 95308.87250365 29056.76316737\n", + " 132308.30076437 774.9693573 ] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD 34.12098647165725\n", + "logZ_P A1 MS 35.51746070053196\n", + "DDG A1: 5.168119036449452\n", + "logZ_P A2 MD 29.25047044474976\n", + "logZ_P A2 MS 34.21736569792244\n", + "DDG A2: 13.390886775739103\n", + "logZ_P A3 MD 29.785363956493114\n", + "logZ_P A3 MS 34.737851652471974\n", + "DDG A3: 15.84353998604861\n", + "logZ_P A4 MD 34.17795187666957\n", + "logZ_P A4 MS 38.42864189106854\n", + "DDG A4: 8.172390940913573\n", + "logZ_P A5 MD 32.480717206662675\n", + "logZ_P A5 MS 34.740639439566976\n", + "DDG A5: 4.697393195467821\n", + "DDG loss: 184.61702384977127\n", + "loss: 990.6683467310787\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(34.12098647, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(35.5174607, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(5.16811904, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(29.25047044, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(34.2173657, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(13.39088678, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(29.78536396, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(34.73785165, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(15.84353999, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(34.17795188, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(38.42864189, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(8.17239094, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(32.48071721, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(34.74063944, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(4.6973932, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(184.61702385, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 582.57367583 107.48450217 442.54275276 1031.75581431 3696.33601003\n", + " -37.98429892] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -0.34283791016629506\n", + "logZ_P A1 MS -0.31038931297744266\n", + "DDG A1: 1.790791572395221\n", + "logZ_P A2 MD -0.35824283725922895\n", + "logZ_P A2 MS -0.3083364549190625\n", + "DDG A2: 1.2164223315578044\n", + "logZ_P A3 MD -0.3569689292804796\n", + "logZ_P A3 MS -0.31235324839774703\n", + "DDG A3: 3.6916488766706226\n", + "logZ_P A4 MD -0.32118776136512595\n", + "logZ_P A4 MS -0.3083137749434343\n", + "DDG A4: -2.3204415443581587\n", + "logZ_P A5 MD -0.32583694182128364\n", + "logZ_P A5 MS -0.30437707939390063\n", + "DDG A5: -0.845039633833042\n", + "DDG loss: 16.473431925803702\n", + "loss: 16.780550520180345\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-0.34283791, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-0.31038931, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(1.79079157, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-0.35824284, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-0.30833645, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.21642233, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-0.35696893, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-0.31235325, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(3.69164888, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-0.32118776, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-0.30831377, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.32044154, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-0.32583694, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-0.30437708, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.84503963, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(16.47343193, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ -27.92354986 32.31313078 -142.51950417 81.4207164 58.79169787\n", + " 16.51793491] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -1.3097168677352682\n", + "logZ_P A1 MS -1.2593179562672143\n", + "DDG A1: 1.835236550550531\n", + "logZ_P A2 MD -1.351753916352451\n", + "logZ_P A2 MS -1.2538171362899104\n", + "DDG A2: 1.3353455963183958\n", + "logZ_P A3 MD -1.3766460845229056\n", + "logZ_P A3 MS -1.2570343824524448\n", + "DDG A3: 3.877339025131405\n", + "logZ_P A4 MD -1.2723761781574798\n", + "logZ_P A4 MS -1.2586205758865274\n", + "DDG A4: -2.3182586635153752\n", + "logZ_P A5 MD -1.269326811150367\n", + "logZ_P A5 MS -1.2449453979009195\n", + "DDG A5: -0.8378058739976068\n", + "DDG loss: 15.61451893845278\n", + "loss: 15.988728923668914\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-1.30971687, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-1.25931796, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(1.83523655, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-1.35175392, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-1.25381714, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.3353456, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-1.37664608, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-1.25703438, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(3.87733903, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-1.27237618, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-1.25862058, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.31825866, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-1.26932681, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-1.2449454, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.83780587, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(15.61451894, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [-40.46598872 -2.91919048 -95.58676891 66.58290511 24.79691523\n", + " 15.8311647 ] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -2.525189549826105\n", + "logZ_P A1 MS -2.4175404533621045\n", + "DDG A1: 1.9769880086005052\n", + "logZ_P A2 MD -2.5278996552105593\n", + "logZ_P A2 MS -2.3866133044783004\n", + "DDG A2: 1.4426791332966191\n", + "logZ_P A3 MD -2.6190906936492935\n", + "logZ_P A3 MS -2.3872466117849007\n", + "DDG A3: 4.155226397501194\n", + "logZ_P A4 MD -2.4204948016779295\n", + "logZ_P A4 MS -2.4155975713421043\n", + "DDG A4: -2.340191992426765\n", + "logZ_P A5 MD -2.4261905598225626\n", + "logZ_P A5 MS -2.386462338921171\n", + "DDG A5: -0.7998071782514098\n", + "DDG loss: 14.13111199590541\n", + "loss: 15.30578897105082\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-2.52518955, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-2.41754045, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(1.97698801, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-2.52789966, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-2.3866133, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.44267913, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-2.61909069, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-2.38724661, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(4.1552264, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-2.4204948, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-2.41559757, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.34019199, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-2.42619056, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-2.38646234, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.79980718, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(14.131112, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 13.94656798 152.3284978 -77.54469359 67.25696293 8.23446154\n", + " 14.79476601] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -4.168510479641727\n", + "logZ_P A1 MS -3.9827869859970337\n", + "DDG A1: 2.170300216019883\n", + "logZ_P A2 MD -4.148838245701613\n", + "logZ_P A2 MS -3.9501644237731637\n", + "DDG A2: 1.5847705119783941\n", + "logZ_P A3 MD -4.231997216738089\n", + "logZ_P A3 MS -3.959141912903135\n", + "DDG A3: 4.25677018310031\n", + "logZ_P A4 MD -3.9794510505594887\n", + "logZ_P A4 MS -3.976302701151865\n", + "DDG A4: -2.3445222216049992\n", + "logZ_P A5 MD -3.987119920337505\n", + "logZ_P A5 MS -3.956764978437879\n", + "DDG A5: -0.8230154170597422\n", + "DDG loss: 12.972464615356063\n", + "loss: 14.030956161240681\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-4.16851048, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-3.98278699, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(2.17030022, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-4.14883825, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-3.95016442, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.58477051, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-4.23199722, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-3.95914191, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(4.25677018, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-3.97945105, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-3.9763027, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.34452222, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-3.98711992, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-3.95676498, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.82301542, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(12.97246462, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 18.29262848 143.86350916 -83.56250882 60.93522456 9.57573648\n", + " 13.93442098] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -13.613581518419325\n", + "logZ_P A1 MS -13.433007494304896\n", + "DDG A1: 2.157550129462943\n", + "logZ_P A2 MD -13.909902117467166\n", + "logZ_P A2 MS -13.502435165626688\n", + "DDG A2: 2.101742301640566\n", + "logZ_P A3 MD -13.965180679501815\n", + "logZ_P A3 MS -13.355518635475054\n", + "DDG A3: 5.090703671815216\n", + "logZ_P A4 MD -13.59456930073186\n", + "logZ_P A4 MS -13.547646498157519\n", + "DDG A4: -2.236136675564202\n", + "logZ_P A5 MD -13.583865402183656\n", + "logZ_P A5 MS -13.440339299781423\n", + "DDG A5: -0.542803623655298\n", + "DDG loss: 11.383643424352204\n", + "loss: 22.82080945410184\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-13.61358152, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-13.43300749, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(2.15755013, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-13.90990212, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-13.50243517, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(2.1017423, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-13.96518068, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-13.35551864, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(5.09070367, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-13.5945693, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-13.5476465, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.23613668, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-13.5838654, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-13.4403393, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.54280362, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(11.38364342, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [-119.00365756 200.32253327 -70.63658542 -37.36752518 37.36889276\n", + " 11.30689954] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -5.177197649071231\n", + "logZ_P A1 MS -4.991445608520908\n", + "DDG A1: 2.170370898158246\n", + "logZ_P A2 MD -5.191728761477875\n", + "logZ_P A2 MS -4.969542885102674\n", + "DDG A2: 1.6429863587885591\n", + "logZ_P A3 MD -5.2713404952969345\n", + "logZ_P A3 MS -4.960442624331914\n", + "DDG A3: 4.350963579314346\n", + "logZ_P A4 MD -5.006115482747278\n", + "logZ_P A4 MS -4.998373825842378\n", + "DDG A4: -2.3331491922417493\n", + "logZ_P A5 MD -5.012084093697262\n", + "logZ_P A5 MS -4.967608177013614\n", + "DDG A5: -0.7880518834945068\n", + "DDG loss: 12.736888437783103\n", + "loss: 13.868179557388816\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-5.17719765, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-4.99144561, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(2.1703709, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-5.19172876, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-4.96954289, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.64298636, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-5.2713405, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-4.96044262, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(4.35096358, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-5.00611548, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-4.99837383, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.33314919, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-5.01208409, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-4.96760818, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.78805188, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(12.73688844, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 4.45096409 149.45887512 -82.86765293 51.3129398 13.56123325\n", + " 13.63526576] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -4.8079133969433325\n", + "logZ_P A1 MS -4.605140425470197\n", + "DDG A1: 2.212514723123127\n", + "logZ_P A2 MD -4.821898429211289\n", + "logZ_P A2 MS -4.583955792954037\n", + "DDG A2: 1.682000096256485\n", + "logZ_P A3 MD -4.898919205074526\n", + "logZ_P A3 MS -4.5743925533906635\n", + "DDG A3: 4.384708440374174\n", + "logZ_P A4 MD -4.619553556265746\n", + "logZ_P A4 MS -4.612109716112587\n", + "DDG A4: -2.333886586519057\n", + "logZ_P A5 MD -4.625621087847136\n", + "logZ_P A5 MS -4.581810786050479\n", + "DDG A5: -0.7896999459547136\n", + "DDG loss: 12.468453996764184\n", + "loss: 13.543290167417677\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-4.8079134, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-4.60514043, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(2.21251472, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-4.82189843, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-4.58395579, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.6820001, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-4.89891921, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-4.57439255, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(4.38470844, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-4.61955356, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-4.61210972, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.33388659, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-4.62562109, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-4.58181079, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.78969995, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(12.468454, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 4.4829074 148.62518875 -82.34131515 51.10267565 13.44105111\n", + " 13.40893896] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -3.321677260206053\n", + "logZ_P A1 MS -3.05090391196728\n", + "DDG A1: 2.380883655994848\n", + "logZ_P A2 MD -3.3335811382943774\n", + "logZ_P A2 MS -3.0325977148361023\n", + "DDG A2: 1.838089085366241\n", + "logZ_P A3 MD -3.400226850286836\n", + "logZ_P A3 MS -3.021185788606984\n", + "DDG A3: 4.519686119524278\n", + "logZ_P A4 MD -3.064316038046247\n", + "logZ_P A4 MS -3.0580574441557014\n", + "DDG A4: -2.33682125626531\n", + "logZ_P A5 MD -3.070780811295034\n", + "logZ_P A5 MS -3.029631310747425\n", + "DDG A5: -0.796288089847326\n", + "DDG loss: 11.43994187703995\n", + "loss: 12.32225822658048\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-3.32167726, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-3.05090391, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(2.38088366, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-3.33358114, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-3.03259771, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.83808909, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-3.40022685, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-3.02118579, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(4.51968612, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-3.06431604, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-3.05805744, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.33682126, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-3.07078081, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-3.02963131, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.79628809, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(11.43994188, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 4.57595963 145.23966369 -80.23728213 50.24681245 12.83125987\n", + " 12.50399758] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -3.023163692735359\n", + "logZ_P A1 MS -2.5666884599842223\n", + "DDG A1: 2.8406815220474386\n", + "logZ_P A2 MD -3.0244595468156357\n", + "logZ_P A2 MS -2.550580617342568\n", + "DDG A2: 2.2661783582588777\n", + "logZ_P A3 MD -3.076438693750783\n", + "logZ_P A3 MS -2.5440530128479626\n", + "DDG A3: 4.899367396720335\n", + "logZ_P A4 MD -2.5743983006694457\n", + "logZ_P A4 MS -2.5705375032728734\n", + "DDG A4: -2.34275820038437\n", + "logZ_P A5 MD -2.5801787234057088\n", + "logZ_P A5 MS -2.5503961971183164\n", + "DDG A5: -0.8244327181156479\n", + "DDG loss: 8.960784584267447\n", + "loss: 9.51209777574123\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-3.02316369, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-2.56668846, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(2.84068152, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-3.02445955, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-2.55058062, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(2.26617836, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-3.07643869, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-2.54405301, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(4.8993674, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-2.5743983, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-2.5705375, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.3427582, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-2.58017872, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-2.5503962, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.82443272, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(8.96078458, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 3.41682705 114.07644397 -63.55722257 39.64510888 10.43209651\n", + " 10.0078789 ] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -1.489585048768834\n", + "logZ_P A1 MS -0.6112564432356441\n", + "DDG A1: 3.8851904730558013\n", + "logZ_P A2 MD -1.4705673762362985\n", + "logZ_P A2 MS -0.6018680580953176\n", + "DDG A2: 3.2437536406006218\n", + "logZ_P A3 MD -1.4867615540595158\n", + "logZ_P A3 MS -0.6038187504892465\n", + "DDG A3: 5.767346832444914\n", + "logZ_P A4 MD -0.6072347461667694\n", + "logZ_P A4 MS -0.6090019834740007\n", + "DDG A4: -2.3566932143109884\n", + "logZ_P A5 MD -0.6119776680275961\n", + "logZ_P A5 MS -0.6067572674389667\n", + "DDG A5: -0.8852485413457892\n", + "DDG loss: 5.337400796743212\n", + "loss: 5.452595545609512\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-1.48958505, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-0.61125644, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(3.88519047, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-1.47056738, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-0.60186806, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(3.24375364, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-1.48676155, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-0.60381875, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(5.76734683, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-0.60723475, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-0.60900198, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.35669321, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-0.61197767, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-0.60675727, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.88524854, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(5.3374008, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 1.58911499 48.62578434 -29.04328701 17.78988813 6.57132301\n", + " 4.31685462] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -0.4491585580669644\n", + "logZ_P A1 MS 0.7467366721674298\n", + "DDG A1: 4.671485435816009\n", + "logZ_P A2 MD -0.41837848817017836\n", + "logZ_P A2 MS 0.7510705851396879\n", + "DDG A2: 3.9884100343987687\n", + "logZ_P A3 MD -0.4103719985757177\n", + "logZ_P A3 MS 0.7432474856542808\n", + "DDG A3: 6.437542293758412\n", + "logZ_P A4 MD 0.7589669183029659\n", + "logZ_P A4 MS 0.7529592138818831\n", + "DDG A4: -2.3671926108848704\n", + "logZ_P A5 MD 0.7553456684189259\n", + "logZ_P A5 MS 0.7427071765108849\n", + "DDG A5: -0.929467159167524\n", + "DDG loss: 4.469544522630079\n", + "loss: 4.540245751504647\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-0.44915856, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(0.74673667, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(4.67148544, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-0.41837849, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(0.75107059, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(3.98841003, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-0.410372, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(0.74324749, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(6.43754229, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(0.75896692, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(0.75295921, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.36719261, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(0.75534567, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(0.74270718, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.92946716, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(4.46954452, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [-0.01172314 -1.10738583 -0.95837771 0.24709147 1.22772496 -0.0172743 ] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -0.4524282456536176\n", + "logZ_P A1 MS 0.7411624322958049\n", + "DDG A1: 4.665779364358427\n", + "logZ_P A2 MD -0.4223328855245603\n", + "logZ_P A2 MS 0.7457247299022927\n", + "DDG A2: 3.9849647846804195\n", + "logZ_P A3 MD -0.41562143274128116\n", + "logZ_P A3 MS 0.7382383720218404\n", + "DDG A3: 6.438137327398426\n", + "logZ_P A4 MD 0.7532094442780783\n", + "logZ_P A4 MS 0.7471979171105165\n", + "DDG A4: -2.3672020760051864\n", + "logZ_P A5 MD 0.7497142735112099\n", + "logZ_P A5 MS 0.7375673139339856\n", + "DDG A5: -0.9282501251164672\n", + "DDG loss: 4.471518254284882\n", + "loss: 4.540062178307948\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-0.45242825, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(0.74116243, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(4.66577936, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-0.42233289, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(0.74572473, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(3.98496478, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-0.41562143, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(0.73823837, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(6.43813733, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(0.75320944, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(0.74719792, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.36720208, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(0.74971427, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(0.73756731, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.92825013, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(4.47151825, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [-0.03269617 0.01709474 0.14880663 -0.07379716 -0.29771335 -0.00039867] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -0.45618590327787917\n", + "logZ_P A1 MS 0.7374833075498515\n", + "DDG A1: 4.66597381176511\n", + "logZ_P A2 MD -0.42601168564383995\n", + "logZ_P A2 MS 0.7420292951291118\n", + "DDG A2: 3.98492359727739\n", + "logZ_P A3 MD -0.41918706886552803\n", + "logZ_P A3 MS 0.7345138693639289\n", + "DDG A3: 6.437743973861067\n", + "logZ_P A4 MD 0.7495364102649085\n", + "logZ_P A4 MS 0.7435331257235489\n", + "DDG A4: -2.367181667262695\n", + "logZ_P A5 MD 0.7460187690073948\n", + "logZ_P A5 MS 0.7338489096300249\n", + "DDG A5: -0.9283068250215868\n", + "DDG loss: 4.471325769604602\n", + "loss: 4.540059877286774\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-0.4561859, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(0.73748331, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(4.66597381, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-0.42601169, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(0.7420293, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(3.9849236, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-0.41918707, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(0.73451387, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(6.43774397, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(0.74953641, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(0.74353313, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.36718167, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(0.74601877, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(0.73384891, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.92830683, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(4.47132577, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 2.64476882e-03 4.55922680e-03 -1.62679739e-03 2.22736041e-03\n", + " 8.57297864e-03 7.15400323e-05] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -0.45576220500454545\n", + "logZ_P A1 MS 0.7379112046166867\n", + "DDG A1: 4.665984207977793\n", + "logZ_P A2 MD -0.42559071380255825\n", + "logZ_P A2 MS 0.7424560189144725\n", + "DDG A2: 3.984937839090915\n", + "logZ_P A3 MD -0.41876423346302966\n", + "logZ_P A3 MS 0.7349416765289233\n", + "DDG A3: 6.437756283945\n", + "logZ_P A4 MD 0.7499639778067955\n", + "logZ_P A4 MS 0.7439604782708364\n", + "DDG A4: -2.367182199589324\n", + "logZ_P A5 MD 0.7464469325426772\n", + "logZ_P A5 MS 0.7342765361827621\n", + "DDG A5: -0.9283081545903915\n", + "DDG loss: 4.471332074459687\n", + "loss: 4.540059874344489\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-0.45576221, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(0.7379112, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(4.66598421, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-0.42559071, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(0.74245602, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(3.98493784, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-0.41876423, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(0.73494168, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(6.43775628, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(0.74996398, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(0.74396048, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.3671822, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(0.74644693, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(0.73427654, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.92830815, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(4.47133207, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [-9.00385371e-05 -2.85014947e-04 -7.99664698e-05 5.93800384e-05\n", + " 7.22213105e-05 -1.19427264e-06] \n", + "\n", + "logZ_P A1 MD -0.45576220500454545\n", + "logZ_P A1 MS 0.7379112046166867\n", + "DDG A1: 4.665984207977793\n", + "logZ_P A2 MD -0.42559071380255825\n", + "logZ_P A2 MS 0.7424560189144725\n", + "DDG A2: 3.984937839090915\n", + "logZ_P A3 MD -0.41876423346302966\n", + "logZ_P A3 MS 0.7349416765289233\n", + "DDG A3: 6.437756283945\n", + "logZ_P A4 MD 0.7499639778067955\n", + "logZ_P A4 MS 0.7439604782708364\n", + "DDG A4: -2.367182199589324\n", + "logZ_P A5 MD 0.7464469325426772\n", + "logZ_P A5 MS 0.7342765361827621\n", + "DDG A5: -0.9283081545903915\n", + "DDG loss: 4.471332074459687\n", + "beta: 20.0\n", + "New evaluation:\n", + "logZ_P A1 MD -1.1102230246251565e-16\n", + "logZ_P A1 MS 0.0\n", + "DDG A1: 1.7104488457556373\n", + "logZ_P A2 MD 0.0\n", + "logZ_P A2 MS 0.0\n", + "DDG A2: 1.0928541288835474\n", + "logZ_P A3 MD 0.0\n", + "logZ_P A3 MS 0.0\n", + "DDG A3: 3.581180450804952\n", + "logZ_P A4 MD 0.0\n", + "logZ_P A4 MS -2.2204460492503136e-16\n", + "DDG A4: -2.352317534738276\n", + "logZ_P A5 MD 0.0\n", + "logZ_P A5 MS 0.0\n", + "DDG A5: -0.898174253203229\n", + "DDG loss: 17.239715782404367\n", + "loss: 17.239715782404375\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-1.11022302e-16, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(0., dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(1.71044885, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(0., dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(0., dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.09285413, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(0., dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(0., dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(3.58118045, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(0., dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-2.22044605e-16, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.35231753, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(0., dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(0., dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.89817425, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(17.23971578, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ -59.13012539 13.42119932 -159.92372304 4.94716807 -214.32616084\n", + " 17.13657393] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD 1006.7577376784283\n", + "logZ_P A1 MS 939.7778109380379\n", + "DDG A1: -164.13184976345073\n", + "logZ_P A2 MD 974.8972355044343\n", + "logZ_P A2 MS 943.2582091009558\n", + "DDG A2: -77.2453752461291\n", + "logZ_P A3 MD 990.5815404433255\n", + "logZ_P A3 MS 935.160148342072\n", + "DDG A3: -133.64218639189855\n", + "logZ_P A4 MD 959.0058460528193\n", + "logZ_P A4 MS 944.7166389944064\n", + "DDG A4: -37.732394211368685\n", + "logZ_P A5 MD 929.5784480542454\n", + "logZ_P A5 MS 954.2829294045392\n", + "DDG A5: 60.27012157012423\n", + "DDG loss: 30084.684143098377\n", + "loss: 36753.825195339195\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(1006.75773768, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(939.77781094, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(-164.13184976, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(974.8972355, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(943.2582091, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(-77.24537525, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(990.58154044, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(935.16014834, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(-133.64218639, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(959.00584605, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(944.71663899, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-37.73239421, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(929.57844805, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(954.2829294, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(60.27012157, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(30084.6841431, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ -1685.84014654 -29674.60410295 95218.62408034 29813.25734097\n", + " 138146.94690678 774.48591467] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD 28.271202497206726\n", + "logZ_P A1 MS 29.746573721705712\n", + "DDG A1: 5.363467997615126\n", + "logZ_P A2 MD 23.804897491438425\n", + "logZ_P A2 MS 28.507501386723646\n", + "DDG A2: 12.736501373609757\n", + "logZ_P A3 MD 24.239569869303143\n", + "logZ_P A3 MS 28.942000971790574\n", + "DDG A3: 15.224399860563848\n", + "logZ_P A4 MD 28.47167815272852\n", + "logZ_P A4 MS 32.40821181235978\n", + "DDG A4: 7.394539806508738\n", + "logZ_P A5 MD 26.944900492545102\n", + "logZ_P A5 MS 29.07002138078841\n", + "DDG A5: 4.363625066087186\n", + "DDG loss: 161.6783973900889\n", + "loss: 1717.0314875604581\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(28.2712025, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(29.74657372, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(5.363468, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(23.80489749, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(28.50750139, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(12.73650137, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(24.23956987, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(28.94200097, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(15.22439986, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(28.47167815, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(32.40821181, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(7.39453981, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(26.94490049, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(29.07002138, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(4.36362507, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(161.67839739, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [1032.06297489 520.20356722 718.0350011 1920.91892649 6486.24271907\n", + " -35.89384886] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -0.17254916726454356\n", + "logZ_P A1 MS -0.15645049717865772\n", + "DDG A1: 1.7503091528883148\n", + "logZ_P A2 MD -0.17993814041836814\n", + "logZ_P A2 MS -0.15529659035694302\n", + "DDG A2: 1.1538666068356527\n", + "logZ_P A3 MD -0.17933732201722727\n", + "logZ_P A3 MS -0.15731783900009422\n", + "DDG A3: 3.6357006907553715\n", + "logZ_P A4 MD -0.16168732544854733\n", + "logZ_P A4 MS -0.155332949635529\n", + "DDG A4: -2.336584100225244\n", + "logZ_P A5 MD -0.16400616860318\n", + "logZ_P A5 MS -0.153398682742863\n", + "DDG A5: -0.8719101182130783\n", + "DDG loss: 16.855877900035463\n", + "loss: 17.006516114899203\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-0.17254917, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-0.1564505, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(1.75030915, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-0.17993814, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-0.15529659, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.15386661, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-0.17933732, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-0.15731784, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(3.63570069, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-0.16168733, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-0.15533295, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.3365841, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-0.16400617, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-0.15339868, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.87191012, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(16.8558779, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ -28.90034692 33.24499394 -147.00539291 80.71163088 51.85723155\n", + " 16.83070177] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -0.6561232727382568\n", + "logZ_P A1 MS -0.6305765576340494\n", + "DDG A1: 1.7737025123536676\n", + "logZ_P A2 MD -0.6769919844255919\n", + "logZ_P A2 MS -0.6277119518475583\n", + "DDG A2: 1.214871489546773\n", + "logZ_P A3 MD -0.6892362356325163\n", + "logZ_P A3 MS -0.6294094818917875\n", + "DDG A3: 3.729311493067016\n", + "logZ_P A4 MD -0.6371297848256582\n", + "logZ_P A4 MS -0.6300952345798728\n", + "DDG A4: -2.3348999883296973\n", + "logZ_P A5 MD -0.6357038814398853\n", + "logZ_P A5 MS -0.6233037445752326\n", + "DDG A5: -0.8674715143263759\n", + "DDG loss: 16.40231066120486\n", + "loss: 16.596313915265192\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-0.65612327, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-0.63057656, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(1.77370251, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-0.67699198, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-0.62771195, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.21487149, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-0.68923624, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-0.62940948, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(3.72931149, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-0.63712978, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-0.63009523, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.33489999, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-0.63570388, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-0.62330374, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.86747151, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(16.40231066, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ -41.48707525 -0.27701829 -103.92430649 68.33093775 20.92287204\n", + " 16.48043326] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -1.302223735683172\n", + "logZ_P A1 MS -1.2478249278526037\n", + "DDG A1: 1.8451402939441186\n", + "logZ_P A2 MD -1.3046652369979002\n", + "logZ_P A2 MS -1.2323679025064231\n", + "DDG A2: 1.2718623290844533\n", + "logZ_P A3 MD -1.3498370250027836\n", + "logZ_P A3 MS -1.233129989004055\n", + "DDG A3: 3.8701470719378057\n", + "logZ_P A4 MD -1.2497876118542934\n", + "logZ_P A4 MS -1.2465836161447386\n", + "DDG A4: -2.3443844413614183\n", + "logZ_P A5 MD -1.252024684233129\n", + "logZ_P A5 MS -1.231852767675463\n", + "DDG A5: -0.8482285878064333\n", + "DDG loss: 15.605378771764913\n", + "loss: 16.16794913197487\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-1.30222374, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-1.24782493, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(1.84514029, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-1.30466524, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-1.2323679, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.27186233, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-1.34983703, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-1.23312999, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(3.87014707, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-1.24978761, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-1.24658362, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.34438444, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-1.25202468, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-1.23185277, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.84822859, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(15.60537877, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 8.32155363 144.34831573 -86.27493962 70.28955691 3.83715519\n", + " 15.95057608] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -2.323256677584356\n", + "logZ_P A1 MS -2.2229942049039915\n", + "DDG A1: 1.9586987281121988\n", + "logZ_P A2 MD -2.315914489945995\n", + "logZ_P A2 MS -2.206210515194394\n", + "DDG A2: 1.3644811703685003\n", + "logZ_P A3 MD -2.3592703282489382\n", + "logZ_P A3 MS -2.21135571571334\n", + "DDG A3: 3.9474170314431003\n", + "logZ_P A4 MD -2.221960785766331\n", + "logZ_P A4 MS -2.2194652139985642\n", + "DDG A4: -2.346138499041285\n", + "logZ_P A5 MD -2.224996750435851\n", + "logZ_P A5 MS -2.208999350617833\n", + "DDG A5: -0.8585646912538135\n", + "DDG loss: 14.81496786612451\n", + "loss: 15.355621648437404\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-2.32325668, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-2.2229942, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(1.95869873, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-2.31591449, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-2.20621052, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.36448117, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-2.35927033, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-2.21135572, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(3.94741703, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-2.22196079, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-2.21946521, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.3461385, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-2.22499675, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-2.20899935, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.85856469, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(14.81496787, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 12.50801002 136.44277691 -91.45721006 64.61491628 5.413318\n", + " 15.39191276] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -6.940410085994931\n", + "logZ_P A1 MS -6.827905220539967\n", + "DDG A1: 1.9890108926221328\n", + "logZ_P A2 MD -7.076428666611573\n", + "logZ_P A2 MS -6.854054626057102\n", + "DDG A2: 1.643452253296416\n", + "logZ_P A3 MD -7.111939793734218\n", + "logZ_P A3 MS -6.78601265959723\n", + "DDG A3: 4.388176034928138\n", + "logZ_P A4 MD -6.9018070546801535\n", + "logZ_P A4 MS -6.879556335653402\n", + "DDG A4: -2.297224754428059\n", + "logZ_P A5 MD -6.89651926922118\n", + "logZ_P A5 MS -6.822777576504356\n", + "DDG A5: -0.715589822036341\n", + "DDG loss: 13.475997573910572\n", + "loss: 18.572245739521467\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-6.94041009, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-6.82790522, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(1.98901089, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-7.07642867, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-6.85405463, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.64345225, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-7.11193979, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-6.78601266, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(4.38817603, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-6.90180705, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-6.87955634, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.29722475, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-6.89651927, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-6.82277758, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.71558982, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(13.47599757, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [-105.56969264 184.65943403 -87.17491502 -16.52733144 33.34660806\n", + " 13.92043398] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -3.080424412366549\n", + "logZ_P A1 MS -2.9778490750235873\n", + "DDG A1: 1.9644253810168297\n", + "logZ_P A2 MD -3.0967033731103464\n", + "logZ_P A2 MS -2.9680635092942116\n", + "DDG A2: 1.4113664316922927\n", + "logZ_P A3 MD -3.138644314505255\n", + "logZ_P A3 MS -2.9607642905760123\n", + "DDG A3: 4.02161139005377\n", + "logZ_P A4 MD -2.9892232773802827\n", + "logZ_P A4 MS -2.9835004821024063\n", + "DDG A4: -2.3381478936302553\n", + "logZ_P A5 MD -2.9909746398144277\n", + "logZ_P A5 MS -2.9648510753195785\n", + "DDG A5: -0.8334923075139735\n", + "DDG loss: 14.56701236642278\n", + "loss: 15.210182250797004\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-3.08042441, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-2.97784908, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(1.96442538, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-3.09670337, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-2.96806351, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.41136643, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-3.13864431, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-2.96076429, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(4.02161139, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-2.98922328, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-2.98350048, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.33814789, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-2.99097464, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-2.96485108, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.83349231, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(14.56701237, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ -6.45718687 144.01532405 -90.95963423 51.8131405 10.61204432\n", + " 15.14325122] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -2.892691131819024\n", + "logZ_P A1 MS -2.7757155678801264\n", + "DDG A1: 2.0000803420683386\n", + "logZ_P A2 MD -2.908785385820773\n", + "logZ_P A2 MS -2.7662962433196223\n", + "DDG A2: 1.4456572457164252\n", + "logZ_P A3 MD -2.9494386114671776\n", + "logZ_P A3 MS -2.7587231018263636\n", + "DDG A3: 4.053392052675599\n", + "logZ_P A4 MD -2.786998746792873\n", + "logZ_P A4 MS -2.781419044197728\n", + "DDG A4: -2.3385021911127044\n", + "logZ_P A5 MD -2.7888203509767524\n", + "logZ_P A5 MS -2.7629686422535826\n", + "DDG A5: -0.8341654224046683\n", + "DDG loss: 14.305785172029484\n", + "loss: 14.918990869534879\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-2.89269113, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-2.77571557, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(2.00008034, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-2.90878539, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-2.76629624, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.44565725, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-2.94943861, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-2.7587231, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(4.05339205, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-2.78699875, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-2.78141904, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.33850219, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-2.78882035, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-2.76296864, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.83416542, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(14.30578517, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ -6.37738632 143.6152942 -90.67125333 51.75574993 10.56400315\n", + " 14.94277392] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -2.139375423997738\n", + "logZ_P A1 MS -1.9648227377412528\n", + "DDG A1: 2.1426412969266715\n", + "logZ_P A2 MD -2.154754802826116\n", + "logZ_P A2 MS -1.9568688318053697\n", + "DDG A2: 1.5828197931309318\n", + "logZ_P A3 MD -2.190253971655145\n", + "logZ_P A3 MS -1.948201020781946\n", + "DDG A3: 4.180503557166964\n", + "logZ_P A4 MD -1.975747640895737\n", + "logZ_P A4 MS -1.9707389579253667\n", + "DDG A4: -2.3399160357036397\n", + "logZ_P A5 MD -1.9778508967443078\n", + "logZ_P A5 MS -1.9530861706588976\n", + "DDG A5: -0.8368567914157236\n", + "DDG loss: 13.295732570383084\n", + "loss: 13.80618611348245\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-2.13937542, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-1.96482274, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(2.1426413, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-2.1547548, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-1.95686883, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.58281979, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-2.19025397, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-1.94820102, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(4.18050356, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-1.97574764, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-1.97073896, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.33991604, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-1.9778509, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-1.95308617, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.83685679, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(13.29573257, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ -6.0746076 141.99622681 -89.52064652 51.51826897 10.30200132\n", + " 14.14101507] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD 0.9120284802522822\n", + "logZ_P A1 MS 1.3165050187884182\n", + "DDG A1: 2.711932755171096\n", + "logZ_P A2 MD 0.8991239898748706\n", + "logZ_P A2 MS 1.3185899324723582\n", + "DDG A2: 2.1314518027549516\n", + "logZ_P A3 MD 0.8842938043076999\n", + "logZ_P A3 MS 1.3316214235610657\n", + "DDG A3: 4.688763636076265\n", + "logZ_P A4 MD 1.3069202343780293\n", + "logZ_P A4 MS 1.3096664661872244\n", + "DDG A4: -2.3455178647787025\n", + "logZ_P A5 MD 1.3036789869745908\n", + "logZ_P A5 MS 1.3241028908133945\n", + "DDG A5: -0.8476046672983506\n", + "DDG loss: 9.81244027376841\n", + "loss: 10.188849762887973\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(0.91202848, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(1.31650502, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(2.71193276, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(0.89912399, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(1.31858993, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(2.1314518, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(0.8842938, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(1.33162142, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(4.68876364, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(1.30692023, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(1.30966647, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.34551786, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(1.30367899, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(1.32410289, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.84760467, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(9.81244027, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ -5.12889909 135.21898025 -84.97180803 50.44276258 8.12576528\n", + " 10.93644065] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -0.7934682932895203\n", + "logZ_P A1 MS 0.31149021613843614\n", + "DDG A1: 4.446326115099264\n", + "logZ_P A2 MD -0.7803484795182057\n", + "logZ_P A2 MS 0.3141292691798382\n", + "DDG A2: 3.8027810346599296\n", + "logZ_P A3 MD -0.7770921802334362\n", + "logZ_P A3 MS 0.3107331545077324\n", + "DDG A3: 6.274635979624086\n", + "logZ_P A4 MD 0.31679374233123225\n", + "logZ_P A4 MS 0.3143215314691502\n", + "DDG A4: -2.358438728832788\n", + "logZ_P A5 MD 0.3147753287854096\n", + "logZ_P A5 MS 0.3101341717841067\n", + "DDG A5: -0.909665757938453\n", + "DDG loss: 4.591844262544519\n", + "loss: 4.635847550663602\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-0.79346829, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(0.31149022, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(4.44632612, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-0.78034848, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(0.31412927, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(3.80278103, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-0.77709218, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(0.31073315, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(6.27463598, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(0.31679374, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(0.31432153, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.35843873, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(0.31477533, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(0.31013417, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.90966576, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(4.59184426, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [-0.35310981 8.11757084 -9.42748457 4.63755959 6.05293427 1.1006863 ] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -0.49357062802405594\n", + "logZ_P A1 MS 0.6886279305127776\n", + "DDG A1: 4.637572476692852\n", + "logZ_P A2 MD -0.4793479227581273\n", + "logZ_P A2 MS 0.690874250654063\n", + "DDG A2: 3.990324230252117\n", + "logZ_P A3 MD -0.4739914754758017\n", + "logZ_P A3 MS 0.6872257919650552\n", + "DDG A3: 6.456354404988525\n", + "logZ_P A4 MD 0.6950522204217939\n", + "logZ_P A4 MS 0.6918311067807811\n", + "DDG A4: -2.360293012113438\n", + "logZ_P A5 MD 0.6932094828765826\n", + "logZ_P A5 MS 0.686685630741481\n", + "DDG A5: -0.9143273110897451\n", + "DDG loss: 4.530164809235286\n", + "loss: 4.5798443223810565\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-0.49357063, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(0.68862793, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(4.63757248, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-0.47934792, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(0.69087425, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(3.99032423, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-0.47399148, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(0.68722579, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(6.4563544, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(0.69505222, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(0.69183111, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.36029301, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(0.69320948, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(0.68668563, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.91432731, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(4.53016481, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [-0.07593754 -0.06264492 0.09503926 -0.04766511 -0.37887653 -0.00366237] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -0.5115101589820772\n", + "logZ_P A1 MS 0.6704736502084954\n", + "DDG A1: 4.637040757311487\n", + "logZ_P A2 MD -0.4972230091260145\n", + "logZ_P A2 MS 0.6727418256223341\n", + "DDG A2: 3.989687059720477\n", + "logZ_P A3 MD -0.49189655765087487\n", + "logZ_P A3 MS 0.6690547323960193\n", + "DDG A3: 6.455695844961066\n", + "logZ_P A4 MD 0.6769029742321355\n", + "logZ_P A4 MS 0.673691384966985\n", + "DDG A4: -2.360269429758785\n", + "logZ_P A5 MD 0.6750491852014464\n", + "logZ_P A5 MS 0.6685247369696246\n", + "DDG A5: -0.9143287870252028\n", + "DDG loss: 4.530016002826107\n", + "loss: 4.579835907389711\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-0.51151016, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(0.67047365, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(4.63704076, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-0.49722301, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(0.67274183, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(3.98968706, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-0.49189656, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(0.66905473, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(6.45569584, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(0.67690297, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(0.67369138, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.36026943, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(0.67504919, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(0.66852474, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.91432879, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(4.530016, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 5.27326394e-03 3.70339047e-03 -1.24204065e-02 3.97661018e-03\n", + " 2.12877640e-02 -6.39483662e-05] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -0.5110842213483557\n", + "logZ_P A1 MS 0.6708891906130467\n", + "DDG A1: 4.637015013772084\n", + "logZ_P A2 MD -0.49680312246925973\n", + "logZ_P A2 MS 0.673157284124733\n", + "DDG A2: 3.989676095610258\n", + "logZ_P A3 MD -0.49148028668051064\n", + "logZ_P A3 MS 0.6694721832174244\n", + "DDG A3: 6.45569876627224\n", + "logZ_P A4 MD 0.6773174934573581\n", + "logZ_P A4 MS 0.6741058935534288\n", + "DDG A4: -2.360269456100384\n", + "logZ_P A5 MD 0.6754649264119583\n", + "logZ_P A5 MS 0.6689419908443068\n", + "DDG A5: -0.9143250416687533\n", + "DDG loss: 4.53003476602945\n", + "loss: 4.579835893784603\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-0.51108422, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(0.67088919, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(4.63701501, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-0.49680312, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(0.67315728, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(3.9896761, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-0.49148029, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(0.66947218, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(6.45569877, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(0.67731749, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(0.67410589, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.36026946, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(0.67546493, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(0.66894199, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.91432504, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(4.53003477, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [-1.20730190e-04 1.08710723e-04 5.04047372e-04 -2.91486490e-04\n", + " -9.43681503e-04 2.86340148e-06] \n", + "\n", + "logZ_P A1 MD -0.5110842213483557\n", + "logZ_P A1 MS 0.6708891906130467\n", + "DDG A1: 4.637015013772084\n", + "logZ_P A2 MD -0.49680312246925973\n", + "logZ_P A2 MS 0.673157284124733\n", + "DDG A2: 3.989676095610258\n", + "logZ_P A3 MD -0.49148028668051064\n", + "logZ_P A3 MS 0.6694721832174244\n", + "DDG A3: 6.45569876627224\n", + "logZ_P A4 MD 0.6773174934573581\n", + "logZ_P A4 MS 0.6741058935534288\n", + "DDG A4: -2.360269456100384\n", + "logZ_P A5 MD 0.6754649264119583\n", + "logZ_P A5 MS 0.6689419908443068\n", + "DDG A5: -0.9143250416687533\n", + "DDG loss: 4.53003476602945\n", + "beta: 50.0\n", + "New evaluation:\n", + "logZ_P A1 MD -1.1102230246251565e-16\n", + "logZ_P A1 MS 0.0\n", + "DDG A1: 1.7104488457556373\n", + "logZ_P A2 MD 0.0\n", + "logZ_P A2 MS 0.0\n", + "DDG A2: 1.0928541288835474\n", + "logZ_P A3 MD 0.0\n", + "logZ_P A3 MS 0.0\n", + "DDG A3: 3.581180450804952\n", + "logZ_P A4 MD 0.0\n", + "logZ_P A4 MS -2.2204460492503136e-16\n", + "DDG A4: -2.352317534738276\n", + "logZ_P A5 MD 0.0\n", + "logZ_P A5 MS 0.0\n", + "DDG A5: -0.898174253203229\n", + "DDG loss: 17.239715782404367\n", + "loss: 17.239715782404385\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-1.11022302e-16, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(0., dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(1.71044885, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(0., dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(0., dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.09285413, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(0., dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(0., dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(3.58118045, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(0., dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-2.22044605e-16, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.35231753, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(0., dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(0., dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.89817425, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(17.23971578, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ -59.13012539 13.42119932 -159.92372304 4.94716807 -214.32616084\n", + " 17.13657393] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD 1006.757737678411\n", + "logZ_P A1 MS 939.7778109380206\n", + "DDG A1: -164.13184976345073\n", + "logZ_P A2 MD 974.8972355044173\n", + "logZ_P A2 MS 943.2582091009383\n", + "DDG A2: -77.24537524613022\n", + "logZ_P A3 MD 990.5815404433081\n", + "logZ_P A3 MS 935.1601483420549\n", + "DDG A3: -133.64218639189798\n", + "logZ_P A4 MD 959.0058460528014\n", + "logZ_P A4 MS 944.7166389943882\n", + "DDG A4: -37.73239421136953\n", + "logZ_P A5 MD 929.5784480542272\n", + "logZ_P A5 MS 954.2829294045213\n", + "DDG A5: 60.27012157012479\n", + "DDG loss: 30084.68414309845\n", + "loss: 46757.536773700354\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(1006.75773768, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(939.77781094, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(-164.13184976, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(974.8972355, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(943.2582091, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(-77.24537525, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(990.58154044, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(935.16014834, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(-133.64218639, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(959.00584605, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(944.71663899, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-37.73239421, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(929.57844805, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(954.2829294, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(60.27012157, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(30084.6841431, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ -622.65199144 -31834.13807987 94947.87881039 32082.73986174\n", + " 155662.88533403 773.03558679] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD 12.5268140860532\n", + "logZ_P A1 MS 13.961951462779785\n", + "DDG A1: 5.263848990530631\n", + "logZ_P A2 MD 9.35825796092998\n", + "logZ_P A2 MS 13.02181697671751\n", + "DDG A2: 10.1638262519735\n", + "logZ_P A3 MD 9.579792314291495\n", + "logZ_P A3 MS 13.157253322543621\n", + "DDG A3: 12.438973907237223\n", + "logZ_P A4 MD 12.883640542507226\n", + "logZ_P A4 MS 15.634552928480863\n", + "DDG A4: 4.458941532932443\n", + "logZ_P A5 MD 11.953674100270135\n", + "logZ_P A5 MS 13.568704390760402\n", + "DDG A5: 3.100640746050673\n", + "DDG loss: 86.34381247579711\n", + "loss: 3307.8476318830917\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(12.52681409, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(13.96195146, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(5.26384899, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(9.35825796, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(13.02181698, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(10.16382625, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(9.57979231, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(13.15725332, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(12.43897391, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(12.88364054, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(15.63455293, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(4.45894153, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(11.9536741, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(13.56870439, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(3.10064075, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(86.34381248, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 3766.36567605 4064.45644469 750.90788115 7170.66259709\n", + " 23604.42902439 -25.47295215] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -0.058493012050814\n", + "logZ_P A1 MS -0.05308569167299728\n", + "DDG A1: 1.7238373710111379\n", + "logZ_P A2 MD -0.060919678881388134\n", + "logZ_P A2 MS -0.052668704550004525\n", + "DDG A2: 1.113283541328067\n", + "logZ_P A3 MD -0.06072468894476569\n", + "logZ_P A3 MS -0.053354025846131484\n", + "DDG A3: 3.5994302126371513\n", + "logZ_P A4 MD -0.0548183154370716\n", + "logZ_P A4 MS -0.05269123700898838\n", + "DDG A4: -2.3470508885503287\n", + "logZ_P A5 MD -0.05560011916109855\n", + "logZ_P A5 MS -0.05204562515963958\n", + "DDG A5: -0.8893733260556063\n", + "DDG loss: 17.10999924061588\n", + "loss: 17.152386102476342\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-0.05849301, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-0.05308569, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(1.72383737, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-0.06091968, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-0.0526687, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.11328354, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-0.06072469, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-0.05335403, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(3.59943021, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-0.05481832, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-0.05269124, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.34705089, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-0.05560012, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-0.05204563, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.88937333, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(17.10999924, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ -34.10758509 30.61886313 -151.2723816 68.51995655 6.81297204\n", + " 17.03399754] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -0.23797939031286808\n", + "logZ_P A1 MS -0.22895729358360456\n", + "DDG A1: 1.732787557257305\n", + "logZ_P A2 MD -0.24544051146550794\n", + "logZ_P A2 MS -0.22790543356485726\n", + "DDG A2: 1.136270981765548\n", + "logZ_P A3 MD -0.24995752499715634\n", + "logZ_P A3 MS -0.2284889888429936\n", + "DDG A3: 3.634336546322652\n", + "logZ_P A4 MD -0.2312180629811265\n", + "logZ_P A4 MS -0.22878469407456586\n", + "DDG A4: -2.34629251332562\n", + "logZ_P A5 MD -0.23063552622666977\n", + "logZ_P A5 MS -0.22634087528546362\n", + "DDG A5: -0.8875406974728061\n", + "DDG loss: 16.935879593510396\n", + "loss: 16.995447300742008\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-0.23797939, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-0.22895729, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(1.73278756, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-0.24544051, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-0.22790543, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.13627098, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-0.24995752, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-0.22848899, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(3.63433655, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-0.23121806, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-0.22878469, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.34629251, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-0.23063553, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-0.22634088, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.8875407, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(16.93587959, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ -45.81058619 0.55316593 -113.53624339 58.42730475 -20.17958207\n", + " 16.90242719] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -0.48900387277302665\n", + "logZ_P A1 MS -0.46912025920306805\n", + "DDG A1: 1.7596806729548569\n", + "logZ_P A2 MD -0.4899297449747878\n", + "logZ_P A2 MS -0.463396026937193\n", + "DDG A2: 1.15855161474464\n", + "logZ_P A3 MD -0.5066933660486919\n", + "logZ_P A3 MS -0.46370969915717714\n", + "DDG A3: 3.6876080100283453\n", + "logZ_P A4 MD -0.46977794632051745\n", + "logZ_P A4 MS -0.4686272899290743\n", + "DDG A4: -2.349468509513058\n", + "logZ_P A5 MD -0.47039794839674015\n", + "logZ_P A5 MS -0.4631676983593905\n", + "DDG A5: -0.8802721541107443\n", + "DDG loss: 16.623349254806236\n", + "loss: 16.80604506283933\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-0.48900387, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-0.46912026, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(1.75968067, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-0.48992974, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-0.46339603, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.15855161, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-0.50669337, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-0.4637097, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(3.68760801, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-0.46977795, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-0.46862729, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.34946851, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-0.47039795, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-0.4631677, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.88027215, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(16.62334925, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ -2.00047348 129.55630732 -96.95259102 61.02671048 -36.32842953\n", + " 16.70052203] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -0.9372425529068471\n", + "logZ_P A1 MS -0.897898569452062\n", + "DDG A1: 1.8078645487896847\n", + "logZ_P A2 MD -0.9348555995668423\n", + "logZ_P A2 MS -0.8914867754111645\n", + "DDG A2: 1.2002353374930061\n", + "logZ_P A3 MD -0.9516976822095219\n", + "logZ_P A3 MS -0.8935364847486084\n", + "DDG A3: 3.725187575718187\n", + "logZ_P A4 MD -0.8974656705085066\n", + "logZ_P A4 MS -0.8965208726871683\n", + "DDG A4: -2.3499782153326203\n", + "logZ_P A5 MD -0.8983156466614209\n", + "logZ_P A5 MS -0.8924802302638454\n", + "DDG A5: -0.8837257622028368\n", + "DDG loss: 16.25360734808212\n", + "loss: 16.44165539172617\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-0.93724255, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-0.89789857, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(1.80786455, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-0.9348556, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-0.89148678, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.20023534, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-0.95169768, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-0.89353648, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(3.72518758, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-0.89746567, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-0.89652087, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.34997822, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-0.89831565, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-0.89248023, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.88372576, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(16.25360735, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 1.83386328 122.74679962 -101.27427069 56.37030663 -34.83986528\n", + " 16.44854635] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -2.7187706640155334\n", + "logZ_P A1 MS -2.601581337584874\n", + "DDG A1: 2.0006096179979562\n", + "logZ_P A2 MD -2.7032407073615734\n", + "logZ_P A2 MS -2.592402375240625\n", + "DDG A2: 1.3672898392150166\n", + "logZ_P A3 MD -2.7203943337267344\n", + "logZ_P A3 MS -2.6014410148147653\n", + "DDG A3: 3.8757088684309724\n", + "logZ_P A4 MD -2.5968339077541716\n", + "logZ_P A4 MS -2.5966925884662677\n", + "DDG A4: -2.351967628181422\n", + "logZ_P A5 MD -2.5986051091752715\n", + "logZ_P A5 MS -2.598361788985664\n", + "DDG A5: -0.8975717924137873\n", + "DDG loss: 14.828655810246088\n", + "loss: 15.346513835582257\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-2.71877066, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-2.60158134, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(2.00060962, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-2.70324071, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-2.59240238, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.36728984, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-2.72039433, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-2.60144101, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(3.87570887, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-2.59683391, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-2.59669259, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.35196763, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-2.59860511, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-2.59836179, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.89757179, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(14.82865581, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 17.07782876 95.89807752 -119.09587975 37.59668723 -30.11558709\n", + " 15.43965133] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -10.05677063957099\n", + "logZ_P A1 MS -9.89648640154026\n", + "DDG A1: 2.1073126191197162\n", + "logZ_P A2 MD -10.2442173648063\n", + "logZ_P A2 MS -9.946780371630037\n", + "DDG A2: 1.8293081239879732\n", + "logZ_P A3 MD -10.25724236945697\n", + "logZ_P A3 MS -9.853510614503103\n", + "DDG A3: 4.580820276070726\n", + "logZ_P A4 MD -9.998285891314692\n", + "logZ_P A4 MS -9.969423684999521\n", + "DDG A4: -2.2808547119019207\n", + "logZ_P A5 MD -9.98725225416815\n", + "logZ_P A5 MS -9.90558153812248\n", + "DDG A5: -0.6959575602741286\n", + "DDG loss: 12.498870212122347\n", + "loss: 36.45255775072424\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-10.05677064, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-9.8964864, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(2.10731262, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-10.24421736, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-9.94678037, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.82930812, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-10.25724237, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-9.85351061, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(4.58082028, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-9.99828589, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-9.96942368, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.28085471, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-9.98725225, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-9.90558154, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.69595756, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(12.49887021, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [-414.05501486 263.98699856 -107.91813379 -259.41721307 43.89598062\n", + " 12.9413087 ] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -3.1543598094114413\n", + "logZ_P A1 MS -3.03429313727545\n", + "DDG A1: 2.007733925964351\n", + "logZ_P A2 MD -3.1508523378425837\n", + "logZ_P A2 MS -3.0285535983272345\n", + "DDG A2: 1.395665807923539\n", + "logZ_P A3 MD -3.1676945874861913\n", + "logZ_P A3 MS -3.031226626477546\n", + "DDG A3: 3.9190751222623654\n", + "logZ_P A4 MD -3.035898878129233\n", + "logZ_P A4 MS -3.034081273382858\n", + "DDG A4: -2.3478171453862435\n", + "logZ_P A5 MD -3.0369839003552124\n", + "logZ_P A5 MS -3.0314027084045954\n", + "DDG A5: -0.8843552219335156\n", + "DDG loss: 14.661443226909965\n", + "loss: 15.248847278704526\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-3.15435981, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-3.03429314, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(2.00773393, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-3.15085234, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-3.0285536, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.39566581, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-3.16769459, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-3.03122663, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(3.91907512, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-3.03589888, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-3.03408127, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.34781715, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-3.0369839, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-3.03140271, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.88435522, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(14.66144323, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ -7.37319148 105.11663453 -118.69239245 21.24160176 -24.26669951\n", + " 15.28515965] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -3.10003820883397\n", + "logZ_P A1 MS -2.970594786685514\n", + "DDG A1: 2.0309507589952123\n", + "logZ_P A2 MD -3.0965196626323372\n", + "logZ_P A2 MS -2.9649683174766444\n", + "DDG A2: 1.4185752594890244\n", + "logZ_P A3 MD -3.112975766756506\n", + "logZ_P A3 MS -2.967543910738918\n", + "DDG A3: 3.941269726304517\n", + "logZ_P A4 MD -2.972184054962534\n", + "logZ_P A4 MS -2.970406839130346\n", + "DDG A4: -2.3479171483377694\n", + "logZ_P A5 MD -2.9732915081665547\n", + "logZ_P A5 MS -2.967773953999439\n", + "DDG A5: -0.8845127890854565\n", + "DDG loss: 14.484853416795227\n", + "loss: 15.052535269231344\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-3.10003821, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-2.97059479, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(2.03095076, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-3.09651966, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-2.96496832, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.41857526, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-3.11297577, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-2.96754391, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(3.94126973, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-2.97218405, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-2.97040684, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.34791715, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-2.97329151, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-2.96777395, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.88451279, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(14.48485342, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ -7.30993679 104.98596056 -118.54717904 21.29997589 -24.16116168\n", + " 15.15024605] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -2.8825310094352234\n", + "logZ_P A1 MS -2.7155828941359794\n", + "DDG A1: 2.1238123792365777\n", + "logZ_P A2 MD -2.8789701566231005\n", + "logZ_P A2 MS -2.7104086501642377\n", + "DDG A2: 1.5102124188756785\n", + "logZ_P A3 MD -2.893881269080609\n", + "logZ_P A3 MS -2.712594663024397\n", + "DDG A3: 4.030046087400149\n", + "logZ_P A4 MD -2.7171067458265274\n", + "logZ_P A4 MS -2.7154909788964847\n", + "DDG A4: -2.348316895819487\n", + "logZ_P A5 MD -2.718304003428825\n", + "logZ_P A5 MS -2.7130409871914862\n", + "DDG A5: -0.8851430249995846\n", + "DDG loss: 13.794089524527232\n", + "loss: 14.286778457290897\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-2.88253101, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-2.71558289, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(2.12381238, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-2.87897016, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-2.71040865, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.51021242, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-2.89388127, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-2.71259466, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(4.03004609, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-2.71710675, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-2.71549098, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.3483169, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-2.718304, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-2.71304099, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.88514302, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(13.79408952, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ -7.06043026 104.46008766 -117.96700088 21.53134116 -23.75619761\n", + " 14.61061051] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -2.0089688934846994\n", + "logZ_P A1 MS -1.6920390427477163\n", + "DDG A1: 2.4951671561804076\n", + "logZ_P A2 MD -2.005270731263807\n", + "logZ_P A2 MS -1.688672853741496\n", + "DDG A2: 1.876750473628793\n", + "logZ_P A3 MD -2.0139952621992356\n", + "logZ_P A3 MS -1.6893030497538515\n", + "DDG A3: 4.385118368819724\n", + "logZ_P A4 MD -1.6933088094199928\n", + "logZ_P A4 MS -1.6923371230481812\n", + "DDG A4: -2.3499116392816686\n", + "logZ_P A5 MD -1.6948665850291826\n", + "logZ_P A5 MS -1.690621509182674\n", + "DDG A5: -0.8876634454072647\n", + "DDG loss: 11.280496582303536\n", + "loss: 11.53578088255799\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-2.00896889, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-1.69203904, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(2.49516716, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-2.00527073, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-1.68867285, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.87675047, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-2.01399526, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-1.68930305, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(4.38511837, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-1.69330881, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-1.69233712, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.34991164, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-1.69486659, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-1.69062151, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.88766345, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(11.28049658, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ -6.11878322 102.30592964 -115.65752236 22.42281783 -22.4119126\n", + " 12.45237266] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -1.2135273651672505\n", + "logZ_P A1 MS -0.43237804258507156\n", + "DDG A1: 3.6445745684691166\n", + "logZ_P A2 MD -1.2095648569102548\n", + "logZ_P A2 MS -0.4303726520107354\n", + "DDG A2: 3.0221340282147495\n", + "logZ_P A3 MD -1.2113188322304254\n", + "logZ_P A3 MS -0.43131669001529244\n", + "DDG A3: 5.512465754929636\n", + "logZ_P A4 MD -0.4313826562822506\n", + "logZ_P A4 MS -0.43175255346780106\n", + "DDG A4: -2.3532334001696977\n", + "logZ_P A5 MD -0.4324917122065457\n", + "logZ_P A5 MS -0.43216937161426505\n", + "DDG A5: -0.8973761378967517\n", + "DDG loss: 5.992666544549374\n", + "loss: 6.070773657398511\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-1.21352737, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-0.43237804, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(3.64457457, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-1.20956486, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-0.43037265, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(3.02213403, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-1.21131883, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-0.43131669, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(5.51246575, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-0.43138266, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-0.43175255, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.3532334, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-0.43249171, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-0.43216937, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.89737614, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(5.99266654, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ -3.25417862 46.03542636 -52.6832367 9.72113138 -12.06445498\n", + " 5.69513724] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -0.5464473494276612\n", + "logZ_P A1 MS 0.6260017896198288\n", + "DDG A1: 4.61343291403725\n", + "logZ_P A2 MD -0.5422222297904188\n", + "logZ_P A2 MS 0.6268795749857715\n", + "DDG A2: 3.987550197509394\n", + "logZ_P A3 MD -0.538081362470927\n", + "logZ_P A3 MS 0.6256338567692594\n", + "DDG A3: 6.462539333643659\n", + "logZ_P A4 MD 0.6288861267615756\n", + "logZ_P A4 MS 0.6274066531293766\n", + "DDG A4: -2.3559807114516076\n", + "logZ_P A5 MD 0.6281121138728579\n", + "logZ_P A5 MS 0.6251622981706103\n", + "DDG A5: -0.905477996882004\n", + "DDG loss: 4.567878655821119\n", + "loss: 4.626491164549815\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-0.54644735, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(0.62600179, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(4.61343291, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-0.54222223, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(0.62687957, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(3.9875502, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-0.53808136, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(0.62563386, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(6.46253933, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(0.62888613, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(0.62740665, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.35598071, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(0.62811211, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(0.6251623, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.905478, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(4.56787866, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [-2.26992846e-01 -4.28751293e-01 1.78574813e-02 -1.94693376e-01\n", + " -7.66947324e-01 9.67968564e-05] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -0.5513874081846905\n", + "logZ_P A1 MS 0.6210703430013926\n", + "DDG A1: 4.613454237692389\n", + "logZ_P A2 MD -0.5471328268689134\n", + "logZ_P A2 MS 0.621964974520904\n", + "DDG A2: 3.9875402851247532\n", + "logZ_P A3 MD -0.5430245346928549\n", + "logZ_P A3 MS 0.6207099782670187\n", + "DDG A3: 6.462587104893608\n", + "logZ_P A4 MD 0.623955376182563\n", + "logZ_P A4 MS 0.6224800157668031\n", + "DDG A4: -2.3559705271277167\n", + "logZ_P A5 MD 0.6231726874066623\n", + "logZ_P A5 MS 0.6202386516562728\n", + "DDG A5: -0.9054389257211836\n", + "DDG loss: 4.567822076544642\n", + "loss: 4.626488572274047\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-0.55138741, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(0.62107034, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(4.61345424, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-0.54713283, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(0.62196497, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(3.98754029, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-0.54302453, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(0.62070998, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(6.4625871, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(0.62395538, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(0.62248002, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.35597053, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(0.62317269, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(0.62023865, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.90543893, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(4.56782208, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 2.51775335e-03 3.76311195e-03 -9.94756801e-04 1.62459986e-03\n", + " 9.59408642e-03 -2.01123225e-05] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -0.5512758366951953\n", + "logZ_P A1 MS 0.6211803624988631\n", + "DDG A1: 4.613450394960127\n", + "logZ_P A2 MD -0.5470217564522152\n", + "logZ_P A2 MS 0.622074802013796\n", + "DDG A2: 3.987537207645386\n", + "logZ_P A3 MD -0.5429131643074744\n", + "logZ_P A3 MS 0.6208200179136922\n", + "DDG A3: 6.462583809984556\n", + "logZ_P A4 MD 0.6240653694990089\n", + "logZ_P A4 MS 0.6225899498151726\n", + "DDG A4: -2.355970673875435\n", + "logZ_P A5 MD 0.6232827937014547\n", + "logZ_P A5 MS 0.620348667384341\n", + "DDG A5: -0.9054391499644051\n", + "DDG loss: 4.5678234185545925\n", + "loss: 4.62648857139725\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-0.55127584, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(0.62118036, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(4.61345039, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-0.54702176, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(0.6220748, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(3.98753721, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-0.54291316, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(0.62082002, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(6.46258381, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(0.62406537, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(0.62258995, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.35597067, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(0.62328279, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(0.62034867, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.90543915, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(4.56782342, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 3.88423094e-06 5.40589215e-05 3.53057297e-05 -8.20379665e-06\n", + " -4.89859609e-05 8.13174601e-08] \n", + "\n", + "logZ_P A1 MD -0.5512758366951953\n", + "logZ_P A1 MS 0.6211803624988631\n", + "DDG A1: 4.613450394960127\n", + "logZ_P A2 MD -0.5470217564522152\n", + "logZ_P A2 MS 0.622074802013796\n", + "DDG A2: 3.987537207645386\n", + "logZ_P A3 MD -0.5429131643074744\n", + "logZ_P A3 MS 0.6208200179136922\n", + "DDG A3: 6.462583809984556\n", + "logZ_P A4 MD 0.6240653694990089\n", + "logZ_P A4 MS 0.6225899498151726\n", + "DDG A4: -2.355970673875435\n", + "logZ_P A5 MD 0.6232827937014547\n", + "logZ_P A5 MS 0.620348667384341\n", + "DDG A5: -0.9054391499644051\n", + "DDG loss: 4.5678234185545925\n", + "beta: 100.0\n", + "New evaluation:\n", + "logZ_P A1 MD -1.1102230246251565e-16\n", + "logZ_P A1 MS 0.0\n", + "DDG A1: 1.7104488457556373\n", + "logZ_P A2 MD 0.0\n", + "logZ_P A2 MS 0.0\n", + "DDG A2: 1.0928541288835474\n", + "logZ_P A3 MD 0.0\n", + "logZ_P A3 MS 0.0\n", + "DDG A3: 3.581180450804952\n", + "logZ_P A4 MD 0.0\n", + "logZ_P A4 MS -2.2204460492503136e-16\n", + "DDG A4: -2.352317534738276\n", + "logZ_P A5 MD 0.0\n", + "logZ_P A5 MS 0.0\n", + "DDG A5: -0.898174253203229\n", + "DDG loss: 17.239715782404367\n", + "loss: 17.2397157824044\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-1.11022302e-16, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(0., dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(1.71044885, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(0., dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(0., dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.09285413, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(0., dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(0., dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(3.58118045, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(0., dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-2.22044605e-16, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.35231753, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(0., dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(0., dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.89817425, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(17.23971578, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ -59.13012539 13.42119932 -159.92372304 4.94716807 -214.32616084\n", + " 17.13657393] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD 1006.7577376783905\n", + "logZ_P A1 MS 939.7778109380006\n", + "DDG A1: -164.13184976344962\n", + "logZ_P A2 MD 974.8972355043969\n", + "logZ_P A2 MS 943.2582091009178\n", + "DDG A2: -77.24537524613051\n", + "logZ_P A3 MD 990.5815404432876\n", + "logZ_P A3 MS 935.1601483420343\n", + "DDG A3: -133.64218639189826\n", + "logZ_P A4 MD 959.0058460527807\n", + "logZ_P A4 MS 944.716638994367\n", + "DDG A4: -37.732394211370654\n", + "logZ_P A5 MD 929.5784480542061\n", + "logZ_P A5 MS 954.2829294044997\n", + "DDG A5: 60.27012157012366\n", + "DDG loss: 30084.684143098293\n", + "loss: 63430.38940430179\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(1006.75773768, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(939.77781094, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(-164.13184976, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(974.8972355, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(943.2582091, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(-77.24537525, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(990.58154044, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(935.16014834, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(-133.64218639, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(959.00584605, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(944.71663899, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-37.73239421, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(929.57844805, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(954.2829294, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(60.27012157, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(30084.6841431, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 1149.32826704 -35433.36137476 94496.63669382 35865.2107297\n", + " 184856.11604609 770.61837365] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -2.577498613830951\n", + "logZ_P A1 MS -1.9486335902967618\n", + "DDG A1: 3.2675186440262896\n", + "logZ_P A2 MD -3.3137910531663914\n", + "logZ_P A2 MS -2.129527223262329\n", + "DDG A2: 4.025091371726021\n", + "logZ_P A3 MD -3.2463745627195433\n", + "logZ_P A3 MS -2.2045570472979223\n", + "DDG A3: 6.160720618988866\n", + "logZ_P A4 MD -2.3427400839191233\n", + "logZ_P A4 MS -2.02139507557977\n", + "DDG A4: -1.5566672940900466\n", + "logZ_P A5 MD -2.459179457402003\n", + "logZ_P A5 MS -1.9602103490880056\n", + "DDG A5: 0.33727325898223554\n", + "DDG loss: 10.262298871299548\n", + "loss: 1343.5368891833466\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-2.57749861, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-1.94863359, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(3.26751864, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-3.31379105, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-2.12952722, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(4.02509137, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-3.24637456, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-2.20455705, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(6.16072062, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-2.34274008, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-2.02139508, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-1.55666729, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-2.45917946, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-1.96021035, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(0.33727326, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(10.26229887, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [6.74475461e+03 6.06612984e+03 2.07550300e+03 1.63117734e+04\n", + " 5.64520335e+04 3.21407068e+00] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -0.04419392043748537\n", + "logZ_P A1 MS -0.040113090391222926\n", + "DDG A1: 1.7205529809501843\n", + "logZ_P A2 MD -0.04602014857221758\n", + "logZ_P A2 MS -0.03979565673264267\n", + "DDG A2: 1.1082659706783349\n", + "logZ_P A3 MD -0.04587362904002125\n", + "logZ_P A3 MS -0.04031346657142307\n", + "DDG A3: 3.5949474130772\n", + "logZ_P A4 MD -0.0414182153230284\n", + "logZ_P A4 MS -0.03981362212235562\n", + "DDG A4: -2.3483445619733883\n", + "logZ_P A5 MD -0.04200851691196181\n", + "logZ_P A5 MS -0.0393267673699976\n", + "DDG A5: -0.8915342413373273\n", + "DDG loss: 17.141747026824383\n", + "loss: 17.190015898405058\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-0.04419392, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-0.04011309, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(1.72055298, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-0.04602015, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-0.03979566, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.10826597, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-0.04587363, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-0.04031347, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(3.59494741, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-0.04141822, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-0.03981362, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.34834456, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-0.04200852, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-0.03932677, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.89153424, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(17.14174703, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ -21.52996113 39.68048137 -147.95855264 100.90236133 118.35543455\n", + " 17.05907555] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -0.1460227355702738\n", + "logZ_P A1 MS -0.13987125113663273\n", + "DDG A1: 1.7256799212133056\n", + "logZ_P A2 MD -0.1507089608207785\n", + "logZ_P A2 MS -0.13919320567757112\n", + "DDG A2: 1.1213671386181296\n", + "logZ_P A3 MD -0.1532249048827787\n", + "logZ_P A3 MS -0.13965686800187666\n", + "DDG A3: 3.6147749101220548\n", + "logZ_P A4 MD -0.14148356238808682\n", + "logZ_P A4 MS -0.13969482369686334\n", + "DDG A4: -2.3478886177387857\n", + "logZ_P A5 MD -0.14130461208165113\n", + "logZ_P A5 MS -0.1381882663725196\n", + "DDG A5: -0.8904581812274206\n", + "DDG loss: 17.042254963765924\n", + "loss: 17.10183923909145\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-0.14602274, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-0.13987125, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(1.72567992, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-0.15070896, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-0.13919321, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.12136714, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-0.1532249, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-0.13965687, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(3.61477491, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-0.14148356, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-0.13969482, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.34788862, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-0.14130461, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-0.13818827, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.89045818, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(17.04225496, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ -34.82608157 5.96371667 -105.97868363 89.98287559 88.37984701\n", + " 16.98412941] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -0.28773090011074265\n", + "logZ_P A1 MS -0.27550701693125956\n", + "DDG A1: 1.7407151805080483\n", + "logZ_P A2 MD -0.2888672009212042\n", + "logZ_P A2 MS -0.2722398809817216\n", + "DDG A2: 1.1340233730537197\n", + "logZ_P A3 MD -0.2981919309975266\n", + "logZ_P A3 MS -0.2725656582531194\n", + "DDG A3: 3.6446311021201314\n", + "logZ_P A4 MD -0.2762523689872541\n", + "logZ_P A4 MS -0.27515008012888803\n", + "DDG A4: -2.3495882675249358\n", + "logZ_P A5 MD -0.27671284587846057\n", + "logZ_P A5 MS -0.27195420846670587\n", + "DDG A5: -0.8863918669717253\n", + "DDG loss: 16.865781855665343\n", + "loss: 17.000470561628305\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-0.2877309, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-0.27550702, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(1.74071518, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-0.2888672, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-0.27223988, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.13402337, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-0.29819193, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-0.27256566, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(3.6446311, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-0.27625237, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-0.27515008, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.34958827, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-0.27671285, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-0.27195421, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.88639187, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(16.86578186, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 12.96683599 147.4648421 -87.39783726 93.19596197 70.40054761\n", + " 16.87042086] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -0.5266093214701557\n", + "logZ_P A1 MS -0.5041182700603022\n", + "DDG A1: 1.7661366890464463\n", + "logZ_P A2 MD -0.5261401096895768\n", + "logZ_P A2 MS -0.500460072177326\n", + "DDG A2: 1.1564379017638666\n", + "logZ_P A3 MD -0.5356669949332509\n", + "logZ_P A3 MS -0.5016822945881421\n", + "DDG A3: 3.665326568859458\n", + "logZ_P A4 MD -0.5043185494540268\n", + "logZ_P A4 MS -0.5033070563092671\n", + "DDG A4: -2.349813077711853\n", + "logZ_P A5 MD -0.5048793499342845\n", + "logZ_P A5 MS -0.5007868324912966\n", + "DDG A5: -0.8880411800143995\n", + "DDG loss: 16.66509554630556\n", + "loss: 16.80475376204788\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-0.52660932, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-0.50411827, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(1.76613669, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-0.52614011, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-0.50046007, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.1564379, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-0.53566699, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-0.50168229, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(3.66532657, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-0.50431855, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-0.50330706, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.34981308, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-0.50487935, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-0.50078683, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.88804118, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(16.66509555, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 16.7954707 140.87976111 -91.5305967 88.81522366 71.84823936\n", + " 16.73422195] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -1.4787709607673976\n", + "logZ_P A1 MS -1.415216752882679\n", + "DDG A1: 1.867809064478171\n", + "logZ_P A2 MD -1.4719058631921613\n", + "logZ_P A2 MS -1.4099889319764876\n", + "DDG A2: 1.246160450573564\n", + "logZ_P A3 MD -1.4822407749282216\n", + "logZ_P A3 MS -1.4148083790371577\n", + "DDG A3: 3.748143063031218\n", + "logZ_P A4 MD -1.4132484752075687\n", + "logZ_P A4 MS -1.4125951439360547\n", + "DDG A4: -2.350699886510023\n", + "logZ_P A5 MD -1.4142107717221335\n", + "logZ_P A5 MS -1.4127860534964132\n", + "DDG A5: -0.8946466508763443\n", + "DDG loss: 15.878058146142005\n", + "loss: 16.20232209085489\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-1.47877096, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-1.41521675, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(1.86780906, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-1.47190586, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-1.40998893, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.24616045, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-1.48224077, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-1.41480838, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(3.74814306, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-1.41324848, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-1.41259514, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.35069989, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-1.41421077, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-1.41278605, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.89464665, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(15.87805815, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 32.04644443 114.74556775 -108.30891081 71.20214635 76.90999892\n", + " 16.18930255] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -5.10368585538599\n", + "logZ_P A1 MS -5.011717654766047\n", + "DDG A1: 1.9381621104906215\n", + "logZ_P A2 MD -5.192121428425138\n", + "logZ_P A2 MS -5.033339332422333\n", + "DDG A2: 1.4859985985865043\n", + "logZ_P A3 MD -5.201726683551394\n", + "logZ_P A3 MS -4.989377078016588\n", + "DDG A3: 4.106958074109145\n", + "logZ_P A4 MD -5.059783980946621\n", + "logZ_P A4 MS -5.045659779172749\n", + "DDG A4: -2.31734601114618\n", + "logZ_P A5 MD -5.0549022026029045\n", + "logZ_P A5 MS -5.012855248646524\n", + "DDG A5: -0.7940659952072504\n", + "DDG loss: 14.441902622495524\n", + "loss: 25.570136140894878\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-5.10368586, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-5.01171765, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(1.93816211, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-5.19212143, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-5.03333933, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.4859986, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-5.20172668, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-4.98937708, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(4.10695807, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-5.05978398, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-5.04565978, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.31734601, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-5.0549022, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-5.01285525, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.794066, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(14.44190262, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [-359.48262859 267.39629976 -102.02408707 -193.17767791 163.77651483\n", + " 14.87977843] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -1.7404884768131244\n", + "logZ_P A1 MS -1.6747747990981676\n", + "DDG A1: 1.8731559117778613\n", + "logZ_P A2 MD -1.7404928287342734\n", + "logZ_P A2 MS -1.6714633177193483\n", + "DDG A2: 1.2637711981565194\n", + "logZ_P A3 MD -1.750760847062939\n", + "logZ_P A3 MS -1.672680982603951\n", + "DDG A3: 3.774506195205399\n", + "logZ_P A4 MD -1.676426510650958\n", + "logZ_P A4 MS -1.674806329679877\n", + "DDG A4: -2.348305966653898\n", + "logZ_P A5 MD -1.6769871910752001\n", + "logZ_P A5 MS -1.6724894255131761\n", + "DDG A5: -0.8870377856716637\n", + "DDG loss: 15.7650359181954\n", + "loss: 16.140907441990837\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-1.74048848, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-1.6747748, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(1.87315591, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-1.74049283, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-1.67146332, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.2637712, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-1.75076085, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-1.67268098, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(3.7745062, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-1.67642651, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-1.67480633, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.34830597, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-1.67698719, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-1.67248943, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.88703779, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(15.76503592, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 4.33732607 125.32614181 -107.8798034 52.77868849 83.97545919\n", + " 16.09284532] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -1.724465736602021\n", + "logZ_P A1 MS -1.6529316999551888\n", + "DDG A1: 1.8875671204932087\n", + "logZ_P A2 MD -1.7244724972062964\n", + "logZ_P A2 MS -1.6496566420776562\n", + "DDG A2: 1.2780981861820446\n", + "logZ_P A3 MD -1.7346084543416398\n", + "logZ_P A3 MS -1.6508420717402241\n", + "DDG A3: 3.7885860141260452\n", + "logZ_P A4 MD -1.6545772743358556\n", + "logZ_P A4 MS -1.652970914705186\n", + "DDG A4: -2.3483401882927355\n", + "logZ_P A5 MD -1.6551454767155918\n", + "logZ_P A5 MS -1.6506697558293608\n", + "DDG A5: -0.8870923682889146\n", + "DDG loss: 15.648423579339154\n", + "loss: 16.017197368925594\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-1.72446574, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-1.6529317, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(1.88756712, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-1.7244725, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-1.64965664, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.27809819, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-1.73460845, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-1.65084207, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(3.78858601, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-1.65457727, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-1.65297091, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.34834019, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-1.65514548, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-1.65066976, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.88709237, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(15.64842358, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 4.36534248 125.24824819 -107.81516333 52.79447258 83.94822688\n", + " 16.00799208] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -1.6603521008719138\n", + "logZ_P A1 MS -1.5655368873563709\n", + "DDG A1: 1.9452113144201275\n", + "logZ_P A2 MD -1.6603687195422554\n", + "logZ_P A2 MS -1.5624075165382667\n", + "DDG A2: 1.3354060675214272\n", + "logZ_P A3 MD -1.6699763549363402\n", + "logZ_P A3 MS -1.5634640283031531\n", + "DDG A3: 3.8449049715487047\n", + "logZ_P A4 MD -1.5671579633112727\n", + "logZ_P A4 MS -1.5656068776396426\n", + "DDG A4: -2.3484770466153053\n", + "logZ_P A5 MD -1.567756264300677\n", + "logZ_P A5 MS -1.5633687203172277\n", + "DDG A5: -0.8873106943001942\n", + "DDG loss: 15.188089994452124\n", + "loss: 15.529307585439254\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-1.6603521, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-1.56553689, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(1.94521131, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-1.66036872, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-1.56240752, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.33540607, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-1.66997635, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-1.56346403, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(3.84490497, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-1.56715796, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-1.56560688, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.34847705, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-1.56775626, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-1.56336872, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.88731069, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(15.18808999, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 4.47671138 124.93605888 -107.55675105 52.85719407 83.83584138\n", + " 15.66858189] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -1.4035347395232194\n", + "logZ_P A1 MS -1.2155989670536693\n", + "DDG A1: 2.175777818390263\n", + "logZ_P A2 MD -1.4035943658400123\n", + "logZ_P A2 MS -1.2130522340667913\n", + "DDG A2: 1.564636447154024\n", + "logZ_P A3 MD -1.4110874792752164\n", + "logZ_P A3 MS -1.2135934402586557\n", + "DDG A3: 4.070175691409923\n", + "logZ_P A4 MD -1.2171228533810852\n", + "logZ_P A4 MS -1.2157926808066446\n", + "DDG A4: -2.34902402744396\n", + "logZ_P A5 MD -1.2178417220123914\n", + "logZ_P A5 MS -1.2138068568566271\n", + "DDG A5: -0.8881839270775337\n", + "DDG loss: 13.444603158094345\n", + "loss: 13.6889670905461\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-1.40353474, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-1.21559897, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(2.17577782, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-1.40359437, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-1.21305223, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.56463645, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-1.41108748, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-1.21359344, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(4.07017569, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-1.21712285, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-1.21579268, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.34902403, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-1.21784172, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-1.21380686, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.88818393, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(13.44460316, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 4.91102794 123.67747537 -106.52549736 53.10145076 83.33096701\n", + " 14.31098524] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -1.171482573477968\n", + "logZ_P A1 MS -0.7148172739939382\n", + "DDG A1: 2.841152127278095\n", + "logZ_P A2 MD -1.1712868632863573\n", + "logZ_P A2 MS -0.7128542716451772\n", + "DDG A2: 2.2279332257871194\n", + "logZ_P A3 MD -1.1757226801159448\n", + "logZ_P A3 MS -0.7133550608151151\n", + "DDG A3: 4.726002676193785\n", + "logZ_P A4 MD -0.7154562538789202\n", + "logZ_P A4 MS -0.714739322761911\n", + "DDG A4: -2.3505424132925556\n", + "logZ_P A5 MD -0.7160861403266978\n", + "logZ_P A5 MS -0.7136340751400122\n", + "DDG A5: -0.8921029398009896\n", + "DDG loss: 9.276620310532262\n", + "loss: 9.41667014170146\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-1.17148257, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-0.71481727, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(2.84115213, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-1.17128686, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-0.71285427, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(2.22793323, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-1.17572268, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-0.71335506, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(4.72600268, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-0.71545625, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-0.71473932, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.35054241, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-0.71608614, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-0.71363408, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.89210294, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(9.27662031, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 3.41841959 89.49724335 -77.2326365 38.3338888 59.78509345\n", + " 10.37822191] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -0.6152224354647283\n", + "logZ_P A1 MS 0.48722096776581436\n", + "DDG A1: 4.440098712154449\n", + "logZ_P A2 MD -0.6144611417823321\n", + "logZ_P A2 MS 0.4877839763038315\n", + "DDG A2: 3.8220130412648783\n", + "logZ_P A3 MD -0.6115259899975807\n", + "logZ_P A3 MS 0.4873599387980807\n", + "DDG A3: 6.302022010502989\n", + "logZ_P A4 MD 0.4886886670677461\n", + "logZ_P A4 MS 0.4879442183253798\n", + "DDG A4: -2.354160789824377\n", + "logZ_P A5 MD 0.48826125870210046\n", + "logZ_P A5 MS 0.48692247231696617\n", + "DDG A5: -0.9014890882928196\n", + "DDG loss: 4.628914885444766\n", + "loss: 4.716291054100372\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-0.61522244, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(0.48722097, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(4.44009871, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-0.61446114, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(0.48778398, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(3.82201304, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-0.61152599, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(0.48735994, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(6.30202201, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(0.48868867, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(0.48794422, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.35416079, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(0.48826126, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(0.48692247, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.90148909, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(4.62891489, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 0.07648233 7.52007869 -6.88729635 3.27717258 4.63833958 0.9278302 ] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -0.5642857457101105\n", + "logZ_P A1 MS 0.6015552543714493\n", + "DDG A1: 4.5970711619575715\n", + "logZ_P A2 MD -0.5634583668404045\n", + "logZ_P A2 MS 0.6019901953142949\n", + "DDG A2: 3.978504768778605\n", + "logZ_P A3 MD -0.5598198655283023\n", + "logZ_P A3 MS 0.6015688381031022\n", + "DDG A3: 6.456778880996305\n", + "logZ_P A4 MD 0.6032274298681002\n", + "logZ_P A4 MS 0.6023422576747642\n", + "DDG A4: -2.354509221088975\n", + "logZ_P A5 MD 0.6028150175058278\n", + "logZ_P A5 MS 0.6011141569077753\n", + "DDG A5: -0.9023855840440342\n", + "DDG loss: 4.5813201700023285\n", + "loss: 4.678507481451758\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-0.56428575, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(0.60155525, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(4.59707116, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-0.56345837, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(0.6019902, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(3.97850477, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-0.55981987, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(0.60156884, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(6.45677888, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(0.60322743, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(0.60234226, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.35450922, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(0.60281502, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(0.60111416, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.90238558, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(4.58132017, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [-1.57096023e-02 -3.38693990e-02 3.07677610e-04 -1.03915847e-02\n", + " -4.77495269e-02 4.57441592e-05] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -0.5645082417217444\n", + "logZ_P A1 MS 0.6013357023848557\n", + "DDG A1: 4.597078451363574\n", + "logZ_P A2 MD -0.5636799253523761\n", + "logZ_P A2 MS 0.6017712679848344\n", + "DDG A2: 3.978511283586467\n", + "logZ_P A3 MD -0.5600428861159571\n", + "logZ_P A3 MS 0.6013496967650122\n", + "DDG A3: 6.456788486018219\n", + "logZ_P A4 MD 0.6030078134123885\n", + "logZ_P A4 MS 0.6021227791511858\n", + "DDG A4: -2.354508879569013\n", + "logZ_P A5 MD 0.6025951113880584\n", + "logZ_P A5 MS 0.6008949177851024\n", + "DDG A5: -0.9023839325641512\n", + "DDG loss: 4.58131778955798\n", + "loss: 4.678507472477776\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-0.56450824, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(0.6013357, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(4.59707845, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-0.56367993, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(0.60177127, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(3.97851128, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-0.56004289, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(0.6013497, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(6.45678849, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(0.60300781, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(0.60212278, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.35450888, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(0.60259511, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(0.60089492, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.90238393, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(4.58131779, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 9.85814316e-05 1.45165910e-04 -1.47532980e-05 4.34785583e-05\n", + " 3.19171811e-04 -6.09035616e-07] \n", + "\n", + "logZ_P A1 MD -0.5645082417217444\n", + "logZ_P A1 MS 0.6013357023848557\n", + "DDG A1: 4.597078451363574\n", + "logZ_P A2 MD -0.5636799253523761\n", + "logZ_P A2 MS 0.6017712679848344\n", + "DDG A2: 3.978511283586467\n", + "logZ_P A3 MD -0.5600428861159571\n", + "logZ_P A3 MS 0.6013496967650122\n", + "DDG A3: 6.456788486018219\n", + "logZ_P A4 MD 0.6030078134123885\n", + "logZ_P A4 MS 0.6021227791511858\n", + "DDG A4: -2.354508879569013\n", + "logZ_P A5 MD 0.6025951113880584\n", + "logZ_P A5 MS 0.6008949177851024\n", + "DDG A5: -0.9023839325641512\n", + "DDG loss: 4.58131778955798\n", + "beta: 200.0\n", + "New evaluation:\n", + "logZ_P A1 MD -1.1102230246251565e-16\n", + "logZ_P A1 MS 0.0\n", + "DDG A1: 1.7104488457556373\n", + "logZ_P A2 MD 0.0\n", + "logZ_P A2 MS 0.0\n", + "DDG A2: 1.0928541288835474\n", + "logZ_P A3 MD 0.0\n", + "logZ_P A3 MS 0.0\n", + "DDG A3: 3.581180450804952\n", + "logZ_P A4 MD 0.0\n", + "logZ_P A4 MS -2.2204460492503136e-16\n", + "DDG A4: -2.352317534738276\n", + "logZ_P A5 MD 0.0\n", + "logZ_P A5 MS 0.0\n", + "DDG A5: -0.898174253203229\n", + "DDG loss: 17.239715782404367\n", + "loss: 17.239715782404435\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-1.11022302e-16, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(0., dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(1.71044885, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(0., dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(0., dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.09285413, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(0., dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(0., dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(3.58118045, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(0., dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-2.22044605e-16, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.35231753, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(0., dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(0., dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.89817425, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(17.23971578, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ -59.13012539 13.42119932 -159.92372304 4.94716807 -214.32616084\n", + " 17.13657393] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD 1006.7577376783628\n", + "logZ_P A1 MS 939.7778109379731\n", + "DDG A1: -164.13184976344905\n", + "logZ_P A2 MD 974.8972355043691\n", + "logZ_P A2 MS 943.2582091008896\n", + "DDG A2: -77.24537524613136\n", + "logZ_P A3 MD 990.5815404432595\n", + "logZ_P A3 MS 935.1601483420067\n", + "DDG A3: -133.64218639189713\n", + "logZ_P A4 MD 959.0058460527522\n", + "logZ_P A4 MS 944.7166389943379\n", + "DDG A4: -37.73239421137206\n", + "logZ_P A5 MD 929.5784480541773\n", + "logZ_P A5 MS 954.2829294044703\n", + "DDG A5: 60.27012157012226\n", + "DDG loss: 30084.684143098064\n", + "loss: 96776.09466550399\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(1006.75773768, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(939.77781094, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(-164.13184976, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(974.8972355, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(943.2582091, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(-77.24537525, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(990.58154044, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(935.16014834, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(-133.64218639, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(959.00584605, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(944.71663899, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-37.73239421, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(929.57844805, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(954.2829294, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(60.27012157, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(30084.6841431, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 4693.28878402 -42631.80796455 93594.15246068 43430.15246561\n", + " 243242.57747014 765.78394738] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -0.2880805456995371\n", + "logZ_P A1 MS -0.26094227764952127\n", + "DDG A1: 1.7776431974474964\n", + "logZ_P A2 MD -0.3008248363564222\n", + "logZ_P A2 MS -0.25915088585625284\n", + "DDG A2: 1.196038830321965\n", + "logZ_P A3 MD -0.2997765287642754\n", + "logZ_P A3 MS -0.2625256864723938\n", + "DDG A3: 3.6734135363196185\n", + "logZ_P A4 MD -0.26990736147375405\n", + "logZ_P A4 MS -0.2591581231214479\n", + "DDG A4: -2.325702420577972\n", + "logZ_P A5 MD -0.2738021450424507\n", + "logZ_P A5 MS -0.25587604948455633\n", + "DDG A5: -0.8537892406018764\n", + "DDG loss: 16.59681749936365\n", + "loss: 20.888130786344473\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-0.28808055, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-0.26094228, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(1.7776432, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-0.30082484, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-0.25915089, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.19603883, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-0.29977653, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-0.26252569, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(3.67341354, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-0.26990736, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-0.25915812, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.32570242, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-0.27380215, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-0.25587605, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.85378924, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(16.5968175, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 441.39416673 367.6490821 -6.27045806 1284.05596962 4214.41837316\n", + " 16.61717898] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -0.022466675574763548\n", + "logZ_P A1 MS -0.020395672204826694\n", + "DDG A1: 1.715576650099595\n", + "logZ_P A2 MD -0.02338952814497288\n", + "logZ_P A2 MS -0.020232472768815336\n", + "DDG A2: 1.1006709979949294\n", + "logZ_P A3 MD -0.023315659340936018\n", + "logZ_P A3 MS -0.020495727430763853\n", + "DDG A3: 3.5881626022145263\n", + "logZ_P A4 MD -0.021056125187581775\n", + "logZ_P A4 MS -0.020242327385325234\n", + "DDG A4: -2.3503025713798658\n", + "logZ_P A5 MD -0.02135592205183958\n", + "logZ_P A5 MS -0.019995542039510934\n", + "DDG A5: -0.8948059522927019\n", + "DDG loss: 17.189940693419913\n", + "loss: 17.214793171242743\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-0.02246668, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-0.02039567, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(1.71557665, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-0.02338953, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-0.02023247, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.100671, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-0.02331566, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-0.02049573, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(3.5881626, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-0.02105613, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-0.02024233, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.35030257, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-0.02135592, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-0.01999554, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.89480595, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(17.18994069, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ -21.05784448 40.21506513 -148.34139918 102.32940375 122.73913648\n", + " 17.09715095] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -0.0734563119342219\n", + "logZ_P A1 MS -0.07034321165545526\n", + "DDG A1: 1.7181568820458655\n", + "logZ_P A2 MD -0.07581275109702754\n", + "logZ_P A2 MS -0.0699993567619216\n", + "DDG A2: 1.1072480932572715\n", + "logZ_P A3 MD -0.07706940658318283\n", + "logZ_P A3 MS -0.07023641747760209\n", + "DDG A3: 3.5980989318303567\n", + "logZ_P A4 MD -0.07115929874961756\n", + "logZ_P A4 MS -0.07025072926103129\n", + "DDG A4: -2.350067916684535\n", + "logZ_P A5 MD -0.07107520605718572\n", + "logZ_P A5 MS -0.06949361981161517\n", + "DDG A5: -0.8942582456591776\n", + "DDG loss: 17.13982583801702\n", + "loss: 17.170494017171986\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-0.07345631, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-0.07034321, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(1.71815688, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-0.07581275, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-0.06999936, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.10724809, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-0.07706941, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-0.07023642, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(3.59809893, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-0.0711593, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-0.07025073, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.35006792, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-0.07107521, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-0.06949362, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.89425825, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(17.13982584, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ -34.37756991 6.65703177 -106.7368704 91.66176759 93.04501859\n", + " 17.05950825] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -0.1448320622517162\n", + "logZ_P A1 MS -0.1386765194193252\n", + "DDG A1: 1.7256899698086665\n", + "logZ_P A2 MD -0.14543225649747493\n", + "logZ_P A2 MS -0.13703906522723103\n", + "DDG A2: 1.1136356704686714\n", + "logZ_P A3 MD -0.1500923144960213\n", + "logZ_P A3 MS -0.13721077556188263\n", + "DDG A3: 3.6130751412058784\n", + "logZ_P A4 MD -0.1390644029700457\n", + "logZ_P A4 MS -0.13849178214729313\n", + "DDG A4: -2.3508997255811437\n", + "logZ_P A5 MD -0.13929217241867384\n", + "logZ_P A5 MS -0.13688711819629226\n", + "DDG A5: -0.8922193389486185\n", + "DDG loss: 17.050760419166274\n", + "loss: 17.1187980173741\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-0.14483206, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-0.13867652, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(1.72568997, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-0.14543226, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-0.13703907, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.11363567, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-0.15009231, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-0.13721078, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(3.61307514, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-0.1390644, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-0.13849178, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.35089973, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-0.13929217, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-0.13688712, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.89221934, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(17.05076042, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 12.91098307 147.07423631 -88.09238564 95.02533498 75.0235393\n", + " 17.00212187] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -0.2664962366864791\n", + "logZ_P A1 MS -0.25514145610692707\n", + "DDG A1: 1.738563282470608\n", + "logZ_P A2 MD -0.26632002919915865\n", + "logZ_P A2 MS -0.2532990705270939\n", + "DDG A2: 1.1250940225555988\n", + "logZ_P A3 MD -0.27112375229158214\n", + "logZ_P A3 MS -0.25391954693238744\n", + "DDG A3: 3.623778063274312\n", + "logZ_P A4 MD -0.25526144167045206\n", + "logZ_P A4 MS -0.2547300762132205\n", + "DDG A4: -2.351001873866163\n", + "logZ_P A5 MD -0.25553452726983467\n", + "logZ_P A5 MS -0.25344886085338875\n", + "DDG A5: -0.8930101431561028\n", + "DDG loss: 16.94738691746992\n", + "loss: 17.018732733647663\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-0.26649624, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-0.25514146, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(1.73856328, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-0.26632003, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-0.25329907, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.12509402, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-0.27112375, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-0.25391955, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(3.62377806, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-0.25526144, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-0.25473008, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.35100187, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-0.25553453, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-0.25344886, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.89301014, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(16.94738692, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 16.6727698 140.72490334 -92.05725025 90.86004805 76.42042574\n", + " 16.93177256] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -0.7522714693502277\n", + "logZ_P A1 MS -0.7201220167919778\n", + "DDG A1: 1.790050890289884\n", + "logZ_P A2 MD -0.7489959419231533\n", + "logZ_P A2 MS -0.7174584520388173\n", + "DDG A2: 1.1709409538371807\n", + "logZ_P A3 MD -0.754374172511251\n", + "logZ_P A3 MS -0.7198767860054657\n", + "DDG A3: 3.666595979793255\n", + "logZ_P A4 MD -0.7191732282717952\n", + "logZ_P A4 MS -0.7188056650627255\n", + "DDG A4: -2.351407448232625\n", + "logZ_P A5 MD -0.719627619231842\n", + "logZ_P A5 MS -0.718820306320579\n", + "DDG A5: -0.8961753464349415\n", + "DDG loss: 16.538010716296668\n", + "loss: 16.705544390592763\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-0.75227147, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-0.72012202, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(1.79005089, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-0.74899594, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-0.71745845, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.17094095, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-0.75437417, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-0.71987679, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(3.66659598, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-0.71917323, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-0.71880567, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.35140745, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-0.71962762, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-0.71882031, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.89617535, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(16.53801072, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 31.68463313 115.42973205 -108.03099929 74.15102358 81.62456798\n", + " 16.65037396] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -2.537218666033371\n", + "logZ_P A1 MS -2.4891765111759008\n", + "DDG A1: 1.8294012211827322\n", + "logZ_P A2 MD -2.579509141766744\n", + "logZ_P A2 MS -2.4990919685595165\n", + "DDG A2: 1.2919670497446678\n", + "logZ_P A3 MD -2.5849149936901186\n", + "logZ_P A3 MS -2.4780045201206744\n", + "DDG A3: 3.8458907833628913\n", + "logZ_P A4 MD -2.5121591705927093\n", + "logZ_P A4 MS -2.5053314999742695\n", + "DDG A4: -2.3354122222870313\n", + "logZ_P A5 MD -2.5098538332506295\n", + "logZ_P A5 MS -2.4890143616139104\n", + "DDG A5: -0.8465757214307115\n", + "DDG loss: 15.748696629641545\n", + "loss: 20.98212023528264\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-2.53721867, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-2.48917651, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(1.82940122, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-2.57950914, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-2.49909197, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.29196705, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-2.58491499, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-2.47800452, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(3.84589078, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-2.51215917, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-2.5053315, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.33541222, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-2.50985383, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-2.48901436, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.84657572, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(15.74869663, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [-337.51118812 258.68442676 -102.54663351 -172.42104946 172.82030745\n", + " 15.98782097] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -0.8968270310266462\n", + "logZ_P A1 MS -0.8633597523559274\n", + "DDG A1: 1.793313827744323\n", + "logZ_P A2 MD -0.8972379163134521\n", + "logZ_P A2 MS -0.8617093743187373\n", + "DDG A2: 1.1808227988624795\n", + "logZ_P A3 MD -0.9026153115052024\n", + "logZ_P A3 MS -0.862203646999762\n", + "DDG A3: 3.6812397321204253\n", + "logZ_P A4 MD -0.8643507525847379\n", + "logZ_P A4 MS -0.8634612981835296\n", + "DDG A4: -2.3501152456408607\n", + "logZ_P A5 MD -0.8645869563011012\n", + "logZ_P A5 MS -0.8621208903040152\n", + "DDG A5: -0.8920682737944504\n", + "DDG loss: 16.471453052206154\n", + "loss: 16.670850325782336\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-0.89682703, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-0.86335975, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(1.79331383, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-0.89723792, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-0.86170937, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.1808228, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-0.90261531, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-0.86220365, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(3.68123973, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-0.86435075, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-0.8634613, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.35011525, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-0.86458696, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-0.86212089, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.89206827, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(16.47145305, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 2.06301651 126.79749832 -107.56774843 54.52184224 89.42791727\n", + " 16.59620877] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -0.893030627406782\n", + "logZ_P A1 MS -0.8562960258047206\n", + "DDG A1: 1.8014037193223462\n", + "logZ_P A2 MD -0.8934458823567782\n", + "logZ_P A2 MS -0.8546561177303399\n", + "DDG A2: 1.1888975860985862\n", + "logZ_P A3 MD -0.8987811283155676\n", + "logZ_P A3 MS -0.8551405680364363\n", + "DDG A3: 3.689234478056077\n", + "logZ_P A4 MD -0.857284739843441\n", + "logZ_P A4 MS -0.8563996277792606\n", + "DDG A4: -2.3501259972673614\n", + "logZ_P A5 MD -0.8575232001849685\n", + "logZ_P A5 MS -0.8550640481350565\n", + "DDG A5: -0.8920853927276552\n", + "DDG loss: 16.4035519245216\n", + "loss: 16.60087352125127\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-0.89303063, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-0.85629603, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(1.80140372, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-0.89344588, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-0.85465612, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.18889759, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-0.89878113, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-0.85514057, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(3.68923448, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-0.85728474, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-0.85639963, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.350126, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-0.8575232, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-0.85506405, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.89208539, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(16.40355192, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 2.07830507 126.75748339 -107.53683804 54.53054244 89.40545393\n", + " 16.54798604] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -0.877843143419735\n", + "logZ_P A1 MS -0.8280392754147974\n", + "DDG A1: 1.833763222935877\n", + "logZ_P A2 MD -0.8782759005201367\n", + "logZ_P A2 MS -0.8264412462329193\n", + "DDG A2: 1.2211967328987028\n", + "logZ_P A3 MD -0.8834425349552383\n", + "logZ_P A3 MS -0.8268864107242561\n", + "DDG A3: 3.7212134144008577\n", + "logZ_P A4 MD -0.8290188495941325\n", + "logZ_P A4 MS -0.8281511055138899\n", + "DDG A4: -2.350169000395605\n", + "logZ_P A5 MD -0.8292663377292944\n", + "logZ_P A5 MS -0.8268348407876464\n", + "DDG A5: -0.8921538667756945\n", + "DDG loss: 16.133893505909807\n", + "loss: 16.32307043585454\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-0.87784314, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-0.82803928, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(1.83376322, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-0.8782759, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-0.82644125, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.22119673, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-0.88344253, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-0.82688641, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(3.72121341, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-0.82901885, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-0.82815111, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.350169, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-0.82926634, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-0.82683484, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.89215387, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(16.13389351, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 2.13934205 126.59732196 -107.41321431 54.56527188 89.31500722\n", + " 16.35509573] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -0.8170632946291495\n", + "logZ_P A1 MS -0.7149827667162802\n", + "DDG A1: 1.9632002328679161\n", + "logZ_P A2 MD -0.8175664364496931\n", + "logZ_P A2 MS -0.7135522378080966\n", + "DDG A2: 1.3503932847201323\n", + "logZ_P A3 MD -0.8220583910693998\n", + "logZ_P A3 MS -0.7138403179021579\n", + "DDG A3: 3.849128399967065\n", + "logZ_P A4 MD -0.7159258598551766\n", + "logZ_P A4 MS -0.71512756588585\n", + "DDG A4: -2.3503409588702278\n", + "logZ_P A5 MD -0.7162094798710971\n", + "logZ_P A5 MS -0.7138885924775438\n", + "DDG A5: -0.8924277360167951\n", + "DDG loss: 15.086397012806602\n", + "loss: 15.245524555055049\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-0.81706329, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-0.71498277, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(1.96320023, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-0.81756644, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-0.71355224, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.35039328, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-0.82205839, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-0.71384032, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(3.8491284, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-0.71592586, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-0.71512757, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.35034096, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-0.71620948, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-0.71388859, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.89242774, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(15.08639701, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 2.38161348 125.95505018 -106.91900577 54.70304868 88.94372605\n", + " 15.58354404] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -0.5734652477293279\n", + "logZ_P A1 MS -0.2622846062934835\n", + "DDG A1: 2.480932113950812\n", + "logZ_P A2 MD -0.5742559563665298\n", + "logZ_P A2 MS -0.26152383650023275\n", + "DDG A2: 1.8671788576724986\n", + "logZ_P A3 MD -0.5760454360582281\n", + "logZ_P A3 MS -0.26118451457783326\n", + "DDG A3: 4.3607760923903935\n", + "logZ_P A4 MD -0.26308302844075404\n", + "logZ_P A4 MS -0.2625621858320867\n", + "DDG A4: -2.3510279284391857\n", + "logZ_P A5 MD -0.2635115084651991\n", + "logZ_P A5 MS -0.26163288524023137\n", + "DDG A5: -0.8935227820982079\n", + "DDG loss: 11.394587042912335\n", + "loss: 11.474026155059484\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-0.57346525, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-0.26228461, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(2.48093211, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-0.57425596, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-0.26152384, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.86717886, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-0.57604544, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-0.26118451, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(4.36077609, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-0.26308303, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-0.26256219, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.35102793, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-0.26351151, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-0.26163289, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.89352278, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(11.39458704, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 3.32066423 123.36000011 -104.94684278 55.23594574 87.30666133\n", + " 12.49748889] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -0.5686275585378787\n", + "logZ_P A1 MS 0.4043657743815642\n", + "DDG A1: 4.11958033806418\n", + "logZ_P A2 MD -0.5694972110315001\n", + "logZ_P A2 MS 0.4046883634320746\n", + "DDG A2: 3.504937611255361\n", + "logZ_P A3 MD -0.5672440582538784\n", + "logZ_P A3 MS 0.4047641531666309\n", + "DDG A3: 5.987872782282113\n", + "logZ_P A4 MD 0.40502135192520616\n", + "logZ_P A4 MS 0.4046732907194681\n", + "DDG A4: -2.353179334283657\n", + "logZ_P A5 MD 0.40475542818701926\n", + "logZ_P A5 MS 0.40431737140708923\n", + "DDG A5: -0.8992588817903292\n", + "DDG loss: 4.955799638671256\n", + "loss: 5.087025571918913\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-0.56862756, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(0.40436577, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(4.11958034, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-0.56949721, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(0.40468836, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(3.50493761, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-0.56724406, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(0.40476415, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(5.98787278, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(0.40502135, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(0.40467329, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.35317933, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(0.40475543, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(0.40431737, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.89925888, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(4.95579964, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 0.45631467 26.31519751 -22.7090759 11.68860074 17.92973697\n", + " 2.71063815] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -0.5681277878850846\n", + "logZ_P A1 MS 0.5881654474721655\n", + "DDG A1: 4.573430896500197\n", + "logZ_P A2 MD -0.5690168747445913\n", + "logZ_P A2 MS 0.5883709032100419\n", + "DDG A2: 3.9585462670992344\n", + "logZ_P A3 MD -0.5656428437135714\n", + "logZ_P A3 MS 0.5883688129773944\n", + "DDG A3: 6.438513312771791\n", + "logZ_P A4 MD 0.589222698916939\n", + "logZ_P A4 MS 0.5886364085856155\n", + "DDG A4: -2.3537691895986423\n", + "logZ_P A5 MD 0.5889979511886021\n", + "logZ_P A5 MS 0.5879237769996305\n", + "DDG A5: -0.9008339084951229\n", + "DDG loss: 4.589843319444985\n", + "loss: 4.771761419476016\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-0.56812779, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(0.58816545, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(4.5734309, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-0.56901687, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(0.5883709, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(3.95854627, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-0.56564284, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(0.58836881, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(6.43851331, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(0.5892227, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(0.58863641, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.35376919, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(0.58899795, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(0.58792378, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.90083391, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(4.58984332, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [-0.0279213 -0.05273624 -0.00439021 -0.01736371 -0.07870615 0.00031743] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -0.5683171734421025\n", + "logZ_P A1 MS 0.5879973861912791\n", + "DDG A1: 4.573483695407868\n", + "logZ_P A2 MD -0.5692053410230904\n", + "logZ_P A2 MS 0.5882034441929719\n", + "DDG A2: 3.9585982810785194\n", + "logZ_P A3 MD -0.5658325591069104\n", + "logZ_P A3 MS 0.5882010446723575\n", + "DDG A3: 6.438567653762421\n", + "logZ_P A4 MD 0.5890547248756339\n", + "logZ_P A4 MS 0.5884685084325174\n", + "DDG A4: -2.353769006651454\n", + "logZ_P A5 MD 0.5888297460198333\n", + "logZ_P A5 MS 0.5877560025562273\n", + "DDG A5: -0.90083284201912\n", + "DDG loss: 4.589834571886801\n", + "loss: 4.771761403544875\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-0.56831717, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(0.58799739, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(4.5734837, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-0.56920534, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(0.58820344, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(3.95859828, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-0.56583256, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(0.58820104, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(6.43856765, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(0.58905472, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(0.58846851, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.35376901, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(0.58882975, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(0.587756, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.90083284, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(4.58983457, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 7.18517212e-05 1.32692050e-04 -1.95807489e-05 2.65508097e-05\n", + " 2.42265392e-04 -1.90959219e-07] \n", + "\n", + "logZ_P A1 MD -0.5683171734421025\n", + "logZ_P A1 MS 0.5879973861912791\n", + "DDG A1: 4.573483695407868\n", + "logZ_P A2 MD -0.5692053410230904\n", + "logZ_P A2 MS 0.5882034441929719\n", + "DDG A2: 3.9585982810785194\n", + "logZ_P A3 MD -0.5658325591069104\n", + "logZ_P A3 MS 0.5882010446723575\n", + "DDG A3: 6.438567653762421\n", + "logZ_P A4 MD 0.5890547248756339\n", + "logZ_P A4 MS 0.5884685084325174\n", + "DDG A4: -2.353769006651454\n", + "logZ_P A5 MD 0.5888297460198333\n", + "logZ_P A5 MS 0.5877560025562273\n", + "DDG A5: -0.90083284201912\n", + "DDG loss: 4.589834571886801\n", + "beta: 500.0\n", + "New evaluation:\n", + "logZ_P A1 MD -1.1102230246251565e-16\n", + "logZ_P A1 MS 0.0\n", + "DDG A1: 1.7104488457556373\n", + "logZ_P A2 MD 0.0\n", + "logZ_P A2 MS 0.0\n", + "DDG A2: 1.0928541288835474\n", + "logZ_P A3 MD 0.0\n", + "logZ_P A3 MS 0.0\n", + "DDG A3: 3.581180450804952\n", + "logZ_P A4 MD 0.0\n", + "logZ_P A4 MS -2.2204460492503136e-16\n", + "DDG A4: -2.352317534738276\n", + "logZ_P A5 MD 0.0\n", + "logZ_P A5 MS 0.0\n", + "DDG A5: -0.898174253203229\n", + "DDG loss: 17.239715782404367\n", + "loss: 17.239715782404534\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-1.11022302e-16, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(0., dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(1.71044885, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(0., dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(0., dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.09285413, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(0., dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(0., dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(3.58118045, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(0., dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-2.22044605e-16, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.35231753, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(0., dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(0., dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.89817425, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(17.23971578, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ -59.13012539 13.42119932 -159.92372304 4.94716807 -214.32616084\n", + " 17.13657393] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD 1006.7577376781314\n", + "logZ_P A1 MS 939.7778109377447\n", + "DDG A1: -164.131849763442\n", + "logZ_P A2 MD 974.8972355041385\n", + "logZ_P A2 MS 943.2582091006554\n", + "DDG A2: -77.24537524614037\n", + "logZ_P A3 MD 990.5815404430267\n", + "logZ_P A3 MS 935.1601483417746\n", + "DDG A3: -133.64218639189517\n", + "logZ_P A4 MD 959.0058460525153\n", + "logZ_P A4 MS 944.7166389940962\n", + "DDG A4: -37.732394211383884\n", + "logZ_P A5 MD 929.5784480539377\n", + "logZ_P A5 MS 954.2829294042277\n", + "DDG A5: 60.27012157011494\n", + "DDG loss: 30084.68414309726\n", + "loss: 196813.21044909098\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(1006.75773768, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(939.77781094, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(-164.13184976, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(974.8972355, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(943.2582091, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(-77.24537525, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(990.58154044, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(935.16014834, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(-133.64218639, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(959.00584605, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(944.71663899, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-37.73239421, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(929.57844805, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(954.2829294, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(60.27012157, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(30084.6841431, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 15325.17033505 -64227.14773391 90886.69976141 66124.97767335\n", + " 418401.96174131 751.28066856] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -0.08517759047836285\n", + "logZ_P A1 MS -0.07728667719542708\n", + "DDG A1: 1.729986747044185\n", + "logZ_P A2 MD -0.08873747988191602\n", + "logZ_P A2 MS -0.07668810044590103\n", + "DDG A2: 1.1226883923671014\n", + "logZ_P A3 MD -0.0884506237994059\n", + "logZ_P A3 MS -0.07768600031949681\n", + "DDG A3: 3.607833658541186\n", + "logZ_P A4 MD -0.07982401911508294\n", + "logZ_P A4 MS -0.07671749813724582\n", + "DDG A4: -2.3446257887971504\n", + "logZ_P A5 MD -0.08096388626593559\n", + "logZ_P A5 MS -0.0757739781558227\n", + "DDG A5: -0.8853240407225936\n", + "DDG loss: 17.050686822524387\n", + "loss: 17.95383628341027\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-0.08517759, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-0.07728668, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(1.72998675, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-0.08873748, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-0.0766881, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.12268839, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-0.08845062, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-0.077686, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(3.60783366, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-0.07982402, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-0.0767175, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.34462579, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-0.08096389, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-0.07577398, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.88532404, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(17.05068682, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 303.32191358 270.06666073 -52.433451 933.08257195 2995.25590105\n", + " 16.98492583] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -0.009012563506342585\n", + "logZ_P A1 MS -0.00818265175986583\n", + "DDG A1: 1.7125037072399187\n", + "logZ_P A2 MD -0.009381401292405039\n", + "logZ_P A2 MS -0.008116733236211027\n", + "DDG A2: 1.0959854469906845\n", + "logZ_P A3 MD -0.009351920872748025\n", + "logZ_P A3 MS -0.0082223433599581\n", + "DDG A3: 3.583977284726607\n", + "logZ_P A4 MD -0.008446846665024228\n", + "logZ_P A4 MS -0.00812086440320357\n", + "DDG A4: -2.3515104026580262\n", + "logZ_P A5 MD -0.008567039361380806\n", + "logZ_P A5 MS -0.00802204222716243\n", + "DDG A5: -0.8968248402989174\n", + "DDG loss: 17.219755524166327\n", + "loss: 17.229730078297557\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-0.00901256, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-0.00818265, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(1.71250371, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-0.0093814, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-0.00811673, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.09598545, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-0.00935192, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-0.00822234, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(3.58397728, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-0.00844685, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-0.00812086, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.3515104, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-0.00856704, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-0.00802204, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.89682484, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(17.21975552, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ -21.04340627 40.348566 -148.65843409 102.50009588 122.99102858\n", + " 17.12064724] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -0.029424932046206644\n", + "logZ_P A1 MS -0.02817657997216001\n", + "DDG A1: 1.7135397654910034\n", + "logZ_P A2 MD -0.030368023494789533\n", + "logZ_P A2 MS -0.02803831696329604\n", + "DDG A2: 1.098622482255536\n", + "logZ_P A3 MD -0.03087053980168315\n", + "logZ_P A3 MS -0.0281336641617593\n", + "DDG A3: 3.5879569548894077\n", + "logZ_P A4 MD -0.028503511458629782\n", + "logZ_P A4 MS -0.028138974106659213\n", + "DDG A4: -2.3514149402547977\n", + "logZ_P A5 MD -0.028470341576394526\n", + "logZ_P A5 MS -0.027835927648321192\n", + "DDG A5: -0.8966034443173314\n", + "DDG loss: 17.199621148976373\n", + "loss: 17.211960867455733\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-0.02942493, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-0.02817658, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(1.71353977, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-0.03036802, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-0.02803832, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.09862248, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-0.03087054, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-0.02813366, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(3.58795695, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-0.02850351, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-0.02813897, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.35141494, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-0.02847034, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-0.02783593, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.89660344, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(17.19962115, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ -34.3761942 6.88979735 -107.28427729 91.98509879 93.46864765\n", + " 17.10551199] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -0.05809927465569666\n", + "logZ_P A1 MS -0.05563253515414103\n", + "DDG A1: 1.7165564927614925\n", + "logZ_P A2 MD -0.05834455603183794\n", + "logZ_P A2 MS -0.05497710676419151\n", + "DDG A2: 1.1011919332702305\n", + "logZ_P A3 MD -0.0602080593861489\n", + "logZ_P A3 MS -0.05504717978931016\n", + "DDG A3: 3.593958788686736\n", + "logZ_P A4 MD -0.05578947559802004\n", + "logZ_P A4 MS -0.05555753510769475\n", + "DDG A4: -2.351743250084236\n", + "logZ_P A5 MD -0.05587913957106777\n", + "logZ_P A5 MS -0.05491479784305223\n", + "DDG A5: -0.8957865430846826\n", + "DDG loss: 17.163794904216854\n", + "loss: 17.1910385499596\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-0.05809927, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-0.05563254, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(1.71655649, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-0.05834456, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-0.05497711, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.10119193, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-0.06020806, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-0.05504718, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(3.59395879, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-0.05578948, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-0.05555754, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.35174325, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-0.05587914, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-0.0549148, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.89578654, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(17.1637949, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 12.60237241 146.63973657 -88.60029523 95.4391302 75.42320758\n", + " 17.08215204] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -0.10730025688027692\n", + "logZ_P A1 MS -0.10273821160438804\n", + "DDG A1: 1.72174446985874\n", + "logZ_P A2 MD -0.10724147130684003\n", + "logZ_P A2 MS -0.10199847479248249\n", + "DDG A2: 1.1058357882530894\n", + "logZ_P A3 MD -0.10917298537940402\n", + "logZ_P A3 MS -0.10224815970059489\n", + "DDG A3: 3.598326319185682\n", + "logZ_P A4 MD -0.10278915294834245\n", + "logZ_P A4 MS -0.10257267718917898\n", + "DDG A4: -2.351781540758561\n", + "logZ_P A5 MD -0.10289572770925423\n", + "logZ_P A5 MS -0.1020557236509981\n", + "DDG A5: -0.8960944031549736\n", + "DDG loss: 17.121703148498103\n", + "loss: 17.15047752497304\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-0.10730026, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-0.10273821, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(1.72174447, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-0.10724147, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-0.10199847, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.10583579, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-0.10917299, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-0.10224816, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(3.59832632, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-0.10278915, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-0.10257268, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.35178154, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-0.10289573, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-0.10205572, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.8960944, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(17.12170315, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 16.32139228 140.43985851 -92.45971606 91.40899422 76.78441753\n", + " 17.05276181] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -0.3039588790241934\n", + "logZ_P A1 MS -0.2910160656527201\n", + "DDG A1: 1.7424952516633894\n", + "logZ_P A2 MD -0.3026848106803854\n", + "logZ_P A2 MS -0.289938852417763\n", + "DDG A2: 1.1244131215418125\n", + "logZ_P A3 MD -0.3048883425391261\n", + "logZ_P A3 MS -0.290907424618032\n", + "DDG A3: 3.6157972035776025\n", + "logZ_P A4 MD -0.2906434504059788\n", + "logZ_P A4 MS -0.290488642069152\n", + "DDG A4: -2.3519342292962837\n", + "logZ_P A5 MD -0.2908176743127049\n", + "logZ_P A5 MS -0.29047514564685784\n", + "DDG A5: -0.8973261522265744\n", + "DDG loss: 16.954013845357558\n", + "loss: 17.022251324543944\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-0.30395888, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-0.29101607, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(1.74249525, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-0.30268481, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-0.28993885, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.12441312, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-0.30488834, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-0.29090742, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(3.6157972, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-0.29064345, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-0.29048864, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.35193423, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-0.29081767, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-0.29047515, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.89732615, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(16.95401385, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 31.18255402 115.68087125 -107.94080026 75.26869104 82.07165245\n", + " 16.93520948] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -1.011682175573178\n", + "logZ_P A1 MS -0.9919579717078111\n", + "DDG A1: 1.7592859745263176\n", + "logZ_P A2 MD -1.0281220602700407\n", + "logZ_P A2 MS -0.9957108392788195\n", + "DDG A2: 1.173104312057812\n", + "logZ_P A3 MD -1.0304364057567217\n", + "logZ_P A3 MS -0.987502251896057\n", + "DDG A3: 3.6874854157639376\n", + "logZ_P A4 MD -1.0008914039357524\n", + "logZ_P A4 MS -0.9982181175851909\n", + "DDG A4: -2.3456984777342966\n", + "logZ_P A5 MD -0.9999996190278081\n", + "logZ_P A5 MS -0.9917274072021297\n", + "DDG A5: -0.8776922567228708\n", + "DDG loss: 16.62047884957817\n", + "loss: 18.63358371321838\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-1.01168218, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-0.99195797, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(1.75928597, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-1.02812206, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-0.99571084, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.17310431, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-1.03043641, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-0.98750225, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(3.68748542, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-1.0008914, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-0.99821812, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.34569848, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-0.99999962, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-0.99172741, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.87769226, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(16.62047885, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [-324.94552131 253.35664121 -102.45072768 -160.98635292 175.47837548\n", + " 16.67034269] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -0.3655570797177147\n", + "logZ_P A1 MS -0.35201873173145043\n", + "DDG A1: 1.743969795369641\n", + "logZ_P A2 MD -0.3658240487523213\n", + "logZ_P A2 MS -0.3513610185344886\n", + "DDG A2: 1.128664591702884\n", + "logZ_P A3 MD -0.36803678912201815\n", + "logZ_P A3 MS -0.3515275399805597\n", + "DDG A3: 3.6220573516791816\n", + "logZ_P A4 MD -0.3524563194449867\n", + "logZ_P A4 MS -0.3520825052006726\n", + "DDG A4: -2.3513919706693582\n", + "logZ_P A5 MD -0.35253863515425354\n", + "logZ_P A5 MS -0.3514999772249071\n", + "DDG A5: -0.8956025361701772\n", + "DDG loss: 16.924530032742197\n", + "loss: 17.00726192040978\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-0.36555708, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-0.35201873, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(1.7439698, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-0.36582405, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-0.35136102, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.12866459, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-0.36803679, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-0.35152754, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(3.62205735, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-0.35245632, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-0.35208251, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.35139197, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-0.35253864, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-0.35149998, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.89560254, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(16.92453003, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 0.29790058 127.56703355 -107.44726047 54.84398696 90.37469956\n", + " 16.91207928] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -0.3652946811979019\n", + "logZ_P A1 MS -0.3503499336605021\n", + "DDG A1: 1.7474520406582372\n", + "logZ_P A2 MD -0.36556429996713324\n", + "logZ_P A2 MS -0.3496940979806183\n", + "DDG A2: 1.1321487490021611\n", + "logZ_P A3 MD -0.36776735299335955\n", + "logZ_P A3 MS -0.3498585648892272\n", + "DDG A3: 3.62552261015076\n", + "logZ_P A4 MD -0.3507868066773169\n", + "logZ_P A4 MS -0.3504139696742451\n", + "DDG A4: -2.351394390318675\n", + "logZ_P A5 MD -0.35086955296918076\n", + "logZ_P A5 MS -0.3498324419601257\n", + "DDG A5: -0.8956063663448098\n", + "DDG loss: 16.894636921517\n", + "loss: 16.97700263576777\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-0.36529468, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-0.35034993, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(1.74745204, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-0.3655643, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-0.3496941, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.13214875, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-0.36776735, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-0.34985856, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(3.62552261, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-0.35078681, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-0.35041397, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.35139439, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-0.35086955, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-0.34983244, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.89560637, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(16.89463692, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 0.30446044 127.55065662 -107.43533263 54.84793526 90.36337767\n", + " 16.8908072 ] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -0.36424502520394575\n", + "logZ_P A1 MS -0.34367468086465125\n", + "DDG A1: 1.761381018339721\n", + "logZ_P A2 MD -0.3645252447138616\n", + "logZ_P A2 MS -0.3430263551669403\n", + "DDG A2: 1.146085379401719\n", + "logZ_P A3 MD -0.3666895465095235\n", + "logZ_P A3 MS -0.3431826043484115\n", + "DDG A3: 3.63938363959585\n", + "logZ_P A4 MD -0.3441086954415768\n", + "logZ_P A4 MS -0.3437397672370158\n", + "DDG A4: -2.351404068503772\n", + "logZ_P A5 MD -0.3441931641568656\n", + "logZ_P A5 MS -0.3431622406023825\n", + "DDG A5: -0.8956216864823341\n", + "DDG loss: 16.775427241805573\n", + "loss: 16.85635173092977\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-0.36424503, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-0.34367468, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(1.76138102, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-0.36452524, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-0.34302636, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.14608538, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-0.36668955, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-0.3431826, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(3.63938364, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-0.3441087, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-0.34373977, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.35140407, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-0.34419316, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-0.34316224, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.89562169, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(16.77542724, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 0.33068761 127.48513792 -107.38761841 54.86372291 90.31803097\n", + " 16.80571909] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -0.36004541057001643\n", + "logZ_P A1 MS -0.3169727014993356\n", + "DDG A1: 1.817096873414619\n", + "logZ_P A2 MD -0.36036806188769493\n", + "logZ_P A2 MS -0.3163544143536481\n", + "DDG A2: 1.2018319201778398\n", + "logZ_P A3 MD -0.3623773290424727\n", + "logZ_P A3 MS -0.31647779938589765\n", + "DDG A3: 3.6948276862346447\n", + "logZ_P A4 MD -0.31739528786742144\n", + "logZ_P A4 MS -0.317041992194966\n", + "DDG A4: -2.3514427746532798\n", + "logZ_P A5 MD -0.317486647764898\n", + "logZ_P A5 MS -0.3164804704039542\n", + "DDG A5: -0.8956829580575536\n", + "DDG loss: 16.30439275884927\n", + "loss: 16.379927821057464\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-0.36004541, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-0.3169727, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(1.81709687, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-0.36036806, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-0.31635441, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.20183192, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-0.36237733, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-0.3164778, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(3.69482769, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-0.31739529, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-0.31704199, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.35144277, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-0.31748665, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-0.31648047, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.89568296, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(16.30439276, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 0.43539994 127.22288772 -107.19671555 54.92678509 90.13569789\n", + " 16.46536998] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -0.3432311000409594\n", + "logZ_P A1 MS -0.21014929383059852\n", + "DDG A1: 2.039959397932479\n", + "logZ_P A2 MD -0.34372394075649676\n", + "logZ_P A2 MS -0.2096511389670376\n", + "DDG A2: 1.4248183861142447\n", + "logZ_P A3 MD -0.3451125930998275\n", + "logZ_P A3 MS -0.20964317529287166\n", + "DDG A3: 3.916602729294983\n", + "logZ_P A4 MD -0.21052625609671016\n", + "logZ_P A4 MS -0.21023544805037075\n", + "DDG A4: -2.351597494015528\n", + "logZ_P A5 MD -0.21064520453163665\n", + "logZ_P A5 MS -0.20973795399774234\n", + "DDG A5: -0.8959279008813298\n", + "DDG loss: 14.513122139690152\n", + "loss: 14.573105616079346\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-0.3432311, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-0.21014929, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(2.0399594, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-0.34372394, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-0.20965114, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.42481839, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-0.34511259, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-0.20964318, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(3.91660273, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-0.21052626, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-0.21023545, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.35159749, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-0.2106452, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-0.20973795, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.8959279, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(14.51312214, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 0.85111202 126.1710841 -106.43237119 55.17762167 89.39123173\n", + " 15.10402667] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -0.3990822499008207\n", + "logZ_P A1 MS -0.00869217879295539\n", + "DDG A1: 2.677054661818697\n", + "logZ_P A2 MD -0.3999268599657916\n", + "logZ_P A2 MS -0.008305414459466677\n", + "DDG A2: 2.0625088279571884\n", + "logZ_P A3 MD -0.4001506762829608\n", + "logZ_P A3 MS -0.008234433290676989\n", + "DDG A3: 4.551565068453839\n", + "logZ_P A4 MD -0.008795638506785462\n", + "logZ_P A4 MS -0.00868433849246103\n", + "DDG A4: -2.352041955902808\n", + "logZ_P A5 MD -0.00891185008469144\n", + "logZ_P A5 MS -0.008417451448090106\n", + "DDG A5: -0.8969501221790317\n", + "DDG loss: 10.209223431601275\n", + "loss: 10.289973371243217\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-0.39908225, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-0.00869218, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(2.67705466, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-0.39992686, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-0.00830541, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(2.06250883, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-0.40015068, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-0.00823443, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(4.55156507, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-0.00879564, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-0.00868434, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.35204196, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-0.00891185, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-0.00841745, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.89695012, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(10.20922343, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 0.59111302 93.59075511 -78.97795922 40.91479052 66.17185539\n", + " 11.20997752] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -0.5318211563334515\n", + "logZ_P A1 MS 0.4686050690174001\n", + "DDG A1: 4.187504179724342\n", + "logZ_P A2 MD -0.533517303471766\n", + "logZ_P A2 MS 0.46872902147235096\n", + "DDG A2: 3.5744160294451994\n", + "logZ_P A3 MD -0.5309589335755616\n", + "logZ_P A3 MS 0.4689438835269755\n", + "DDG A3: 6.056939825950834\n", + "logZ_P A4 MD 0.4691465541181593\n", + "logZ_P A4 MS 0.4688350352881043\n", + "DDG A4: -2.3530888553614693\n", + "logZ_P A5 MD 0.4690354195742396\n", + "logZ_P A5 MS 0.468555198888323\n", + "DDG A5: -0.8993632796215554\n", + "DDG loss: 4.8633253056240315\n", + "loss: 5.200055654073614\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-0.53182116, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(0.46860507, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(4.18750418, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-0.5335173, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(0.46872902, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(3.57441603, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-0.53095893, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(0.46894388, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(6.05693983, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(0.46914655, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(0.46883504, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.35308886, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(0.46903542, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(0.4685552, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.89936328, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(4.86332531, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 1.30239901e-02 1.63736210e+01 -1.38784245e+01 7.19980905e+00\n", + " 1.13801114e+01 1.98038152e+00] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -0.5609674479123007\n", + "logZ_P A1 MS 0.5703521739669134\n", + "DDG A1: 4.511596229528572\n", + "logZ_P A2 MD -0.5628471966922648\n", + "logZ_P A2 MS 0.5704207051809373\n", + "DDG A2: 3.898825453921582\n", + "logZ_P A3 MD -0.5596894040625684\n", + "logZ_P A3 MS 0.5706646437714225\n", + "DDG A3: 6.37993707324191\n", + "logZ_P A4 MD 0.5710314300246667\n", + "logZ_P A4 MS 0.5706298758510306\n", + "DDG A4: -2.3533117828721966\n", + "logZ_P A5 MD 0.5709206420628785\n", + "logZ_P A5 MS 0.5702323417480119\n", + "DDG A5: -0.8998784847828297\n", + "DDG loss: 4.606711956849425\n", + "loss: 5.03606769743204\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-0.56096745, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(0.57035217, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(4.51159623, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-0.5628472, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(0.57042071, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(3.89882545, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-0.5596894, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(0.57066464, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(6.37993707, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(0.57103143, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(0.57062988, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.35331178, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(0.57092064, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(0.57023234, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.89987848, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(4.60671196, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [-0.01607926 -0.02486663 0.00964897 -0.00296622 -0.05185894 0.0004655 ] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -0.5610768693834401\n", + "logZ_P A1 MS 0.5702736594182815\n", + "DDG A1: 4.511672755068692\n", + "logZ_P A2 MD -0.5629562574315979\n", + "logZ_P A2 MS 0.5703423119881762\n", + "DDG A2: 3.8989013867668847\n", + "logZ_P A3 MD -0.5597985657031067\n", + "logZ_P A3 MS 0.5705861120889115\n", + "DDG A3: 6.3800129130180006\n", + "logZ_P A4 MD 0.5709529522402181\n", + "logZ_P A4 MS 0.570551414796427\n", + "DDG A4: -2.353311741449107\n", + "logZ_P A5 MD 0.5708420794040622\n", + "logZ_P A5 MS 0.5701537873679858\n", + "DDG A5: -0.8998784642845477\n", + "DDG loss: 4.606687483111052\n", + "loss: 5.036067682403948\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-0.56107687, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(0.57027366, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(4.51167276, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-0.56295626, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(0.57034231, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(3.89890139, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-0.55979857, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(0.57058611, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(6.38001291, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(0.57095295, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(0.57055141, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.35331174, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(0.57084208, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(0.57015379, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.89987846, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(4.60668748, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 3.88870752e-05 2.28271902e-05 -5.01065521e-05 3.94903113e-05\n", + " 2.16843039e-04 -1.96255538e-08] \n", + "\n", + "logZ_P A1 MD -0.5610768693834401\n", + "logZ_P A1 MS 0.5702736594182815\n", + "DDG A1: 4.511672755068692\n", + "logZ_P A2 MD -0.5629562574315979\n", + "logZ_P A2 MS 0.5703423119881762\n", + "DDG A2: 3.8989013867668847\n", + "logZ_P A3 MD -0.5597985657031067\n", + "logZ_P A3 MS 0.5705861120889115\n", + "DDG A3: 6.3800129130180006\n", + "logZ_P A4 MD 0.5709529522402181\n", + "logZ_P A4 MS 0.570551414796427\n", + "DDG A4: -2.353311741449107\n", + "logZ_P A5 MD 0.5708420794040622\n", + "logZ_P A5 MS 0.5701537873679858\n", + "DDG A5: -0.8998784642845477\n", + "DDG loss: 4.606687483111052\n", + "beta: 1000.0\n", + "New evaluation:\n", + "logZ_P A1 MD -1.1102230246251565e-16\n", + "logZ_P A1 MS 0.0\n", + "DDG A1: 1.7104488457556373\n", + "logZ_P A2 MD 0.0\n", + "logZ_P A2 MS 0.0\n", + "DDG A2: 1.0928541288835474\n", + "logZ_P A3 MD 0.0\n", + "logZ_P A3 MS 0.0\n", + "DDG A3: 3.581180450804952\n", + "logZ_P A4 MD 0.0\n", + "logZ_P A4 MS -2.2204460492503136e-16\n", + "DDG A4: -2.352317534738276\n", + "logZ_P A5 MD 0.0\n", + "logZ_P A5 MS 0.0\n", + "DDG A5: -0.898174253203229\n", + "DDG loss: 17.239715782404367\n", + "loss: 17.2397157824047\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-1.11022302e-16, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(0., dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(1.71044885, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(0., dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(0., dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.09285413, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(0., dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(0., dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(3.58118045, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(0., dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-2.22044605e-16, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.35231753, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(0., dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(0., dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.89817425, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(17.23971578, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ -59.13012539 13.42119932 -159.92372304 4.94716807 -214.32616084\n", + " 17.13657393] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD 1006.7577376779072\n", + "logZ_P A1 MS 939.7778109375226\n", + "DDG A1: -164.13184976343666\n", + "logZ_P A2 MD 974.8972355039148\n", + "logZ_P A2 MS 943.2582091004281\n", + "DDG A2: -77.24537524614937\n", + "logZ_P A3 MD 990.5815404428008\n", + "logZ_P A3 MS 935.1601483415498\n", + "DDG A3: -133.64218639189264\n", + "logZ_P A4 MD 959.0058460522852\n", + "logZ_P A4 MS 944.7166389938614\n", + "DDG A4: -37.73239421139571\n", + "logZ_P A5 MD 929.5784480537051\n", + "logZ_P A5 MS 954.2829294039915\n", + "DDG A5: 60.270121570105935\n", + "DDG loss: 30084.68414309656\n", + "loss: 363541.7367550397\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(1006.75773768, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(939.77781094, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(-164.13184976, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(974.8972355, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(943.2582091, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(-77.24537525, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(990.58154044, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(935.16014834, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(-133.64218639, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(959.00584605, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(944.71663899, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-37.73239421, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(929.57844805, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(954.2829294, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(60.27012157, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(30084.6841431, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 33044.97292018 -100219.38068301 86374.27859627 103949.68635293\n", + " 710334.26885816 727.10853719] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -0.036844587991422775\n", + "logZ_P A1 MS -0.033444364100195224\n", + "DDG A1: 1.7188678001103317\n", + "logZ_P A2 MD -0.038364038041681696\n", + "logZ_P A2 MS -0.03317870239376352\n", + "DDG A2: 1.105693019947769\n", + "logZ_P A3 MD -0.03824222730275314\n", + "logZ_P A3 MS -0.03361041135627707\n", + "DDG A3: 3.592648827088441\n", + "logZ_P A4 MD -0.03453076630435102\n", + "logZ_P A4 MS -0.03319408167864413\n", + "DDG A4: -2.3490079036050115\n", + "logZ_P A5 MD -0.035022739237550796\n", + "logZ_P A5 MS -0.03278858728828288\n", + "DDG A5: -0.8926424929768438\n", + "DDG loss: 17.15805501342462\n", + "loss: 17.493113088716523\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-0.03684459, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-0.03344436, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(1.7188678, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-0.03836404, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-0.0331787, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.10569302, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-0.03824223, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-0.03361041, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(3.59264883, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-0.03453077, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-0.03319408, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.3490079, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-0.03502274, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-0.03278859, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.89264249, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(17.15805501, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 252.92403197 234.52288024 -68.40027414 804.50706781 2549.56016061\n", + " 17.07038262] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -0.004510592309802076\n", + "logZ_P A1 MS -0.004095385812792055\n", + "DDG A1: 1.711476897042234\n", + "logZ_P A2 MD -0.0046949594816457635\n", + "logZ_P A2 MS -0.004062319822069806\n", + "DDG A2: 1.0944205446806454\n", + "logZ_P A3 MD -0.004680230585720115\n", + "logZ_P A3 MS -0.0041151762429777645\n", + "DDG A3: 3.582579525357585\n", + "logZ_P A4 MD -0.004227484841613352\n", + "logZ_P A4 MS -0.00406441707495828\n", + "DDG A4: -2.3519137789480515\n", + "logZ_P A5 MD -0.0042876267767692445\n", + "logZ_P A5 MS -0.0040149881589115624\n", + "DDG A5: -0.8974991999854126\n", + "DDG loss: 17.22972730070261\n", + "loss: 17.234720149364158\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-0.00451059, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-0.00409539, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(1.7114769, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-0.00469496, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-0.00406232, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.09442054, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-0.00468023, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-0.00411518, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(3.58257953, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-0.00422748, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-0.00406442, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.35191378, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-0.00428763, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-0.00401499, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.8974992, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(17.2297273, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ -21.03870639 40.39309824 -148.76442274 102.55677381 123.07399792\n", + " 17.12849548] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -0.01471954045074195\n", + "logZ_P A1 MS -0.014094846139427684\n", + "DDG A1: 1.7119955888704474\n", + "logZ_P A2 MD -0.015191170641758189\n", + "logZ_P A2 MS -0.014025593755889958\n", + "DDG A2: 1.0957400972529552\n", + "logZ_P A3 MD -0.015442404589334187\n", + "logZ_P A3 MS -0.014073354701243476\n", + "DDG A3: 3.584570218327882\n", + "logZ_P A4 MD -0.014258393780672412\n", + "logZ_P A4 MS -0.014075940578535851\n", + "DDG A4: -2.3518657806097703\n", + "logZ_P A5 MD -0.014241886844306181\n", + "logZ_P A5 MS -0.013924383837186137\n", + "DDG A5: -0.8973881157576233\n", + "DDG loss: 17.21964532008041\n", + "loss: 17.225827268021956\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-0.01471954, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-0.01409485, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(1.71199559, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-0.01519117, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-0.01402559, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.0957401, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-0.0154424, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-0.01407335, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(3.58457022, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-0.01425839, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-0.01407594, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.35186578, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-0.01424189, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-0.01392438, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.89738812, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(17.21964532, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ -34.37586257 6.96760488 -107.46729808 92.09276033 93.60893101\n", + " 17.12088277] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -0.02907745417368432\n", + "logZ_P A1 MS -0.027843330469676082\n", + "DDG A1: 1.7135045360467636\n", + "logZ_P A2 MD -0.02920097307250433\n", + "logZ_P A2 MS -0.02751554318375325\n", + "DDG A2: 1.0970272532880982\n", + "logZ_P A3 MD -0.030132634308097213\n", + "logZ_P A3 MS -0.02755081147382645\n", + "DDG A3: 3.5875730441426117\n", + "logZ_P A4 MD -0.027922099323828563\n", + "logZ_P A4 MS -0.02780564541230786\n", + "DDG A4: -2.3520291948533614\n", + "logZ_P A5 MD -0.027966689417190396\n", + "logZ_P A5 MS -0.027484132135110598\n", + "DDG A5: -0.8969794413728255\n", + "DDG loss: 17.201698635564075\n", + "loss: 17.215325332581497\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-0.02907745, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-0.02784333, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(1.71350454, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-0.02920097, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-0.02751554, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.09702725, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-0.03013263, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-0.02755081, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(3.58757304, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-0.0279221, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-0.02780565, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.35202919, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-0.02796669, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-0.02748413, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.89697944, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(17.20169864, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 12.4987137 146.49394486 -88.76969789 95.57705248 75.5556513\n", + " 17.10890327] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -0.05376729269195709\n", + "logZ_P A1 MS -0.051482923595802095\n", + "DDG A1: 1.716104943637728\n", + "logZ_P A2 MD -0.05373987377876802\n", + "logZ_P A2 MS -0.05111258559019815\n", + "DDG A2: 1.0993592944384298\n", + "logZ_P A3 MD -0.0547073251408907\n", + "logZ_P A3 MS -0.05123767578405107\n", + "DDG A3: 3.5897713026124993\n", + "logZ_P A4 MD -0.05150888980742181\n", + "logZ_P A4 MS -0.05139999173881901\n", + "DDG A4: -2.3520479031204142\n", + "logZ_P A5 MD -0.051561728279008436\n", + "logZ_P A5 MS -0.05114075896943632\n", + "DDG A5: -0.8971319331927259\n", + "DDG loss: 17.18052780427632\n", + "loss: 17.1949551712026\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-0.05376729, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-0.05148292, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(1.71610494, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-0.05373987, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-0.05111259, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.09935929, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-0.05470733, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-0.05123768, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(3.5897713, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-0.05150889, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-0.05139999, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.3520479, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-0.05156173, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-0.05114076, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.89713193, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(17.1805278, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 16.20304564 140.34521745 -92.59316335 91.59295596 76.90406461\n", + " 17.09340907] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -0.15248995963219877\n", + "logZ_P A1 MS -0.14600473041455483\n", + "DDG A1: 1.7265062732985272\n", + "logZ_P A2 MD -0.15185903415020158\n", + "logZ_P A2 MS -0.14546412801882233\n", + "DDG A2: 1.1086879164648706\n", + "logZ_P A3 MD -0.15296963968558835\n", + "logZ_P A3 MS -0.14594861514391022\n", + "DDG A3: 3.5985645075701664\n", + "logZ_P A4 MD -0.14581959509284267\n", + "logZ_P A4 MS -0.14574087282167195\n", + "DDG A4: -2.352122618394861\n", + "logZ_P A5 MD -0.14590542854969252\n", + "logZ_P A5 MS -0.14573084196066255\n", + "DDG A5: -0.8977419768087662\n", + "DDG loss: 17.09601550586241\n", + "loss: 17.13034361485284\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-0.15248996, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-0.14600473, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(1.72650627, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-0.15185903, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-0.14546413, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.10868792, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-0.15296964, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-0.14594862, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(3.59856451, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-0.1458196, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-0.14574087, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.35212262, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-0.14590543, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-0.14573084, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.89774198, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(17.09601551, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 31.01278384 115.7705031 -107.90833456 75.6465951 82.21823505\n", + " 17.03143759] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -0.5053439616183257\n", + "logZ_P A1 MS -0.4953956042776759\n", + "DDG A1: 1.7350809785310801\n", + "logZ_P A2 MD -0.5134835325038625\n", + "logZ_P A2 MS -0.49723651392387586\n", + "DDG A2: 1.1330817468876002\n", + "logZ_P A3 MD -0.5146666507321165\n", + "logZ_P A3 MS -0.4931710718741246\n", + "DDG A3: 3.6344035040573104\n", + "logZ_P A4 MD -0.4998185345957588\n", + "logZ_P A4 MS -0.4984914863478717\n", + "DDG A4: -2.3490317632765074\n", + "logZ_P A5 MD -0.4993775843567971\n", + "logZ_P A5 MS -0.4952534397367189\n", + "DDG A5: -0.8879628711239144\n", + "DDG loss: 16.926218379071866\n", + "loss: 17.919338704279685\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-0.50534396, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-0.4953956, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(1.73508098, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-0.51348353, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-0.49723651, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.13308175, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-0.51466665, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-0.49317107, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(3.6344035, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-0.49981853, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-0.49849149, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.34903176, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-0.49937758, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-0.49525344, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.88796287, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(16.92621838, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [-320.80380272 251.60038421 -102.34356459 -157.22478557 176.30426473\n", + " 16.90080627] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -0.18396536013161743\n", + "logZ_P A1 MS -0.17716985343763764\n", + "DDG A1: 1.727274520329957\n", + "logZ_P A2 MD -0.18411658766539754\n", + "logZ_P A2 MS -0.17684146198904838\n", + "DDG A2: 1.11086734005821\n", + "logZ_P A3 MD -0.18523355740620226\n", + "logZ_P A3 MS -0.17691925893726396\n", + "DDG A3: 3.601766653814062\n", + "logZ_P A4 MD -0.1773958222011521\n", + "logZ_P A4 MS -0.17720579441911982\n", + "DDG A4: -2.351847025949981\n", + "logZ_P A5 MD -0.17743488595583434\n", + "logZ_P A5 MS -0.17690649174514297\n", + "DDG A5: -0.8968659491375607\n", + "DDG loss: 17.08075287758777\n", + "loss: 17.122648526300146\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-0.18396536, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-0.17716985, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(1.72727452, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-0.18411659, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-0.17684146, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.11086734, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-0.18523356, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-0.17691926, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(3.60176665, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-0.17739582, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-0.17720579, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.35184703, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-0.17743489, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-0.17690649, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.89686595, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(17.08075288, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ -0.31406001 127.83794728 -107.40270524 54.94350387 90.69863178\n", + " 17.01976912] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -0.18406781279444362\n", + "logZ_P A1 MS -0.1765511877451009\n", + "DDG A1: 1.7290600093777881\n", + "logZ_P A2 MD -0.1842205277024389\n", + "logZ_P A2 MS -0.17622330483085974\n", + "DDG A2: 1.1126552527135802\n", + "logZ_P A3 MD -0.18533399233247375\n", + "logZ_P A3 MS -0.17630042327141004\n", + "DDG A3: 3.603547567800137\n", + "logZ_P A4 MD -0.17677683295129806\n", + "logZ_P A4 MS -0.17658715321245602\n", + "DDG A4: -2.3518478877048774\n", + "logZ_P A5 MD -0.17681602221783377\n", + "logZ_P A5 MS -0.17628817574848946\n", + "DDG A5: -0.8968673053451456\n", + "DDG loss: 17.065308517135872\n", + "loss: 17.107109648063897\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-0.18406781, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-0.17655119, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(1.72906001, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-0.18422053, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-0.1762233, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.11265525, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-0.18533399, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-0.17630042, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(3.60354757, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-0.17677683, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-0.17658715, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.35184789, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-0.17681602, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-0.17628818, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.89686731, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(17.06530852, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ -0.3106041 127.82964304 -107.39682672 54.94570962 90.69248798\n", + " 17.00846502] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -0.18447761836924367\n", + "logZ_P A1 MS -0.17407652011725092\n", + "DDG A1: 1.7362019650275635\n", + "logZ_P A2 MD -0.18463628314660913\n", + "logZ_P A2 MS -0.17375067132365446\n", + "DDG A2: 1.1198069037571532\n", + "logZ_P A3 MD -0.1857357269088502\n", + "logZ_P A3 MS -0.1738250758272309\n", + "DDG A3: 3.6106712228830453\n", + "logZ_P A4 MD -0.1743008711655979\n", + "logZ_P A4 MS -0.17411258355612233\n", + "DDG A4: -2.351851334617215\n", + "logZ_P A5 MD -0.174340562495548\n", + "logZ_P A5 MS -0.17381490691854837\n", + "DDG A5: -0.8968727299945937\n", + "DDG loss: 17.00362664332183\n", + "loss: 17.04505814776108\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-0.18447762, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-0.17407652, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(1.73620197, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-0.18463628, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-0.17375067, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.1198069, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-0.18573573, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-0.17382508, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(3.61067122, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-0.17430087, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-0.17411258, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.35185133, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-0.17434056, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-0.17381491, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.89687273, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(17.00362664, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ -0.29678378 127.79642283 -107.37331026 54.9545324 90.66789955\n", + " 16.96324872] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -0.18611675944168787\n", + "logZ_P A1 MS -0.1641777718843509\n", + "DDG A1: 1.7647697789475967\n", + "logZ_P A2 MD -0.18629922965799595\n", + "logZ_P A2 MS -0.16386005930552452\n", + "DDG A2: 1.1484135146762637\n", + "logZ_P A3 MD -0.1873425831523081\n", + "logZ_P A3 MS -0.1639236095597255\n", + "DDG A3: 3.6391658294201896\n", + "logZ_P A4 MD -0.1643969474438224\n", + "logZ_P A4 MS -0.1642142276577201\n", + "DDG A4: -2.351865120547902\n", + "logZ_P A5 MD -0.16443864728339097\n", + "logZ_P A5 MS -0.16392175410723187\n", + "DDG A5: -0.8968944256990703\n", + "DDG loss: 16.75842823548759\n", + "loss: 16.798516338197807\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-0.18611676, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-0.16417777, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(1.76476978, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-0.18629923, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-0.16386006, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.14841351, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-0.18734258, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-0.16392361, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(3.63916583, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-0.16439695, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-0.16421423, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.35186512, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-0.16443865, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-0.16392175, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.89689443, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(16.75842824, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ -0.24155514 127.66349034 -107.27920644 54.98982019 90.56933389\n", + " 16.78238532] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -0.19267202393134106\n", + "logZ_P A1 MS -0.12458153551964836\n", + "DDG A1: 1.8790408950629673\n", + "logZ_P A2 MD -0.19294981137139644\n", + "logZ_P A2 MS -0.12429636352538916\n", + "DDG A2: 1.2628400657502514\n", + "logZ_P A3 MD -0.19376869496072358\n", + "logZ_P A3 MS -0.12431652072897284\n", + "DDG A3: 3.7531440342027804\n", + "logZ_P A4 MD -0.12478002739345347\n", + "logZ_P A4 MS -0.1246195678091005\n", + "DDG A4: -2.351920236807425\n", + "logZ_P A5 MD -0.12482976536450408\n", + "logZ_P A5 MS -0.12434790310496287\n", + "DDG A5: -0.8969811622485883\n", + "DDG loss: 15.802099970741065\n", + "loss: 15.83897548743645\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-0.19267202, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-0.12458154, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(1.8790409, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-0.19294981, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-0.12429636, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.26284007, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-0.19376869, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-0.12431652, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(3.75314403, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-0.12478003, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-0.12461957, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.35192024, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-0.12482977, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-0.1243479, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.89698116, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(15.80209997, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [-2.14815570e-02 1.27130934e+02 -1.06902183e+02 5.51309183e+01\n", + " 9.01716821e+01 1.60589605e+01] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -0.21887227404137113\n", + "logZ_P A1 MS 0.03382329778998862\n", + "DDG A1: 2.336123081610103\n", + "logZ_P A2 MD -0.2195328632990295\n", + "logZ_P A2 MS 0.03397837517612188\n", + "DDG A2: 1.7205479553479976\n", + "logZ_P A3 MD -0.21945212046421575\n", + "logZ_P A3 MS 0.03413140889979291\n", + "DDG A3: 4.2090532695102345\n", + "logZ_P A4 MD 0.03370724901778735\n", + "logZ_P A4 MS 0.033778844390266856\n", + "DDG A4: -2.352140264595993\n", + "logZ_P A5 MD 0.033625293184712114\n", + "logZ_P A5 MS 0.03396733013320792\n", + "DDG A5: -0.8973273697187537\n", + "DDG loss: 12.368230646949494\n", + "loss: 12.426791449695738\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-0.21887227, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(0.0338233, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(2.33612308, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-0.21953286, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(0.03397838, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.72054796, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-0.21945212, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(0.03413141, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(4.20905327, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(0.03370725, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(0.03377884, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.35214026, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(0.03362529, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(0.03396733, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.89732737, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(12.36823065, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 0.84543741 124.98754121 -105.38438569 55.69448902 88.52695636\n", + " 13.16571393] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -0.4389805734983799\n", + "logZ_P A1 MS 0.38480271154943285\n", + "DDG A1: 3.7501362595340146\n", + "logZ_P A2 MD -0.440644913479997\n", + "logZ_P A2 MS 0.3848674164902146\n", + "DDG A2: 3.1368226578897853\n", + "logZ_P A3 MD -0.43858293261895875\n", + "logZ_P A3 MS 0.3851329675647237\n", + "DDG A3: 5.620701019659758\n", + "logZ_P A4 MD 0.38513449579820735\n", + "logZ_P A4 MS 0.384930563661278\n", + "DDG A4: -2.352822470709342\n", + "logZ_P A5 MD 0.3850602220715247\n", + "logZ_P A5 MS 0.38479599598207825\n", + "DDG A5: -0.8988284770007222\n", + "DDG loss: 5.7090634763987085\n", + "loss: 6.16585940433306\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-0.43898057, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(0.38480271, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(3.75013626, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-0.44064491, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(0.38486742, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(3.13682266, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-0.43858293, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(0.38513297, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(5.62070102, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(0.3851345, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(0.38493056, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.35282247, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(0.38506022, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(0.384796, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.89882848, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(5.70906348, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 0.13103824 39.79813976 -33.58835932 17.79905482 27.86291253\n", + " 4.21538337] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -0.5433258145148658\n", + "logZ_P A1 MS 0.5494225504860182\n", + "DDG A1: 4.416093797497833\n", + "logZ_P A2 MD -0.5454675489328845\n", + "logZ_P A2 MS 0.54944574456034\n", + "DDG A2: 3.8038594435727973\n", + "logZ_P A3 MD -0.5424649290762719\n", + "logZ_P A3 MS 0.5497614158116633\n", + "DDG A3: 6.285532880747475\n", + "logZ_P A4 MD 0.5499640207544431\n", + "logZ_P A4 MS 0.549631543244951\n", + "DDG A4: -2.353140749051769\n", + "logZ_P A5 MD 0.5498924702371638\n", + "logZ_P A5 MS 0.5493445766983868\n", + "DDG A5: -0.8995308376052481\n", + "DDG loss: 4.650501173007056\n", + "loss: 5.450370432733583\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-0.54332581, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(0.54942255, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(4.4160938, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-0.54546755, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(0.54944574, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(3.80385944, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-0.54246493, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(0.54976142, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(6.28553288, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(0.54996402, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(0.54963154, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.35314075, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(0.54989247, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(0.54934458, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.89953084, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(4.65050117, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [-0.05107299 -0.06476643 0.05071398 0.01438399 -0.14948276 0.00223392] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -0.5436080568002571\n", + "logZ_P A1 MS 0.5492832574029094\n", + "DDG A1: 4.416447739722655\n", + "logZ_P A2 MD -0.5457491501322107\n", + "logZ_P A2 MS 0.5493066567060095\n", + "DDG A2: 3.804212306614975\n", + "logZ_P A3 MD -0.5427463833032248\n", + "logZ_P A3 MS 0.5496220274662669\n", + "DDG A3: 6.2858846358702225\n", + "logZ_P A4 MD 0.5498248692975533\n", + "logZ_P A4 MS 0.5494923816550948\n", + "DDG A4: -2.3531407741409898\n", + "logZ_P A5 MD 0.5497531561534598\n", + "logZ_P A5 MS 0.5492051155165583\n", + "DDG A5: -0.8995312018201941\n", + "DDG loss: 4.6502901518486475\n", + "loss: 5.450370172024711\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-0.54360806, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(0.54928326, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(4.41644774, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-0.54574915, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(0.54930666, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(3.80421231, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-0.54274638, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(0.54962203, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(6.28588464, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(0.54982487, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(0.54949238, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.35314077, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(0.54975316, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(0.54920512, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.8995312, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(4.65029015, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 6.71786775e-05 1.79217740e-05 -1.14824410e-04 1.04838427e-04\n", + " 5.00276637e-04 4.33183912e-07] \n", + "\n", + "logZ_P A1 MD -0.5436080568002571\n", + "logZ_P A1 MS 0.5492832574029094\n", + "DDG A1: 4.416447739722655\n", + "logZ_P A2 MD -0.5457491501322107\n", + "logZ_P A2 MS 0.5493066567060095\n", + "DDG A2: 3.804212306614975\n", + "logZ_P A3 MD -0.5427463833032248\n", + "logZ_P A3 MS 0.5496220274662669\n", + "DDG A3: 6.2858846358702225\n", + "logZ_P A4 MD 0.5498248692975533\n", + "logZ_P A4 MS 0.5494923816550948\n", + "DDG A4: -2.3531407741409898\n", + "logZ_P A5 MD 0.5497531561534598\n", + "logZ_P A5 MS 0.5492051155165583\n", + "DDG A5: -0.8995312018201941\n", + "DDG loss: 4.6502901518486475\n", + "beta: 10000.0\n", + "New evaluation:\n", + "logZ_P A1 MD -1.1102230246251565e-16\n", + "logZ_P A1 MS 0.0\n", + "DDG A1: 1.7104488457556373\n", + "logZ_P A2 MD 0.0\n", + "logZ_P A2 MS 0.0\n", + "DDG A2: 1.0928541288835474\n", + "logZ_P A3 MD 0.0\n", + "logZ_P A3 MS 0.0\n", + "DDG A3: 3.581180450804952\n", + "logZ_P A4 MD 0.0\n", + "logZ_P A4 MS -2.2204460492503136e-16\n", + "DDG A4: -2.352317534738276\n", + "logZ_P A5 MD 0.0\n", + "logZ_P A5 MS 0.0\n", + "DDG A5: -0.898174253203229\n", + "DDG loss: 17.239715782404367\n", + "loss: 17.239715782407696\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-1.11022302e-16, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(0., dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(1.71044885, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(0., dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(0., dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.09285413, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(0., dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(0., dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(3.58118045, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(0., dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-2.22044605e-16, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.35231753, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(0., dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(0., dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.89817425, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(17.23971578, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ -59.13012539 13.42119932 -159.92372304 4.94716807 -214.32616084\n", + " 17.13657393] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD 1006.7577376733967\n", + "logZ_P A1 MS 939.7778109330623\n", + "DDG A1: -164.13184976331223\n", + "logZ_P A2 MD 974.8972354994152\n", + "logZ_P A2 MS 943.2582090958535\n", + "DDG A2: -77.24537524633487\n", + "logZ_P A3 MD 990.5815404382574\n", + "logZ_P A3 MS 935.1601483370243\n", + "DDG A3: -133.64218639184816\n", + "logZ_P A4 MD 959.0058460476604\n", + "logZ_P A4 MS 944.7166389891428\n", + "DDG A4: -37.732394211627934\n", + "logZ_P A5 MD 929.5784480490286\n", + "logZ_P A5 MS 954.2829293992494\n", + "DDG A5: 60.27012156994351\n", + "DDG loss: 30084.684143081857\n", + "loss: 3364655.2102542403\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(1006.75773767, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(939.77781093, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(-164.13184976, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(974.8972355, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(943.2582091, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(-77.24537525, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(990.58154044, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(935.16014834, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(-133.64218639, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(959.00584605, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(944.71663899, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-37.73239421, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(929.57844805, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(954.2829294, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(60.27012157, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(30084.68414308, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 3.52001419e+05 -7.48079574e+05 5.15069770e+03 7.84794443e+05\n", + " 5.96511580e+06 2.92010173e+02] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -0.0032851040355944714\n", + "logZ_P A1 MS -0.0029827344699888472\n", + "DDG A1: 1.7111975128000694\n", + "logZ_P A2 MD -0.0034193350887890164\n", + "logZ_P A2 MS -0.0029586373262969036\n", + "DDG A2: 1.093994816543477\n", + "logZ_P A3 MD -0.0034086129376948385\n", + "logZ_P A3 MS -0.002997133292553916\n", + "DDG A3: 3.5821992744063125\n", + "logZ_P A4 MD -0.0030789186400289738\n", + "logZ_P A4 MS -0.002960170653970506\n", + "DDG A4: -2.35202351472478\n", + "logZ_P A5 MD -0.0031227181865641097\n", + "logZ_P A5 MS -0.0029241769693895458\n", + "DDG A5: -0.8976826651495076\n", + "DDG loss: 17.23244131994596\n", + "loss: 17.25891934058982\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-0.0032851, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-0.00298273, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(1.71119751, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-0.00341934, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-0.00295864, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.09399482, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-0.00340861, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-0.00299713, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(3.58219927, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-0.00307892, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-0.00296017, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.35202351, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-0.00312272, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-0.00292418, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.89768267, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(17.23244132, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 218.15539889 210.0436356 -79.3859871 715.78014063 2242.02695725\n", + " 17.12923618] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -0.0004514472320343026\n", + "logZ_P A1 MS -0.00040990404916008556\n", + "DDG A1: 1.7105517066764337\n", + "logZ_P A2 MD -0.000469879254854095\n", + "logZ_P A2 MS -0.0004065878310587364\n", + "DDG A2: 1.0930108384488402\n", + "logZ_P A3 MD -0.0004684073881937544\n", + "logZ_P A3 MS -0.00041187809782228506\n", + "DDG A3: 3.5813204173279227\n", + "logZ_P A4 MD -0.00042311407143829846\n", + "logZ_P A4 MS -0.00040680041164027744\n", + "DDG A4: -2.352277142116614\n", + "logZ_P A5 MD -0.00042913236827852756\n", + "logZ_P A5 MS -0.0004018559202054584\n", + "DDG A5: -0.8981067167177835\n", + "DDG loss: 17.238716182679443\n", + "loss: 17.23921596862765\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-0.00045145, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-0.0004099, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(1.71055171, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-0.00046988, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-0.00040659, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.09301084, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-0.00046841, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-0.00041188, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(3.58132042, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-0.00042311, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-0.0004068, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.35227714, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-0.00042913, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-0.00040186, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.89810672, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(17.23871618, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ -21.0345021 40.43320677 -148.85993803 102.6077478 123.1484451\n", + " 17.13556574] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -0.001472591290132023\n", + "logZ_P A1 MS -0.001410075206322988\n", + "DDG A1: 1.7106036355791645\n", + "logZ_P A2 MD -0.0015197618579977565\n", + "logZ_P A2 MS -0.0014031390567860896\n", + "DDG A2: 1.0931428869393212\n", + "logZ_P A3 MD -0.0015448830779968901\n", + "logZ_P A3 MS -0.0014079230239288473\n", + "DDG A3: 3.581519563898815\n", + "logZ_P A4 MD -0.0014264373115301997\n", + "logZ_P A4 MS -0.0014081753914666187\n", + "DDG A4: -2.352272318224169\n", + "logZ_P A5 MD -0.0014247936478585259\n", + "logZ_P A5 MS -0.0013930167097725272\n", + "DDG A5: -0.8980955735045254\n", + "DDG loss: 17.2377066509271\n", + "loss: 17.238325934899397\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-0.00147259, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-0.00141008, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(1.71060364, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-0.00151976, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-0.00140314, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.09314289, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-0.00154488, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-0.00140792, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(3.58151956, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-0.00142644, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-0.00140818, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.35227232, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-0.00142479, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-0.00139302, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.89809557, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(17.23770665, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ -34.37559567 7.03774148 -107.63224604 92.18966426 93.7349906\n", + " 17.13473191] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -0.00291025243796664\n", + "logZ_P A1 MS -0.0027867721776893557\n", + "DDG A1: 1.7107545828801034\n", + "logZ_P A2 MD -0.002922683848933102\n", + "logZ_P A2 MS -0.002753986927640113\n", + "DDG A2: 1.093271822460668\n", + "logZ_P A3 MD -0.003015841668783805\n", + "logZ_P A3 MS -0.0027575346324021205\n", + "DDG A3: 3.5818200190270177\n", + "logZ_P A4 MD -0.0027946759821551146\n", + "logZ_P A4 MS -0.0027829869810156427\n", + "DDG A4: -2.3522885927714507\n", + "logZ_P A5 MD -0.002799113170422724\n", + "logZ_P A5 MS -0.002750822659510374\n", + "DDG A5: -0.8980546858981959\n", + "DDG loss: 17.235908952565246\n", + "loss: 17.237272066162685\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-0.00291025, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-0.00278677, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(1.71075458, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-0.00292268, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-0.00275399, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.09327182, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-0.00301584, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-0.00275753, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(3.58182002, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-0.00279468, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-0.00278299, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.35228859, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-0.00279911, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-0.00275082, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.89805469, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(17.23590895, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 12.40510391 146.36233451 -88.92219764 95.70123629 75.67471593\n", + " 17.1330114 ] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -0.005387283011258684\n", + "logZ_P A1 MS -0.005158545284013835\n", + "DDG A1: 1.711015200368286\n", + "logZ_P A2 MD -0.0053847198171386515\n", + "logZ_P A2 MS -0.005121468965317945\n", + "DDG A2: 1.0935059379926793\n", + "logZ_P A3 MD -0.0054816184498666445\n", + "logZ_P A3 MS -0.005134000229612329\n", + "DDG A3: 3.5820411535182815\n", + "logZ_P A4 MD -0.0051611866968614886\n", + "logZ_P A4 MS -0.005150237237078725\n", + "DDG A4: -2.352290423875831\n", + "logZ_P A5 MD -0.005166429901763943\n", + "logZ_P A5 MS -0.005124245427461982\n", + "DDG A5: -0.8980698044448723\n", + "DDG loss: 17.233780570730957\n", + "loss: 17.235226960363786\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-0.00538728, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-0.00515855, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(1.7110152, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-0.00538472, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-0.00512147, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.09350594, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-0.00548162, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-0.005134, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(3.58204115, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-0.00516119, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-0.00515024, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.35229042, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-0.00516643, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-0.00512425, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.8980698, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(17.23378057, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 16.09602906 140.26021664 -92.71295085 91.75899793 77.01121429\n", + " 17.13012792] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -0.015295035170224925\n", + "logZ_P A1 MS -0.014645268859566385\n", + "DDG A1: 1.712057667140828\n", + "logZ_P A2 MD -0.015232495989084249\n", + "logZ_P A2 MS -0.014591027643808136\n", + "DDG A2: 1.094442404506458\n", + "logZ_P A3 MD -0.015344357809402905\n", + "logZ_P A3 MS -0.014639494233660774\n", + "DDG A3: 3.58292569301847\n", + "logZ_P A4 MD -0.014626861788098987\n", + "logZ_P A4 MS -0.014618870020728295\n", + "DDG A4: -2.3522977471222535\n", + "logZ_P A5 MD -0.014635329074107138\n", + "logZ_P A5 MS -0.014617569051230234\n", + "DDG A5: -0.8981302793865652\n", + "DDG loss: 17.225268768136306\n", + "loss: 17.228720658790376\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-0.01529504, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-0.01464527, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(1.71205767, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-0.0152325, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-0.01459103, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.0944424, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-0.01534436, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-0.01463949, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(3.58292569, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-0.01462686, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-0.01461887, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.35229775, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-0.01463533, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-0.01461757, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.89813028, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(17.22526877, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 30.85895908 115.85375818 -107.87805921 75.98903871 82.34919944\n", + " 17.11859462] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -0.05049137443800321\n", + "logZ_P A1 MS -0.04948870244379714\n", + "DDG A1: 1.7129314616132776\n", + "logZ_P A2 MD -0.051298055222038806\n", + "logZ_P A2 MS -0.04966959606377842\n", + "DDG A2: 1.0968861937593861\n", + "logZ_P A3 MD -0.05141872860782375\n", + "logZ_P A3 MS -0.04926659744281982\n", + "DDG A3: 3.586509127569504\n", + "logZ_P A4 MD -0.04992703204358324\n", + "logZ_P A4 MS -0.04979518974645955\n", + "DDG A4: -2.3519910932106014\n", + "logZ_P A5 MD -0.04988337673634315\n", + "logZ_P A5 MS -0.04947209823823383\n", + "DDG A5: -0.8971559276419183\n", + "DDG loss: 17.208013695398627\n", + "loss: 17.306114870185134\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-0.05049137, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-0.0494887, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(1.71293146, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-0.05129806, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-0.0496696, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.09688619, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-0.05141873, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-0.0492666, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(3.58650913, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-0.04992703, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-0.04979519, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.35199109, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-0.04988338, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-0.0494721, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.89715593, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(17.2080137, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [-317.09406611 250.0291566 -102.2168435 -153.85956024 177.02308521\n", + " 17.10951342] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -0.01850561402833018\n", + "logZ_P A1 MS -0.01782364209057827\n", + "DDG A1: 1.7121374082735108\n", + "logZ_P A2 MD -0.018522362247533036\n", + "logZ_P A2 MS -0.01779084739604385\n", + "DDG A2: 1.0946653596558487\n", + "logZ_P A3 MD -0.018635026856864866\n", + "logZ_P A3 MS -0.01779812346072173\n", + "DDG A3: 3.583252623613816\n", + "logZ_P A4 MD -0.01784689863246667\n", + "logZ_P A4 MS -0.01782760980475733\n", + "DDG A4: -2.3522697756008526\n", + "logZ_P A5 MD -0.01785061356723769\n", + "logZ_P A5 MS -0.01779694207510108\n", + "DDG A5: -0.8980413625886915\n", + "DDG loss: 17.223693586001307\n", + "loss: 17.22793241220093\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-0.01850561, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-0.01782364, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(1.71213741, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-0.01852236, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-0.01779085, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.09466536, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-0.01863503, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-0.01779812, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(3.58325262, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-0.0178469, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-0.01782761, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.35226978, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-0.01785061, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-0.01779694, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.89804136, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(17.22369359, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ -0.87538753 128.08818208 -107.36059725 55.02945431 90.99414128\n", + " 17.11776676] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -0.018538034874659423\n", + "logZ_P A1 MS -0.017782275984613655\n", + "DDG A1: 1.712320104767404\n", + "logZ_P A2 MD -0.018554946984419042\n", + "logZ_P A2 MS -0.017749491285609018\n", + "DDG A2: 1.094848437193801\n", + "logZ_P A3 MD -0.018667388314207653\n", + "logZ_P A3 MS -0.017756732612858626\n", + "DDG A3: 3.583435234321522\n", + "logZ_P A4 MD -0.01780550321985441\n", + "logZ_P A4 MS -0.017786235889084175\n", + "DDG A4: -2.352269828827288\n", + "logZ_P A5 MD -0.01780922210087873\n", + "logZ_P A5 MS -0.017755584008184076\n", + "DDG A5: -0.8980414452857173\n", + "DDG loss: 17.222102356626813\n", + "loss: 17.226340241133705\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-0.01853803, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-0.01778228, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(1.7123201, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-0.01855495, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-0.01774949, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.09484844, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-0.01866739, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-0.01775673, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(3.58343523, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-0.0178055, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-0.01778624, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.35226983, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-0.01780922, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-0.01775558, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.89804145, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(17.22210236, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ -0.874803 128.0872437 -107.36002136 55.03002137 90.99336995\n", + " 17.11589779] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -0.0186677182497106\n", + "logZ_P A1 MS -0.017616811552007016\n", + "DDG A1: 1.7130508907391762\n", + "logZ_P A2 MD -0.01868528592520437\n", + "logZ_P A2 MS -0.01758406683499274\n", + "DDG A2: 1.095580747350888\n", + "logZ_P A3 MD -0.018796834132920694\n", + "logZ_P A3 MS -0.01759116921336743\n", + "DDG A3: 3.584165677145765\n", + "logZ_P A4 MD -0.017639921561352075\n", + "logZ_P A4 MS -0.01762074021785444\n", + "DDG A4: -2.352270041731761\n", + "logZ_P A5 MD -0.01764365622749797\n", + "logZ_P A5 MS -0.017590151731656505\n", + "DDG A5: -0.8980417760715333\n", + "DDG loss: 17.21573844158895\n", + "loss: 17.21997329772152\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-0.01866772, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-0.01761681, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(1.71305089, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-0.01868529, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-0.01758407, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.09558075, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-0.01879683, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-0.01759117, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(3.58416568, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-0.01763992, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-0.01762074, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.35227004, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-0.01764366, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-0.01759015, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.89804178, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(17.21573844, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ -0.87246514 128.0834899 -107.35771751 55.03228978 90.99028405\n", + " 17.10842192] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -0.019186451585661363\n", + "logZ_P A1 MS -0.016954953681619166\n", + "DDG A1: 1.7159740345660621\n", + "logZ_P A2 MD -0.01920664158021032\n", + "logZ_P A2 MS -0.016922368890489207\n", + "DDG A2: 1.0985099880632965\n", + "logZ_P A3 MD -0.019314617237241528\n", + "logZ_P A3 MS -0.016928915486785902\n", + "DDG A3: 3.5870874483390796\n", + "logZ_P A4 MD -0.016977594798484524\n", + "logZ_P A4 MS -0.01695875739634505\n", + "DDG A4: -2.352270893330548\n", + "logZ_P A5 MD -0.016981392606857344\n", + "logZ_P A5 MS -0.016928422483796078\n", + "DDG A5: -0.898043099178556\n", + "DDG loss: 17.190298820790744\n", + "loss: 17.19453337765923\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-0.01918645, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-0.01695495, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(1.71597403, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-0.01920664, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-0.01692237, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.09850999, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-0.01931462, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-0.01692892, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(3.58708745, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-0.01697759, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-0.01695876, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.35227089, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-0.01698139, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-0.01692842, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.8980431, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(17.19029882, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ -0.86311744 128.06847041 -107.34849772 55.04136562 90.97793076\n", + " 17.07851862] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -0.02126138230123754\n", + "logZ_P A1 MS -0.014307519960802997\n", + "DDG A1: 1.7276666089105275\n", + "logZ_P A2 MD -0.02129206246997793\n", + "logZ_P A2 MS -0.014275574840008886\n", + "DDG A2: 1.1102269522553496\n", + "logZ_P A3 MD -0.021385746925855743\n", + "logZ_P A3 MS -0.014279898522701463\n", + "DDG A3: 3.598774531451168\n", + "logZ_P A4 MD -0.01432828568540063\n", + "logZ_P A4 MS -0.014310823924980324\n", + "DDG A4: -2.3522742994195074\n", + "logZ_P A5 MD -0.014332336090524662\n", + "logZ_P A5 MS -0.014281503224473635\n", + "DDG A5: -0.8980483910268853\n", + "DDG loss: 17.08879696723966\n", + "loss: 17.093219346580636\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-0.02126138, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-0.01430752, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(1.72766661, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-0.02129206, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-0.01427557, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.11022695, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-0.02138575, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-0.0142799, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(3.59877453, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-0.01432829, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-0.01431082, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.3522743, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-0.01433234, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-0.0142815, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.89804839, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(17.08879697, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ -0.82578705 128.00832356 -107.311548 55.07770467 90.92836292\n", + " 16.95890864] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -0.029561063100707198\n", + "logZ_P A1 MS -0.0037177492572883887\n", + "DDG A1: 1.7744368908319206\n", + "logZ_P A2 MD -0.029633718339435934\n", + "logZ_P A2 MS -0.003688362287158938\n", + "DDG A2: 1.1570948304689823\n", + "logZ_P A3 MD -0.02967022201108594\n", + "logZ_P A3 MS -0.0036837977490244314\n", + "DDG A3: 3.6455228372778428\n", + "logZ_P A4 MD -0.0037310162544443616\n", + "logZ_P A4 MS -0.0037190550824958597\n", + "DDG A4: -2.3522879188765287\n", + "logZ_P A5 MD -0.003736077491905249\n", + "logZ_P A5 MS -0.003693789909056339\n", + "DDG A5: -0.8980695491480735\n", + "DDG loss: 16.686895626424437\n", + "loss: 16.69509307874893\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-0.02956106, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-0.00371775, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(1.77443689, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-0.02963372, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-0.00368836, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.15709483, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-0.02967022, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-0.0036838, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(3.64552284, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-0.00373102, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-0.00371906, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.35228792, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-0.00373608, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-0.00369379, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.89806955, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(16.68689563, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ -0.67743114 127.76663455 -107.16262019 55.22363202 90.72761739\n", + " 16.48052016] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -0.06275911257657558\n", + "logZ_P A1 MS 0.03864190617131192\n", + "DDG A1: 1.9615177681753855\n", + "logZ_P A2 MD -0.06299989843004912\n", + "logZ_P A2 MS 0.038661068993372426\n", + "DDG A2: 1.3445666842239539\n", + "logZ_P A3 MD -0.06280742296922082\n", + "logZ_P A3 MS 0.03870113158886443\n", + "DDG A3: 3.8325156318907587\n", + "logZ_P A4 MD 0.03865858866689214\n", + "logZ_P A4 MS 0.03864857907532359\n", + "DDG A4: -2.3523423184869854\n", + "logZ_P A5 MD 0.03864947698532152\n", + "logZ_P A5 MS 0.0386576432932248\n", + "DDG A5: -0.8981540334248859\n", + "DDG loss: 15.144987379341133\n", + "loss: 15.216631967400899\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-0.06275911, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(0.03864191, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(1.96151777, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-0.0629999, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(0.03866107, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.34456668, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-0.06280742, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(0.03870113, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(3.83251563, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(0.03865859, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(0.03864858, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.35234232, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(0.03864948, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(0.03865764, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.89815403, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(15.14498738, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [-9.93968717e-02 1.26782271e+02 -1.06548846e+02 5.58164902e+01\n", + " 8.98851164e+01 1.45677828e+01] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -0.1682239342858554\n", + "logZ_P A1 MS 0.15454061938059824\n", + "DDG A1: 2.5096138806337915\n", + "logZ_P A2 MD -0.16894739278485302\n", + "logZ_P A2 MS 0.15454835799105868\n", + "DDG A2: 1.893829607804723\n", + "logZ_P A3 MD -0.168129903607094\n", + "logZ_P A3 MS 0.15466700368068725\n", + "DDG A3: 4.380425593249498\n", + "logZ_P A4 MD 0.15465632566974905\n", + "logZ_P A4 MS 0.15458204558354757\n", + "DDG A4: -2.3525014522316967\n", + "logZ_P A5 MD 0.15464157100825515\n", + "logZ_P A5 MS 0.15453976198947703\n", + "DDG A5: -0.8984263323337104\n", + "DDG loss: 11.232478985443922\n", + "loss: 11.934592945592112\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-0.16822393, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(0.15454062, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(2.50961388, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-0.16894739, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(0.15454836, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.89382961, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-0.1681299, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(0.154667, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(4.38042559, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(0.15465633, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(0.15458205, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.35250145, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(0.15464157, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(0.15453976, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.89842633, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(11.23247899, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ -0.21479439 77.82018435 -65.37130087 34.43327935 54.9159502\n", + " 8.97040387] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -0.3374350539971956\n", + "logZ_P A1 MS 0.3400848336900222\n", + "DDG A1: 3.387988087669207\n", + "logZ_P A2 MD -0.3389379074249007\n", + "logZ_P A2 MS 0.3400746937292011\n", + "DDG A2: 2.774089329341132\n", + "logZ_P A3 MD -0.3371117717880721\n", + "logZ_P A3 MS 0.34031745661087026\n", + "DDG A3: 5.258495220320751\n", + "logZ_P A4 MD 0.3403580004409185\n", + "logZ_P A4 MS 0.3401816632271528\n", + "DDG A4: -2.352754145679543\n", + "logZ_P A5 MD 0.3403338692268167\n", + "logZ_P A5 MS 0.3400575054703642\n", + "DDG A5: -0.8988585298641778\n", + "DDG loss: 6.844065057664195\n", + "loss: 9.926033240049346\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-0.33743505, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(0.34008483, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(3.38798809, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-0.33893791, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(0.34007469, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(2.77408933, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-0.33711177, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(0.34031746, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(5.25849522, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(0.340358, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(0.34018166, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.35275415, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(0.34033387, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(0.34005751, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.89885853, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(6.84406506, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [-0.42322858 -0.50260509 0.51379783 0.27875178 -1.05833959 0.02197301] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -0.3380804610592446\n", + "logZ_P A1 MS 0.34031012076721945\n", + "DDG A1: 3.3901439263579594\n", + "logZ_P A2 MD -0.33958435176887564\n", + "logZ_P A2 MS 0.34030015278511916\n", + "DDG A2: 2.7762481621592423\n", + "logZ_P A3 MD -0.33775607462049523\n", + "logZ_P A3 MS 0.3405428868185243\n", + "DDG A3: 5.26064867932798\n", + "logZ_P A4 MD 0.3405837163749991\n", + "logZ_P A4 MS 0.34040717259916353\n", + "DDG A4: -2.3527546571272477\n", + "logZ_P A5 MD 0.3405594162778037\n", + "logZ_P A5 MS 0.34028258174633896\n", + "DDG A5: -0.8988596955031292\n", + "DDG loss: 6.836146367603787\n", + "loss: 9.92602058793992\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-0.33808046, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(0.34031012, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(3.39014393, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-0.33958435, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(0.34030015, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(2.77624816, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-0.33775607, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(0.34054289, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(5.26064868, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(0.34058372, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(0.34040717, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.35275466, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(0.34055942, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(0.34028258, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.8988597, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(6.83614637, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [-6.82919973e-04 -7.94149580e-04 6.77396499e-04 6.32945618e-04\n", + " -8.10450149e-04 3.35709250e-05] \n", + "\n", + "logZ_P A1 MD -0.3380804610592446\n", + "logZ_P A1 MS 0.34031012076721945\n", + "DDG A1: 3.3901439263579594\n", + "logZ_P A2 MD -0.33958435176887564\n", + "logZ_P A2 MS 0.34030015278511916\n", + "DDG A2: 2.7762481621592423\n", + "logZ_P A3 MD -0.33775607462049523\n", + "logZ_P A3 MS 0.3405428868185243\n", + "DDG A3: 5.26064867932798\n", + "logZ_P A4 MD 0.3405837163749991\n", + "logZ_P A4 MS 0.34040717259916353\n", + "DDG A4: -2.3527546571272477\n", + "logZ_P A5 MD 0.3405594162778037\n", + "logZ_P A5 MS 0.34028258174633896\n", + "DDG A5: -0.8988596955031292\n", + "DDG loss: 6.836146367603787\n", + "beta: 100000.0\n", + "New evaluation:\n", + "logZ_P A1 MD -1.1102230246251565e-16\n", + "logZ_P A1 MS 0.0\n", + "DDG A1: 1.7104488457556373\n", + "logZ_P A2 MD 0.0\n", + "logZ_P A2 MS 0.0\n", + "DDG A2: 1.0928541288835474\n", + "logZ_P A3 MD 0.0\n", + "logZ_P A3 MS 0.0\n", + "DDG A3: 3.581180450804952\n", + "logZ_P A4 MD 0.0\n", + "logZ_P A4 MS -2.2204460492503136e-16\n", + "DDG A4: -2.352317534738276\n", + "logZ_P A5 MD 0.0\n", + "logZ_P A5 MS 0.0\n", + "DDG A5: -0.898174253203229\n", + "DDG loss: 17.239715782404367\n", + "loss: 17.239715782437674\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-1.11022302e-16, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(0., dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(1.71044885, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(0., dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(0., dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.09285413, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(0., dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(0., dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(3.58118045, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(0., dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-2.22044605e-16, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.35231753, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(0., dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(0., dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.89817425, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(17.23971578, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ -59.13012539 13.42119932 -159.92372305 4.94716808 -214.32616084\n", + " 17.13657393] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD 1006.7577376062719\n", + "logZ_P A1 MS 939.7778108667305\n", + "DDG A1: -164.13184976134858\n", + "logZ_P A2 MD 974.8972354325109\n", + "logZ_P A2 MS 943.258209027877\n", + "DDG A2: -77.24537524898987\n", + "logZ_P A3 MD 990.5815403706936\n", + "logZ_P A3 MS 935.1601482698077\n", + "DDG A3: -133.64218639098848\n", + "logZ_P A4 MD 959.005845978941\n", + "logZ_P A4 MS 944.7166389190393\n", + "DDG A4: -37.73239421505506\n", + "logZ_P A5 MD 929.5784479795338\n", + "logZ_P A5 MS 954.2829293287017\n", + "DDG A5: 60.27012156733637\n", + "DDG loss: 30084.684142794984\n", + "loss: 33375789.94400976\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(1006.75773761, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(939.77781087, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(-164.13184976, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(974.89723543, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(943.25820903, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(-77.24537525, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(990.58154037, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(935.16014827, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(-133.64218639, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(959.00584598, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(944.71663892, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-37.73239422, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(929.57844798, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(954.28292933, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(60.27012157, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(30084.68414279, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 3.54156589e+06 -7.22668151e+06 -8.07085100e+05 7.59324201e+06\n", + " 5.85129310e+07 -4.05897347e+03] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -0.0003249858937218651\n", + "logZ_P A1 MS -0.0002950802611673987\n", + "DDG A1: 1.710522892101853\n", + "logZ_P A2 MD -0.00033825419851076074\n", + "logZ_P A2 MS -0.0002926928445161706\n", + "DDG A2: 1.092966938796051\n", + "logZ_P A3 MD -0.00033719468878272294\n", + "logZ_P A3 MS -0.00029650118078880625\n", + "DDG A3: 3.581281207930755\n", + "logZ_P A4 MD -0.0003045895832620731\n", + "logZ_P A4 MS -0.0002928459360518851\n", + "DDG A4: -2.3522884574677927\n", + "logZ_P A5 MD -0.00030892198497384975\n", + "logZ_P A5 MS -0.000289286576232688\n", + "DDG A5: -0.8981256359312045\n", + "DDG loss: 17.238996197262498\n", + "loss: 17.241586135345912\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-0.00032499, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-0.00029508, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(1.71052289, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-0.00033825, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-0.00029269, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.09296694, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-0.00033719, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-0.0002965, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(3.58128121, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-0.00030459, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-0.00029285, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.35228846, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-0.00030892, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-0.00028929, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.89812564, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(17.2389962, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 215.09731212 207.8921729 -80.35109015 707.97516704 2214.97563086\n", + " 17.13440867] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -4.514860525411707e-05\n", + "logZ_P A1 MS -4.0994061591598643e-05\n", + "DDG A1: 1.71045913240574\n", + "logZ_P A2 MD -4.699176045972004e-05\n", + "logZ_P A2 MS -4.066234350823435e-05\n", + "DDG A2: 1.0928698005199105\n", + "logZ_P A3 MD -4.6844584041387966e-05\n", + "logZ_P A3 MS -4.119141646442856e-05\n", + "DDG A3: 3.581194448047872\n", + "logZ_P A4 MD -4.2315064948291486e-05\n", + "logZ_P A4 MS -4.0683630146525946e-05\n", + "DDG A4: -2.3523134953057143\n", + "logZ_P A5 MD -4.2916935691835e-05\n", + "logZ_P A5 MS -4.0189165009566426e-05\n", + "DDG A5: -0.8981674992429957\n", + "DDG loss: 17.239615814913382\n", + "loss: 17.239665798521347\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-4.51486053e-05, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-4.09940616e-05, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(1.71045913, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-4.69917605e-05, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-4.06623435e-05, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.0928698, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-4.6844584e-05, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-4.11914165e-05, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(3.58119445, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-4.23150649e-05, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-4.06836301e-05, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.3523135, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-4.29169357e-05, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-4.0189165e-05, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.8981675, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(17.23961581, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ -21.03408151 40.43722022 -148.86949566 102.61284716 123.15589134\n", + " 17.13627312] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -0.00014726557266113205\n", + "logZ_P A1 MS -0.00014101349618124269\n", + "DDG A1: 1.710464325897023\n", + "logZ_P A2 MD -0.00015198270660376172\n", + "logZ_P A2 MS -0.00014031977169963822\n", + "DDG A2: 1.0928830063103478\n", + "logZ_P A3 MD -0.00015449480860331506\n", + "logZ_P A3 MS -0.0001407982471875325\n", + "DDG A3: 3.581214363491004\n", + "logZ_P A4 MD -0.00014264978021530513\n", + "logZ_P A4 MS -0.00014082342205853413\n", + "DDG A4: -2.352313012675477\n", + "logZ_P A5 MD -0.00014248548372157856\n", + "logZ_P A5 MS -0.00013930752317261672\n", + "DDG A5: -0.8981663845729054\n", + "DDG loss: 17.23951484832326\n", + "loss: 17.23957678762903\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-0.00014727, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-0.00014101, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(1.71046433, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-0.00015198, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-0.00014032, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.09288301, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-0.00015449, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-0.0001408, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(3.58121436, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-0.00014265, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-0.00014082, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.35231301, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-0.00014249, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-0.00013931, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.89816638, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(17.23951485, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ -34.37557782 7.04474016 -107.64872549 92.19935215 93.74758046\n", + " 17.13611763] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -0.0002910504968936291\n", + "logZ_P A1 MS -0.000278701786179102\n", + "DDG A1: 1.710479421163395\n", + "logZ_P A2 MD -0.00029229443534330455\n", + "logZ_P A2 MS -0.0002754231942771575\n", + "DDG A2: 1.0928959020764082\n", + "logZ_P A3 MD -0.00030161013971670355\n", + "logZ_P A3 MS -0.0002757781734983472\n", + "DDG A3: 3.5812444107532935\n", + "logZ_P A4 MD -0.0002794924357281946\n", + "logZ_P A4 MS -0.0002783230993456582\n", + "DDG A4: -2.35231463946142\n", + "logZ_P A5 MD -0.00027993593600988455\n", + "logZ_P A5 MS -0.000275106535559838\n", + "DDG A5: -0.8981622956077077\n", + "DDG loss: 17.239335048018873\n", + "loss: 17.239471363977653\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-0.00029105, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-0.0002787, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(1.71047942, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-0.00029229, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-0.00027542, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.0928959, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-0.00030161, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-0.00027578, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(3.58124441, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-0.00027949, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-0.00027832, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.35231464, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-0.00027994, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-0.00027511, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.8981623, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(17.23933505, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 12.39575046 146.34922518 -88.93740978 95.71365687 75.68659731\n", + " 17.13542388] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -0.000538834045552879\n", + "logZ_P A1 MS -0.0005159572611185631\n", + "DDG A1: 1.7105054886739155\n", + "logZ_P A2 MD -0.0005385795182212313\n", + "logZ_P A2 MS -0.0005122492007658616\n", + "DDG A2: 1.0929193227495622\n", + "logZ_P A3 MD -0.0005482709279874522\n", + "logZ_P A3 MS -0.0005135025492681953\n", + "DDG A3: 3.5812665373106762\n", + "logZ_P A4 MD -0.0005162218510252733\n", + "logZ_P A4 MS -0.0005151263075329254\n", + "DDG A4: -2.3523148221725805\n", + "logZ_P A5 MD -0.0005167457637652187\n", + "logZ_P A5 MS -0.0005125264368413382\n", + "DDG A5: -0.8981638061497622\n", + "DDG loss: 17.239122096575425\n", + "loss: 17.23926677241533\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-0.00053883, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-0.00051596, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(1.71050549, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-0.00053858, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-0.00051225, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.09291932, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-0.00054827, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-0.0005135, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(3.58126654, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-0.00051622, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-0.00051513, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.35231482, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-0.00051675, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-0.00051253, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.89816381, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(17.2391221, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 16.08532503 140.25179837 -92.72487318 91.7756264 77.02188314\n", + " 17.13380692] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -0.0015299645355753336\n", + "logZ_P A1 MS -0.001464975469176504\n", + "DDG A1: 1.7106097586840492\n", + "logZ_P A2 MD -0.0015237161694382191\n", + "logZ_P A2 MS -0.0014595495287886423\n", + "DDG A2: 1.0930130054858096\n", + "logZ_P A3 MD -0.0015349104001357908\n", + "logZ_P A3 MS -0.0014643963652837804\n", + "DDG A3: 3.5813550435552655\n", + "logZ_P A4 MD -0.0014631358313271388\n", + "logZ_P A4 MS -0.0014623354546694038\n", + "DDG A4: -2.352315553005681\n", + "logZ_P A5 MD -0.001463981394044732\n", + "logZ_P A5 MS -0.0014622023642736324\n", + "DDG A5: -0.8981698483255456\n", + "DDG loss: 17.238270308063857\n", + "loss: 17.238615689285094\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-0.00152996, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-0.00146498, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(1.71060976, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-0.00152372, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-0.00145955, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.09301301, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-0.00153491, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-0.0014644, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(3.58135504, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-0.00146314, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-0.00146234, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.35231555, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-0.00146398, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-0.0014622, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.89816985, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(17.23827031, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 30.8435461 115.86229235 -107.87493596 76.02340384 82.36222506\n", + " 17.12733914] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -0.005048716623451861\n", + "logZ_P A1 MS -0.004948370673282634\n", + "DDG A1: 1.7106973023282661\n", + "logZ_P A2 MD -0.005129311713817926\n", + "logZ_P A2 MS -0.004966428056109774\n", + "DDG A2: 1.0932574288200332\n", + "logZ_P A3 MD -0.005141402812899617\n", + "logZ_P A3 MS -0.004926163906862013\n", + "DDG A3: 3.5817133823362997\n", + "logZ_P A4 MD -0.004992163878864799\n", + "logZ_P A4 MS -0.004978988270411524\n", + "DDG A4: -2.3522849119317333\n", + "logZ_P A5 MD -0.004987802718449269\n", + "logZ_P A5 MS -0.004946686538718185\n", + "DDG A5: -0.8980724495422169\n", + "DDG loss: 17.236542032998422\n", + "loss: 17.24634003262595\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-0.00504872, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-0.00494837, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(1.7106973, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-0.00512931, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-0.00496643, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.09325743, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-0.0051414, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-0.00492616, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(3.58171338, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-0.00499216, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-0.00497899, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.35228491, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-0.0049878, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-0.00494669, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.89807245, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(17.23654203, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [-316.72395207 249.87261732 -102.20259352 -153.52406716 177.09369245\n", + " 17.13045192] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -0.0018516645009630471\n", + "logZ_P A1 MS -0.001783442811863827\n", + "DDG A1: 1.7106177626578263\n", + "logZ_P A2 MD -0.0018533557289905722\n", + "logZ_P A2 MS -0.001780163798608906\n", + "DDG A2: 1.0930353521031761\n", + "logZ_P A3 MD -0.0018646319454903367\n", + "logZ_P A3 MS -0.001780886305460342\n", + "DDG A3: 3.581387805009692\n", + "logZ_P A4 MD -0.0017857751364616069\n", + "logZ_P A4 MS -0.001783843365821225\n", + "DDG A4: -2.352312751674171\n", + "logZ_P A5 MD -0.0017861446996681736\n", + "logZ_P A5 MS -0.0017807691419852649\n", + "DDG A5: -0.8981609433224202\n", + "DDG loss: 17.23811228954726\n", + "loss: 17.238536673520755\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-0.00185166, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-0.00178344, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(1.71061776, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-0.00185336, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-0.00178016, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.09303535, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-0.00186463, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-0.00178089, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(3.58138781, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-0.00178578, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-0.00178384, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.35231275, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-0.00178614, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-0.00178077, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.89816094, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(17.23811229, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ -0.93205819 128.1136181 -107.35623882 55.03785368 91.02388558\n", + " 17.1276238 ] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -0.0018551345652415602\n", + "logZ_P A1 MS -0.0017795170988655952\n", + "DDG A1: 1.7106360746023923\n", + "logZ_P A2 MD -0.0018568423365973171\n", + "logZ_P A2 MS -0.0017762386649642938\n", + "DDG A2: 1.0930537035745134\n", + "logZ_P A3 MD -0.0018680975341863028\n", + "logZ_P A3 MS -0.0017769580385917703\n", + "DDG A3: 3.581406112196045\n", + "logZ_P A4 MD -0.001781846523299935\n", + "logZ_P A4 MS -0.0017799167657281997\n", + "DDG A4: -2.3523127566585247\n", + "logZ_P A5 MD -0.0017822163922316565\n", + "logZ_P A5 MS -0.0017768439550052719\n", + "DDG A5: -0.8981609510486492\n", + "DDG loss: 17.237952688022954\n", + "loss: 17.23837706577356\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-0.00185513, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-0.00177952, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(1.71063607, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-0.00185684, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-0.00177624, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.0930537, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-0.0018681, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-0.00177696, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(3.58140611, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-0.00178185, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-0.00177992, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.35231276, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-0.00178222, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-0.00177684, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.89816095, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(17.23795269, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ -0.93176471 128.11342196 -107.35618525 55.03825316 91.02369064\n", + " 17.12672351] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -0.0018690148222636352\n", + "logZ_P A1 MS -0.0017638142467952579\n", + "DDG A1: 1.7107093223804803\n", + "logZ_P A2 MD -0.0018707887669665716\n", + "logZ_P A2 MS -0.0017605381303057188\n", + "DDG A2: 1.0931271094598982\n", + "logZ_P A3 MD -0.0018819598888733249\n", + "logZ_P A3 MS -0.0017612449710465252\n", + "DDG A3: 3.581479340941492\n", + "logZ_P A4 MD -0.001766132070582717\n", + "logZ_P A4 MS -0.001764210365280218\n", + "DDG A4: -2.352312776595941\n", + "logZ_P A5 MD -0.0017665031624162267\n", + "logZ_P A5 MS -0.0017611432070058198\n", + "DDG A5: -0.8981609819536356\n", + "DDG loss: 17.2373142919989\n", + "loss: 17.23773871914064\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-0.00186901, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-0.00176381, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(1.71070932, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-0.00187079, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-0.00176054, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.09312711, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-0.00188196, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-0.00176124, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(3.58147934, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-0.00176613, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-0.00176421, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.35231278, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-0.0017665, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-0.00176114, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.89816098, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(17.23731429, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ -0.93059082 128.11263739 -107.35597097 55.03985109 91.02291083\n", + " 17.12312236] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -0.001924535848861976\n", + "logZ_P A1 MS -0.0017010028372609007\n", + "DDG A1: 1.7110023134923398\n", + "logZ_P A2 MD -0.0019265744875165997\n", + "logZ_P A2 MS -0.0016977359903984043\n", + "DDG A2: 1.093420733002387\n", + "logZ_P A3 MD -0.0019374093060760254\n", + "logZ_P A3 MS -0.001698392699724802\n", + "DDG A3: 3.5817722559222935\n", + "logZ_P A4 MD -0.001703274258572847\n", + "logZ_P A4 MS -0.0017013847622691415\n", + "DDG A4: -2.352312856345429\n", + "logZ_P A5 MD -0.0017036502420301961\n", + "logZ_P A5 MS -0.0016983402137342115\n", + "DDG A5: -0.8981611055731589\n", + "DDG loss: 17.234760869069316\n", + "loss: 17.23518667603275\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-0.00192454, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-0.001701, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(1.71100231, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-0.00192657, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-0.00169774, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.09342073, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-0.00193741, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-0.00169839, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(3.58177226, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-0.00170327, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-0.00170138, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.35231286, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-0.00170365, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-0.00169834, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.89816111, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(17.23476087, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ -0.92589564 128.10949867 -107.35511338 55.04624306 91.01979067\n", + " 17.10871779] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -0.0021466199314181737\n", + "logZ_P A1 MS -0.0014497571790795898\n", + "DDG A1: 1.7121742779304538\n", + "logZ_P A2 MD -0.0021497173548748793\n", + "logZ_P A2 MS -0.0014465274104023477\n", + "DDG A2: 1.09459522718603\n", + "logZ_P A3 MD -0.002159206950149704\n", + "logZ_P A3 MS -0.001446983596194269\n", + "DDG A3: 3.5829439158293512\n", + "logZ_P A4 MD -0.0014518429922774074\n", + "logZ_P A4 MS -0.0014500823307144375\n", + "DDG A4: -2.35231317534025\n", + "logZ_P A5 MD -0.001452238542498565\n", + "logZ_P A5 MS -0.001447128220266711\n", + "DDG A5: -0.8981616000453758\n", + "DDG loss: 17.224549756025265\n", + "loss: 17.22499999751115\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-0.00214662, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-0.00144976, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(1.71217428, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-0.00214972, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-0.00144653, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.09459523, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-0.00215921, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-0.00144698, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(3.58294392, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-0.00145184, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-0.00145008, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.35231318, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-0.00145224, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-0.00144713, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.8981616, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(17.22454976, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ -0.90712094 128.09693682 -107.35167594 55.07181482 91.00729531\n", + " 17.05109982] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -0.0030349558802449006\n", + "logZ_P A1 MS -0.0004447742256540098\n", + "DDG A1: 1.7168621355323839\n", + "logZ_P A2 MD -0.0030422885868415937\n", + "logZ_P A2 MS -0.0004416927645454602\n", + "DDG A2: 1.0992932041395647\n", + "logZ_P A3 MD -0.003046397130640564\n", + "logZ_P A3 MS -0.00044134689017769996\n", + "DDG A3: 3.587630555200335\n", + "logZ_P A4 MD -0.00044611763501896764\n", + "logZ_P A4 MS -0.00044487229234130765\n", + "DDG A4: -2.352314451269782\n", + "logZ_P A5 MD -0.00044659145657469947\n", + "logZ_P A5 MS -0.0004422799202992837\n", + "DDG A5: -0.8981635778393822\n", + "DDG loss: 17.183746562639545\n", + "loss: 17.184597180321227\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-0.00303496, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-0.00044477, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(1.71686214, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-0.00304229, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-0.00044169, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.0992932, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-0.0030464, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-0.00044135, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(3.58763056, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-0.00044612, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-0.00044487, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.35231445, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-0.00044659, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-0.00044228, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.89816358, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(17.18374656, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ -0.83211887 128.0465779 -107.33781288 55.17416387 90.95707801\n", + " 16.82063315] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -0.00658829357246307\n", + "logZ_P A1 MS 0.0035751627187245094\n", + "DDG A1: 1.735613563532602\n", + "logZ_P A2 MD -0.006612569714878526\n", + "logZ_P A2 MS 0.003577651032280097\n", + "DDG A2: 1.1180851154534865\n", + "logZ_P A3 MD -0.006595151519080039\n", + "logZ_P A3 MS 0.0035812046037538756\n", + "DDG A3: 3.606377108565071\n", + "logZ_P A4 MD 0.0035767884667871172\n", + "logZ_P A4 MS 0.00357597285508615\n", + "DDG A4: -2.352319554192843\n", + "logZ_P A5 MD 0.003576001491416547\n", + "logZ_P A5 MS 0.0035771184966086325\n", + "DDG A5: -0.8981714874983595\n", + "DDG loss: 17.02119392967844\n", + "loss: 17.028487918715157\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-0.00658829, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(0.00357516, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(1.73561356, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-0.00661257, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(0.00357765, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.11808512, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-0.00659515, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(0.0035812, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(3.60637711, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(0.00357679, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(0.00357597, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.35231955, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(0.003576, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(0.00357712, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.89817149, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(17.02119393, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ -0.53365761 127.8433584 -107.28054781 55.58455261 90.75243608\n", + " 15.89884985] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -0.0208015466459332\n", + "logZ_P A1 MS 0.019654992554100997\n", + "DDG A1: 1.8106192368148923\n", + "logZ_P A2 MD -0.020893633407096972\n", + "logZ_P A2 MS 0.019655109598689907\n", + "DDG A2: 1.1932528165658736\n", + "logZ_P A3 MD -0.02079006769339054\n", + "logZ_P A3 MS 0.019671485269155072\n", + "DDG A3: 3.6813632559402367\n", + "logZ_P A4 MD 0.019668487608580018\n", + "logZ_P A4 MS 0.019659433313827853\n", + "DDG A4: -2.3523399531720783\n", + "logZ_P A5 MD 0.019666446922998123\n", + "logZ_P A5 MS 0.01965479560377165\n", + "DDG A5: -0.8982031018696345\n", + "DDG loss: 16.381545643945582\n", + "loss: 16.492060880323493\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-0.02080155, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(0.01965499, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(1.81061924, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-0.02089363, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(0.01965511, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.19325282, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-0.02079007, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(0.01967149, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(3.68136326, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(0.01966849, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(0.01965943, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.35233995, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(0.01966645, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(0.0196548, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.8982031, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(16.38154564, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 0.6354743 127.00194957 -107.02248121 57.2419941 89.87354787\n", + " 12.21304684] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -0.0689583344499721\n", + "logZ_P A1 MS 0.06952060815228765\n", + "DDG A1: 2.0533227076388383\n", + "logZ_P A2 MD -0.06926707735296996\n", + "logZ_P A2 MS 0.06951794198195184\n", + "DDG A2: 1.4364858367568396\n", + "logZ_P A3 MD -0.06889704128437595\n", + "logZ_P A3 MS 0.06956913043417605\n", + "DDG A3: 3.924022691980077\n", + "logZ_P A4 MD 0.06957552053354425\n", + "logZ_P A4 MS 0.06953981179947916\n", + "DDG A4: -2.352405949563845\n", + "logZ_P A5 MD 0.06957107443920081\n", + "logZ_P A5 MS 0.06951542430790782\n", + "DDG A5: -0.898312042928296\n", + "DDG loss: 14.427513592490548\n", + "loss: 15.71990073607714\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-0.06895833, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(0.06952061, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(2.05332271, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-0.06926708, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(0.06951794, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.43648584, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-0.06889704, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(0.06956913, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(3.92402269, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(0.06957552, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(0.06953981, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.35240595, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(0.06957107, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(0.06951542, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.89831204, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(14.42751359, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [-0.27725663 2.60569324 -2.14001616 1.51973294 1.38557765 0.29884442] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -0.0701816142116711\n", + "logZ_P A1 MS 0.07075591208102584\n", + "DDG A1: 2.0594101608563697\n", + "logZ_P A2 MD -0.07049573729120699\n", + "logZ_P A2 MS 0.07075319065484681\n", + "DDG A2: 1.4425864744779713\n", + "logZ_P A3 MD -0.07011903032379943\n", + "logZ_P A3 MS 0.07080522842562732\n", + "DDG A3: 3.9301089154685207\n", + "logZ_P A4 MD 0.0708118647346047\n", + "logZ_P A4 MS 0.0707754912850986\n", + "DDG A4: -2.352407595399248\n", + "logZ_P A5 MD 0.07080734752918201\n", + "logZ_P A5 MS 0.07075059296417387\n", + "DDG A5: -0.8983147775061902\n", + "DDG loss: 14.380778054311406\n", + "loss: 15.719437641376265\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-0.07018161, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(0.07075591, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(2.05941016, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-0.07049574, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(0.07075319, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.44258647, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-0.07011903, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(0.07080523, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(3.93010892, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(0.07081186, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(0.07077549, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.3524076, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(0.07080735, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(0.07075059, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.89831478, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(14.38077805, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [-0.00529281 -0.00615654 0.0062061 0.0035439 -0.01256971 0.00028301] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -0.07018303322415055\n", + "logZ_P A1 MS 0.07075682174868259\n", + "DDG A1: 2.059415926668395\n", + "logZ_P A2 MD -0.07049716035670003\n", + "logZ_P A2 MS 0.07075410051122084\n", + "DDG A2: 1.4425922507925122\n", + "logZ_P A3 MD -0.07012044743355898\n", + "logZ_P A3 MS 0.07080613871520366\n", + "DDG A3: 3.93011467810926\n", + "logZ_P A4 MD 0.07081277543895384\n", + "logZ_P A4 MS 0.07077640140510177\n", + "DDG A4: -2.3524075968460996\n", + "logZ_P A5 MD 0.07080825798928032\n", + "logZ_P A5 MS 0.07075150232681184\n", + "DDG A5: -0.8983147802235052\n", + "DDG loss: 14.380733847680462\n", + "loss: 15.719437640939583\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-0.07018303, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(0.07075682, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(2.05941593, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-0.07049716, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(0.0707541, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.44259225, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-0.07012045, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(0.07080614, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(3.93011468, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(0.07081278, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(0.0707764, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.3524076, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(0.07080826, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(0.0707515, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.89831478, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(14.38073385, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [-3.74504324e-07 -3.02514877e-07 8.39909262e-08 4.56097382e-07\n", + " 9.59358886e-07 6.66069866e-09] \n", + "\n", + "logZ_P A1 MD -0.07018303322415055\n", + "logZ_P A1 MS 0.07075682174868259\n", + "DDG A1: 2.059415926668395\n", + "logZ_P A2 MD -0.07049716035670003\n", + "logZ_P A2 MS 0.07075410051122084\n", + "DDG A2: 1.4425922507925122\n", + "logZ_P A3 MD -0.07012044743355898\n", + "logZ_P A3 MS 0.07080613871520366\n", + "DDG A3: 3.93011467810926\n", + "logZ_P A4 MD 0.07081277543895384\n", + "logZ_P A4 MS 0.07077640140510177\n", + "DDG A4: -2.3524075968460996\n", + "logZ_P A5 MD 0.07080825798928032\n", + "logZ_P A5 MS 0.07075150232681184\n", + "DDG A5: -0.8983147802235052\n", + "DDG loss: 14.380733847680462\n", + "beta: 1000000.0\n", + "New evaluation:\n", + "logZ_P A1 MD -1.1102230246251565e-16\n", + "logZ_P A1 MS 0.0\n", + "DDG A1: 1.7104488457556373\n", + "logZ_P A2 MD 0.0\n", + "logZ_P A2 MS 0.0\n", + "DDG A2: 1.0928541288835474\n", + "logZ_P A3 MD 0.0\n", + "logZ_P A3 MS 0.0\n", + "DDG A3: 3.581180450804952\n", + "logZ_P A4 MD 0.0\n", + "logZ_P A4 MS -2.2204460492503136e-16\n", + "DDG A4: -2.352317534738276\n", + "logZ_P A5 MD 0.0\n", + "logZ_P A5 MS 0.0\n", + "DDG A5: -0.898174253203229\n", + "DDG loss: 17.239715782404367\n", + "loss: 17.239715782737434\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-1.11022302e-16, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(0., dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(1.71044885, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(0., dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(0., dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.09285413, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(0., dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(0., dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(3.58118045, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(0., dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-2.22044605e-16, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.35231753, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(0., dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(0., dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.89817425, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(17.23971578, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ -59.1301254 13.42119931 -159.92372305 4.94716808 -214.32616085\n", + " 17.13657393] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD 1006.757737636208\n", + "logZ_P A1 MS 939.777810897155\n", + "DDG A1: -164.13184976013986\n", + "logZ_P A2 MD 974.8972354635185\n", + "logZ_P A2 MS 943.2582090600299\n", + "DDG A2: -77.24537524615415\n", + "logZ_P A3 MD 990.5815404018306\n", + "logZ_P A3 MS 935.1601483021727\n", + "DDG A3: -133.64218638794785\n", + "logZ_P A4 MD 959.0058460115993\n", + "logZ_P A4 MS 944.7166389526271\n", + "DDG A4: -37.73239421275333\n", + "logZ_P A5 MD 929.5784480124871\n", + "logZ_P A5 MS 954.2829293606513\n", + "DDG A5: 60.27012156485139\n", + "DDG loss: 30084.68414170207\n", + "loss: 333487137.2868839\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(1006.75773764, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(939.7778109, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(-164.13184976, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(974.89723546, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(943.25820906, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(-77.24537525, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(990.5815404, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(935.1601483, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(-133.64218639, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(959.00584601, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(944.71663895, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-37.73239421, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(929.57844801, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(954.28292936, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(60.27012156, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(30084.6841417, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 3.54372105e+07 -7.20127009e+07 -8.92944315e+06 7.56777176e+07\n", + " 5.83991084e+08 -4.75688100e+04] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -3.246375805401598e-05\n", + "logZ_P A1 MS -2.9476468282789394e-05\n", + "DDG A1: 1.7104562422851215\n", + "logZ_P A2 MD -3.37890600422492e-05\n", + "logZ_P A2 MS -2.9237947420359953e-05\n", + "DDG A2: 1.0928653974384057\n", + "logZ_P A3 MD -3.368323448247611e-05\n", + "logZ_P A3 MS -2.9618373286289266e-05\n", + "DDG A3: 3.5811905154012513\n", + "logZ_P A4 MD -3.042632308223887e-05\n", + "logZ_P A4 MS -2.9253254014776382e-05\n", + "DDG A4: -2.352314630219269\n", + "logZ_P A5 MD -3.085909338050092e-05\n", + "logZ_P A5 MS -2.8897713248757004e-05\n", + "DDG A5: -0.8981693968260132\n", + "DDG loss: 17.239643901571483\n", + "loss: 17.239902327416743\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-3.24637581e-05, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-2.94764683e-05, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(1.71045624, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-3.378906e-05, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-2.92379474e-05, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.0928654, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-3.36832345e-05, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-2.96183733e-05, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(3.58119052, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-3.04263231e-05, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-2.9253254e-05, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.35231463, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-3.08590934e-05, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-2.88977132e-05, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.8981694, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(17.2396439, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 214.79518474 207.67963067 -80.44642864 707.20405682 2212.30304378\n", + " 17.13491966] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -4.514901994450745e-06\n", + "logZ_P A1 MS -4.099445130911185e-06\n", + "DDG A1: 1.710449874426805\n", + "logZ_P A2 MD -4.69921715232584e-06\n", + "logZ_P A2 MS -4.0662723402522595e-06\n", + "DDG A2: 1.0928556960549176\n", + "logZ_P A3 MD -4.684499604306423e-06\n", + "logZ_P A3 MS -4.119180129861941e-06\n", + "DDG A3: 3.581181850535954\n", + "logZ_P A4 MD -4.231545555387675e-06\n", + "logZ_P A4 MS -4.068401291491675e-06\n", + "DDG A4: -2.352317130793078\n", + "logZ_P A5 MD -4.291733075611479e-06\n", + "logZ_P A5 MS -4.0189545885551115e-06\n", + "DDG A5: -0.89817357780368\n", + "DDG loss: 17.239705785574397\n", + "loss: 17.239710783961208\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-4.51490199e-06, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-4.09944513e-06, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(1.71044987, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-4.69921715e-06, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-4.06627234e-06, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.0928557, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-4.6844996e-06, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-4.11918013e-06, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(3.58118185, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-4.23154556e-06, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-4.06840129e-06, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.35231713, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-4.29173308e-06, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-4.01895459e-06, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.89817358, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(17.23970579, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ -21.03401712 40.4376374 -148.870445 102.61341438 123.15683387\n", + " 17.13634386] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -1.47273582165937e-05\n", + "logZ_P A1 MS -1.410213056985275e-05\n", + "DDG A1: 1.7104503938193143\n", + "logZ_P A2 MD -1.5199093144095235e-05\n", + "logZ_P A2 MS -1.4032754405209542e-05\n", + "DDG A2: 1.092857016738253\n", + "logZ_P A3 MD -1.5450322246124193e-05\n", + "logZ_P A3 MS -1.408060240944113e-05\n", + "DDG A3: 3.581183842231275\n", + "logZ_P A4 MD -1.4265762051552943e-05\n", + "logZ_P A4 MS -1.4083123077972217e-05\n", + "DDG A4: -2.352317082524185\n", + "logZ_P A5 MD -1.4249327630228866e-05\n", + "logZ_P A5 MS -1.393152551242251e-05\n", + "DDG A5: -0.8981734663251827\n", + "DDG loss: 17.23969568805533\n", + "loss: 17.239701882281704\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-1.47273582e-05, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-1.41021306e-05, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(1.71045039, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-1.51990931e-05, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-1.40327544e-05, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.09285702, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-1.54503222e-05, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-1.40806024e-05, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(3.58118384, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-1.42657621e-05, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-1.40831231e-05, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.35231708, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-1.42493276e-05, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-1.39315255e-05, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.89817347, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(17.23969569, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ -34.37651249 7.0430562 -107.64740473 92.19962986 93.74692395\n", + " 17.1362562 ] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -2.9106870769100917e-05\n", + "logZ_P A1 MS -2.787194225340922e-05\n", + "DDG A1: 1.7104519034386494\n", + "logZ_P A2 MD -2.923127325252577e-05\n", + "logZ_P A2 MS -2.7544064815572064e-05\n", + "DDG A2: 1.0928583064116066\n", + "logZ_P A3 MD -3.0162901384971028e-05\n", + "logZ_P A3 MS -2.757956377830418e-05\n", + "DDG A3: 3.58118684714886\n", + "logZ_P A4 MD -2.795100734932637e-05\n", + "logZ_P A4 MS -2.7834071653447446e-05\n", + "DDG A4: -2.3523172452054957\n", + "logZ_P A5 MD -2.799535323842437e-05\n", + "logZ_P A5 MS -2.7512396747841608e-05\n", + "DDG A5: -0.898173057402949\n", + "DDG loss: 17.239677706679856\n", + "loss: 17.23969133930012\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-2.91068708e-05, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-2.78719423e-05, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(1.7104519, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-2.92312733e-05, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-2.75440648e-05, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.09285831, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-3.01629014e-05, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-2.75795638e-05, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(3.58118685, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-2.79510073e-05, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-2.78340717e-05, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.35231725, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-2.79953532e-05, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-2.75123967e-05, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.89817306, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(17.23967771, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 12.3965851 146.35359147 -88.93487961 95.71441135 75.68482497\n", + " 17.13566511] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -5.388661496556039e-05\n", + "logZ_P A1 MS -5.1598830978013725e-05\n", + "DDG A1: 1.7104545103087851\n", + "logZ_P A2 MD -5.386117728500107e-05\n", + "logZ_P A2 MS -5.1228002064540106e-05\n", + "DDG A2: 1.092860648625377\n", + "logZ_P A3 MD -5.483039308944363e-05\n", + "logZ_P A3 MS -5.135334020739286e-05\n", + "DDG A3: 3.5811890599878615\n", + "logZ_P A4 MD -5.162529066459602e-05\n", + "logZ_P A4 MS -5.151573281858395e-05\n", + "DDG A4: -2.352317263473051\n", + "logZ_P A5 MD -5.167767609657914e-05\n", + "logZ_P A5 MS -5.1255723093922436e-05\n", + "DDG A5: -0.8981732084475909\n", + "DDG loss: 17.239656409900498\n", + "loss: 17.239670878779133\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-5.3886615e-05, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-5.1598831e-05, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(1.71045451, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-5.38611773e-05, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-5.12280021e-05, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.09286065, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-5.48303931e-05, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-5.13533402e-05, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(3.58118906, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-5.16252907e-05, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-5.15157328e-05, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.35231726, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-5.16776761e-05, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-5.12557231e-05, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.89817321, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(17.23965641, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 16.08611162 140.25649047 -92.72210332 91.77670904 77.02002093\n", + " 17.13417482] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -0.00015300555470018227\n", + "logZ_P A1 MS -0.00014650634895469296\n", + "DDG A1: 1.7104649377890468\n", + "logZ_P A2 MD -0.00015238075660683548\n", + "logZ_P A2 MS -0.00014596371407609807\n", + "DDG A2: 1.0928700174808457\n", + "logZ_P A3 MD -0.00015350032309365355\n", + "logZ_P A3 MS -0.00014644840904854547\n", + "DDG A3: 3.5811979113441135\n", + "logZ_P A4 MD -0.00014632238711192699\n", + "logZ_P A4 MS -0.00014624234061848252\n", + "DDG A4: -2.3523173365431664\n", + "logZ_P A5 MD -0.00014640693071612116\n", + "logZ_P A5 MS -0.00014622899169600787\n", + "DDG A5: -0.8981738126262288\n", + "DDG loss: 17.239571222955245\n", + "loss: 17.239605765034458\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-0.00015301, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-0.00014651, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(1.71046494, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-0.00015238, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-0.00014596, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.09287002, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-0.0001535, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-0.00014645, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(3.58119791, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-0.00014632, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-0.00014624, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.35231734, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-0.00014641, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-0.00014623, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.89817381, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(17.23957122, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 30.84421001 115.86810662 -107.87101916 76.02588983 82.3607246\n", + " 17.12821367] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -0.0005048779377276707\n", + "logZ_P A1 MS -0.0004948423198953547\n", + "DDG A1: 1.7104736939453935\n", + "logZ_P A2 MD -0.0005129368472631851\n", + "logZ_P A2 MS -0.0004966477556595806\n", + "DDG A2: 1.09289446067436\n", + "logZ_P A3 MD -0.000514146259334268\n", + "logZ_P A3 MS -0.0004926216309757132\n", + "DDG A3: 3.581233745784751\n", + "logZ_P A4 MD -0.0004992213116136827\n", + "logZ_P A4 MS -0.0004979038191152285\n", + "DDG A4: -2.352314272626835\n", + "logZ_P A5 MD -0.0004987852293987086\n", + "logZ_P A5 MS -0.0004946736558026602\n", + "DDG A5: -0.8981640729470245\n", + "DDG loss: 17.239398364816886\n", + "loss: 17.240378077305106\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-0.00050488, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-0.00049484, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(1.71047369, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-0.00051294, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-0.00049665, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.09289446, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-0.00051415, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-0.00049262, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(3.58123375, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-0.00049922, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-0.0004979, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.35231427, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-0.00049879, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-0.00049467, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.89816407, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(17.23939836, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [-316.69065128 249.86420998 -102.1974558 -153.49538195 177.0995508\n", + " 17.1325463 ] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -0.00018518201344836822\n", + "logZ_P A1 MS -0.00017835942424695693\n", + "DDG A1: 1.710465738486495\n", + "logZ_P A2 MD -0.0001853512841717599\n", + "logZ_P A2 MS -0.00017803150504902673\n", + "DDG A2: 1.092872252656672\n", + "logZ_P A3 MD -0.00018647906635865837\n", + "logZ_P A3 MS -0.00017810371384571183\n", + "DDG A3: 3.5812011881777606\n", + "logZ_P A4 MD -0.00017859271511122998\n", + "logZ_P A4 MS -0.00017839951221363296\n", + "DDG A4: -2.3523170563678764\n", + "logZ_P A5 MD -0.00017862965106671977\n", + "logZ_P A5 MS -0.00017809200504165698\n", + "DDG A5: -0.8981729219916919\n", + "DDG loss: 17.239555416074644\n", + "loss: 17.239597861445212\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-0.00018518, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-0.00017836, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(1.71046574, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-0.00018535, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-0.00017803, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.09287225, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-0.00018648, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-0.0001781, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(3.58120119, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-0.00017859, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-0.0001784, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.35231706, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-0.00017863, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-0.00017809, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.89817292, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(17.23955542, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ -0.93555415 128.12113616 -107.35219776 55.03772072 91.02406775\n", + " 17.12860987] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -0.00018553131035472785\n", + "logZ_P A1 MS -0.00017796896309912362\n", + "DDG A1: 1.7104675701274277\n", + "logZ_P A2 MD -0.00018570223697708638\n", + "logZ_P A2 MS -0.0001776410976232229\n", + "DDG A2: 1.0928740882645887\n", + "logZ_P A3 MD -0.00018682793037480685\n", + "logZ_P A3 MS -0.00017771299650871068\n", + "DDG A3: 3.581203019381225\n", + "logZ_P A4 MD -0.00017820196424833256\n", + "logZ_P A4 MS -0.00017800896129040224\n", + "DDG A4: -2.3523170568629443\n", + "logZ_P A5 MD -0.00017823892988515436\n", + "logZ_P A5 MS -0.00017770159370864946\n", + "DDG A5: -0.898172922758854\n", + "DDG loss: 17.23953945092755\n", + "loss: 17.239581896874725\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-0.00018553, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-0.00017797, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(1.71046757, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-0.0001857, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-0.00017764, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.09287409, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-0.00018683, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-0.00017771, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(3.58120302, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-0.0001782, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-0.00017801, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.35231706, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-0.00017824, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-0.0001777, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.89817292, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(17.23953945, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ -0.93528981 128.12101429 -107.35219632 55.0381034 91.02393085\n", + " 17.12780669] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -0.00018692849797911045\n", + "logZ_P A1 MS -0.00017640711850722729\n", + "DDG A1: 1.7104748966912289\n", + "logZ_P A2 MD -0.00018710604819704998\n", + "logZ_P A2 MS -0.00017607946791969184\n", + "DDG A2: 1.092881430696325\n", + "logZ_P A3 MD -0.00018822338643809716\n", + "logZ_P A3 MS -0.0001761501271595908\n", + "DDG A3: 3.581210344194941\n", + "logZ_P A4 MD -0.0001766389607967771\n", + "logZ_P A4 MS -0.000176446757596396\n", + "DDG A4: -2.3523170588431466\n", + "logZ_P A5 MD -0.00017667604515747353\n", + "logZ_P A5 MS -0.00017613994837577878\n", + "DDG A5: -0.8981729258276075\n", + "DDG loss: 17.239475590440005\n", + "loss: 17.23951804476123\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-0.00018693, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-0.00017641, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(1.7104749, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-0.00018711, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-0.00017608, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.09288143, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-0.00018822, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-0.00017615, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(3.58121034, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-0.00017664, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-0.00017645, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.35231706, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-0.00017668, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-0.00017614, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.89817293, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(17.23947559, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ -0.93423246 128.12052687 -107.35219068 55.03963416 91.02338321\n", + " 17.124594 ] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -0.00019251724846214088\n", + "logZ_P A1 MS -0.0001701597401267023\n", + "DDG A1: 1.7105042029462934\n", + "logZ_P A2 MD -0.0001927212930677046\n", + "logZ_P A2 MS -0.00016983294909325266\n", + "DDG A2: 1.0929108004232004\n", + "logZ_P A3 MD -0.00019380521067623648\n", + "logZ_P A3 MS -0.0001698986497514401\n", + "DDG A3: 3.581239643449806\n", + "logZ_P A4 MD -0.00017038694697895558\n", + "logZ_P A4 MS -0.00017019794280898832\n", + "DDG A4: -2.3523170667639546\n", + "logZ_P A5 MD -0.00017042450623521374\n", + "logZ_P A5 MS -0.00016989336703180155\n", + "DDG A5: -0.8981729381025517\n", + "DDG loss: 17.239220150102987\n", + "loss: 17.23926275641933\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-0.00019252, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-0.00017016, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(1.7105042, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-0.00019272, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-0.00016983, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.0929108, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-0.00019381, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-0.0001699, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(3.58123964, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-0.00017039, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-0.0001702, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.35231707, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-0.00017042, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-0.00016989, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.89817294, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(17.23922015, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ -0.9300031 128.11857712 -107.35216797 55.04575716 91.02119261\n", + " 17.11174325] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -0.0002148722501566483\n", + "logZ_P A1 MS -0.00014517022640661667\n", + "DDG A1: 1.710621427966445\n", + "logZ_P A2 MD -0.00021518227240379872\n", + "logZ_P A2 MS -0.00014484687358473622\n", + "DDG A2: 1.0930282793310189\n", + "logZ_P A3 MD -0.0002161325073837285\n", + "logZ_P A3 MS -0.00014489273993893427\n", + "DDG A3: 3.5813568404691596\n", + "logZ_P A4 MD -0.0001453788915261336\n", + "logZ_P A4 MS -0.00014520268346540974\n", + "DDG A4: -2.352317098447116\n", + "logZ_P A5 MD -0.000145418350368316\n", + "logZ_P A5 MS -0.00014490704145336895\n", + "DDG A5: -0.8981729872023637\n", + "DDG loss: 17.238198414554425\n", + "loss: 17.238243521687572\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-0.00021487, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-0.00014517, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(1.71062143, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-0.00021518, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-0.00014485, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.09302828, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-0.00021613, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-0.00014489, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(3.58135684, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-0.00014538, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-0.0001452, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.3523171, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-0.00014542, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-0.00014491, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.89817299, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(17.23819841, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ -0.91308628 128.11077738 -107.3520764 55.07024957 91.01242872\n", + " 17.06034027] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -0.0003042922531471103\n", + "logZ_P A1 MS -4.521216834259419e-05\n", + "DDG A1: 1.7110903280456085\n", + "logZ_P A2 MD -0.00030502618739976326\n", + "logZ_P A2 MS -4.490256831642377e-05\n", + "DDG A2: 1.0934981949644034\n", + "logZ_P A3 MD -0.0003054416902828588\n", + "logZ_P A3 MS -4.486909779337383e-05\n", + "DDG A3: 3.58182562854397\n", + "logZ_P A4 MD -4.5346666819134593e-05\n", + "logZ_P A4 MS -4.522164299377059e-05\n", + "DDG A4: -2.35231722517927\n", + "logZ_P A5 MD -4.5393724046294644e-05\n", + "logZ_P A5 MS -4.496173590173654e-05\n", + "DDG A5: -0.8981731836005561\n", + "DDG loss: 17.234111885157024\n", + "loss: 17.234197266704893\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-0.00030429, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-4.52121683e-05, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(1.71109033, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-0.00030503, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-4.49025683e-05, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.09349819, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-0.00030544, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-4.48690978e-05, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(3.58182563, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-4.53466668e-05, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-4.5221643e-05, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.35231723, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-4.5393724e-05, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-4.49617359e-05, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.89817318, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(17.23411189, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ -0.84542865 128.07956725 -107.35169876 55.16822544 90.97734976\n", + " 16.85472889] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -0.000661972204495932\n", + "logZ_P A1 MS 0.00035462011483864623\n", + "DDG A1: 1.7129659283383016\n", + "logZ_P A2 MD -0.0006644018098050597\n", + "logZ_P A2 MS 0.00035487470450669715\n", + "DDG A2: 1.0953778575329867\n", + "logZ_P A3 MD -0.0006626783589908226\n", + "logZ_P A3 MS 0.0003552255171083854\n", + "DDG A3: 3.583700780802185\n", + "logZ_P A4 MD 0.0003547822783506088\n", + "logZ_P A4 MS 0.00035470256845185474\n", + "DDG A4: -2.352317732099969\n", + "logZ_P A5 MD 0.00035470482690029304\n", + "logZ_P A5 MS 0.00035481953810552187\n", + "DDG A5: -0.8981739691783008\n", + "DDG loss: 17.21777237231662\n", + "loss: 17.218503200333647\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-0.00066197, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(0.00035462, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(1.71296593, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-0.0006644, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(0.00035487, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.09537786, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-0.00066268, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(0.00035523, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(3.58370078, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(0.00035478, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(0.0003547, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.35231773, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(0.0003547, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(0.00035482, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.89817397, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(17.21777237, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ -0.57495304 127.95454819 -107.35000725 55.56022901 90.83665756\n", + " 16.03229169] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -0.0020926910400437524\n", + "logZ_P A1 MS 0.001953950062328686\n", + "DDG A1: 1.7204683291251233\n", + "logZ_P A2 MD -0.0021019036981627785\n", + "logZ_P A2 MS 0.0019539846237701403\n", + "DDG A2: 1.1028965083686437\n", + "logZ_P A3 MD -0.002091624027554374\n", + "logZ_P A3 MS 0.001955604717800894\n", + "DDG A3: 3.591201389178473\n", + "logZ_P A4 MD 0.0019552988004646605\n", + "logZ_P A4 MS 0.001954400207139239\n", + "DDG A4: -2.352319759655356\n", + "logZ_P A5 MD 0.001955099761208145\n", + "logZ_P A5 MS 0.001953945462922255\n", + "DDG A5: -0.8981771112457925\n", + "DDG loss: 17.152519996942935\n", + "loss: 17.163581964487154\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-0.00209269, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(0.00195395, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(1.72046833, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-0.0021019, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(0.00195398, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.10289651, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-0.00209162, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(0.0019556, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(3.59120139, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(0.0019553, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(0.0019544, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.35231976, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(0.0019551, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(0.00195395, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.89817711, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(17.15252, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 0.50447221 127.4516131 -107.34033935 57.12984336 90.26787734\n", + " 12.74267656] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -0.006791892800593522\n", + "logZ_P A1 MS 0.006821773447859289\n", + "DDG A1: 1.7441562833867899\n", + "logZ_P A2 MD -0.006822261173871633\n", + "logZ_P A2 MS 0.00682152338201417\n", + "DDG A2: 1.1266361394439104\n", + "logZ_P A3 MD -0.006786032779326641\n", + "logZ_P A3 MS 0.006826596755765338\n", + "DDG A3: 3.6148853215338677\n", + "logZ_P A4 MD 0.006827127911381072\n", + "logZ_P A4 MS 0.006823639845926261\n", + "DDG A4: -2.3523261711883543\n", + "logZ_P A5 MD 0.006826685212054874\n", + "logZ_P A5 MS 0.006821290346458281\n", + "DDG A5: -0.8981876108904799\n", + "DDG loss: 16.947596537950673\n", + "loss: 17.072614700856\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-0.00679189, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(0.00682177, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(1.74415628, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-0.00682226, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(0.00682152, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.12663614, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-0.00678603, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(0.0068266, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(3.61488532, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(0.00682713, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(0.00682364, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.35232617, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(0.00682669, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(0.00682129, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.89818761, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(16.94759654, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 0.06500467 23.51380675 -19.79811428 10.57311515 16.6096639\n", + " 2.35570266] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -0.007857819310325405\n", + "logZ_P A1 MS 0.007925588287500146\n", + "DDG A1: 1.749528562967882\n", + "logZ_P A2 MD -0.007892985768508056\n", + "logZ_P A2 MS 0.00792527386691003\n", + "DDG A2: 1.1320201397408565\n", + "logZ_P A3 MD -0.007850871726302146\n", + "logZ_P A3 MS 0.007931129973818942\n", + "DDG A3: 3.620256687014442\n", + "logZ_P A4 MD 0.007931851099785626\n", + "logZ_P A4 MS 0.00792777590439886\n", + "DDG A4: -2.3523276249220664\n", + "logZ_P A5 MD 0.007931352995097741\n", + "logZ_P A5 MS 0.00792499657881813\n", + "DDG A5: -0.898189991689935\n", + "DDG loss: 16.9013556824801\n", + "loss: 17.069395359628867\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-0.00785782, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(0.00792559, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(1.74952856, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-0.00789299, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(0.00792527, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.13202014, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-0.00785087, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(0.00793113, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(3.62025669, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(0.00793185, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(0.00792778, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.35232762, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(0.00793135, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(0.007925, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.89818999, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(16.90135568, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [-0.00550297 -0.00636058 0.00640527 0.00363151 -0.01308809 0.00029756] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -0.007857982353854029\n", + "logZ_P A1 MS 0.007925699103209574\n", + "DDG A1: 1.7495292410433323\n", + "logZ_P A2 MD -0.007893149303470591\n", + "logZ_P A2 MS 0.007925384701210361\n", + "DDG A2: 1.132020819079135\n", + "logZ_P A3 MD -0.007851034558723937\n", + "logZ_P A3 MS 0.007931240865799213\n", + "DDG A3: 3.620257364756082\n", + "logZ_P A4 MD 0.007931962036110494\n", + "logZ_P A4 MS 0.00792788677153882\n", + "DDG A4: -2.352327625093352\n", + "logZ_P A5 MD 0.007931463905216712\n", + "logZ_P A5 MS 0.00792510736168869\n", + "DDG A5: -0.8981899920050262\n", + "DDG loss: 16.90134985242248\n", + "loss: 17.06939535961602\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-0.00785798, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(0.0079257, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(1.74952924, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-0.00789315, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(0.00792538, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.13202082, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-0.00785103, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(0.00793124, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(3.62025736, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(0.00793196, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(0.00792789, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.35232763, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(0.00793146, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(0.00792511, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.89818999, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(16.90134985, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [-1.61978861e-07 -2.12793793e-07 2.45350975e-07 2.58194177e-08\n", + " -2.30918999e-07 7.30383976e-09] \n", + "\n", + "logZ_P A1 MD -0.007857982353854029\n", + "logZ_P A1 MS 0.007925699103209574\n", + "DDG A1: 1.7495292410433323\n", + "logZ_P A2 MD -0.007893149303470591\n", + "logZ_P A2 MS 0.007925384701210361\n", + "DDG A2: 1.132020819079135\n", + "logZ_P A3 MD -0.007851034558723937\n", + "logZ_P A3 MS 0.007931240865799213\n", + "DDG A3: 3.620257364756082\n", + "logZ_P A4 MD 0.007931962036110494\n", + "logZ_P A4 MS 0.00792788677153882\n", + "DDG A4: -2.352327625093352\n", + "logZ_P A5 MD 0.007931463905216712\n", + "logZ_P A5 MS 0.00792510736168869\n", + "DDG A5: -0.8981899920050262\n", + "DDG loss: 16.90134985242248\n", + "beta: 10000000.0\n", + "New evaluation:\n", + "logZ_P A1 MD -1.1102230246251565e-16\n", + "logZ_P A1 MS 0.0\n", + "DDG A1: 1.7104488457556373\n", + "logZ_P A2 MD 0.0\n", + "logZ_P A2 MS 0.0\n", + "DDG A2: 1.0928541288835474\n", + "logZ_P A3 MD 0.0\n", + "logZ_P A3 MS 0.0\n", + "DDG A3: 3.581180450804952\n", + "logZ_P A4 MD 0.0\n", + "logZ_P A4 MS -2.2204460492503136e-16\n", + "DDG A4: -2.352317534738276\n", + "logZ_P A5 MD 0.0\n", + "logZ_P A5 MS 0.0\n", + "DDG A5: -0.898174253203229\n", + "DDG loss: 17.239715782404367\n", + "loss: 17.239715785735036\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-1.11022302e-16, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(0., dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(1.71044885, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(0., dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(0., dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.09285413, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(0., dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(0., dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(3.58118045, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(0., dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-2.22044605e-16, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.35231753, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(0., dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(0., dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.89817425, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(17.23971578, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ -59.13012537 13.42119955 -159.92372373 4.94716855 -214.32616106\n", + " 17.13657393] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD 1006.7577343613456\n", + "logZ_P A1 MS 939.7778076602301\n", + "DDG A1: -164.131849666206\n", + "logZ_P A2 MD 974.8972322013997\n", + "logZ_P A2 MS 943.25820574413\n", + "DDG A2: -77.245375379316\n", + "logZ_P A3 MD 990.5815371073327\n", + "logZ_P A3 MS 935.1601450251394\n", + "DDG A3: -133.64218634470558\n", + "logZ_P A4 MD 959.0058426597658\n", + "logZ_P A4 MS 944.7166355338029\n", + "DDG A4: -37.73239437862246\n", + "logZ_P A5 MD 929.5784446224255\n", + "logZ_P A5 MS 954.2829259160957\n", + "DDG A5: 60.27012142992404\n", + "DDG loss: 30084.68412760175\n", + "loss: 3334600604.579589\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(1006.75773436, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(939.77780766, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(-164.13184967, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(974.8972322, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(943.25820574, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(-77.24537538, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(990.58153711, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(935.16014503, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(-133.64218634, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(959.00584266, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(944.71663553, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-37.73239438, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(929.57844462, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(954.28292592, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(60.27012143, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(30084.6841276, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 3.54393680e+08 -7.19872918e+08 -9.01529670e+07 7.56522475e+08\n", + " 5.83877226e+09 -4.82667165e+05] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -3.246027783694272e-06\n", + "logZ_P A1 MS -2.947331514115295e-06\n", + "DDG A1: 1.7104495853276227\n", + "logZ_P A2 MD -3.378542712024765e-06\n", + "logZ_P A2 MS -2.9234816345262753e-06\n", + "DDG A2: 1.0928552556147912\n", + "logZ_P A3 MD -3.367961409151883e-06\n", + "logZ_P A3 MS -2.961520146682498e-06\n", + "DDG A3: 3.58118145715351\n", + "logZ_P A4 MD -3.042306229573182e-06\n", + "logZ_P A4 MS -2.9250122683471e-06\n", + "DDG A4: -2.3523172443184195\n", + "logZ_P A5 MD -3.085578564210249e-06\n", + "logZ_P A5 MS -2.889462140312852e-06\n", + "DDG A5: -0.8981737676189445\n", + "DDG loss: 17.239708595097184\n", + "loss: 17.239734430947138\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-3.24602778e-06, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-2.94733151e-06, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(1.71044959, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-3.37854271e-06, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-2.92348163e-06, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.09285526, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-3.36796141e-06, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-2.96152015e-06, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(3.58118146, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-3.04230623e-06, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-2.92501227e-06, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.35231724, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-3.08557856e-06, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-2.88946214e-06, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.89817377, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(17.2397086, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 214.76499702 207.6583939 -80.45595411 707.12701002 2212.03600741\n", + " 17.1349707 ] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -4.516270564121105e-07\n", + "logZ_P A1 MS -4.100687899504849e-07\n", + "DDG A1: 1.7104489486539043\n", + "logZ_P A2 MD -4.700641389758999e-07\n", + "logZ_P A2 MS -4.067504987528862e-07\n", + "DDG A2: 1.0928542856481083\n", + "logZ_P A3 MD -4.6859194013158745e-07\n", + "logZ_P A3 MS -4.1204288168795714e-07\n", + "DDG A3: 3.581180590820413\n", + "logZ_P A4 MD -4.232828255947819e-07\n", + "logZ_P A4 MS -4.069634611195842e-07\n", + "DDG A4: -2.3523174943315364\n", + "logZ_P A5 MD -4.293034008492113e-07\n", + "logZ_P A5 MS -4.020172946261918e-07\n", + "DDG A5: -0.898174185642831\n", + "DDG loss: 17.239714782418478\n", + "loss: 17.239715283811005\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-4.51627056e-07, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-4.1006879e-07, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(1.71044895, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-4.70064139e-07, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-4.06750499e-07, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.09285429, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-4.6859194e-07, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-4.12042882e-07, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(3.58118059, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-4.23282826e-07, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-4.06963461e-07, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.35231749, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-4.29303401e-07, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-4.02017295e-07, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.89817419, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(17.23971478, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ -21.02249803 40.44584379 -148.86720054 102.64298659 123.25891546\n", + " 17.13635087] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -1.4770532052384088e-06\n", + "logZ_P A1 MS -1.4144319703232406e-06\n", + "DDG A1: 1.710449000805827\n", + "logZ_P A2 MD -1.5243499265905707e-06\n", + "logZ_P A2 MS -1.4074785212434222e-06\n", + "DDG A2: 1.0928544182571462\n", + "logZ_P A3 MD -1.5495812499873944e-06\n", + "logZ_P A3 MS -1.4122628578099192e-06\n", + "DDG A3: 3.581180790805298\n", + "logZ_P A4 MD -1.4308120256232937e-06\n", + "logZ_P A4 MS -1.4125352004544302e-06\n", + "DDG A4: -2.3523174894848653\n", + "logZ_P A5 MD -1.4291390460297586e-06\n", + "logZ_P A5 MS -1.3973321328288004e-06\n", + "DDG A5: -0.8981741744492957\n", + "DDG loss: 17.23971376853192\n", + "loss: 17.23971439056709\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-1.47705321e-06, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-1.41443197e-06, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(1.710449, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-1.52434993e-06, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-1.40747852e-06, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.09285442, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-1.54958125e-06, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-1.41226286e-06, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(3.58118079, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-1.43081203e-06, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-1.4125352e-06, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.35231749, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-1.42913905e-06, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-1.39733213e-06, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.89817417, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(17.23971377, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ -34.41961231 6.91459832 -107.47549119 92.18662125 93.72867375\n", + " 17.13626966] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -2.9199739433904056e-06\n", + "logZ_P A1 MS -2.796171970377375e-06\n", + "DDG A1: 1.7104491522893095\n", + "logZ_P A2 MD -2.9324175016822075e-06\n", + "logZ_P A2 MS -2.763279095225352e-06\n", + "DDG A2: 1.092854547670233\n", + "logZ_P A3 MD -3.025923775199889e-06\n", + "logZ_P A3 MS -2.7668242746302684e-06\n", + "DDG A3: 3.581181092335299\n", + "logZ_P A4 MD -2.804066192109428e-06\n", + "logZ_P A4 MS -2.792382365816225e-06\n", + "DDG A4: -2.3523175058090935\n", + "logZ_P A5 MD -2.8084922119794895e-06\n", + "logZ_P A5 MS -2.760112798360433e-06\n", + "DDG A5: -0.8981741334157861\n", + "DDG loss: 17.2397119641796\n", + "loss: 17.239713329219818\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-2.91997394e-06, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-2.79617197e-06, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(1.71044915, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-2.9324175e-06, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-2.7632791e-06, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.09285455, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-3.02592378e-06, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-2.76682427e-06, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(3.58118109, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-2.80406619e-06, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-2.79238237e-06, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.35231751, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-2.80849221e-06, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-2.7601128e-06, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.89817413, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(17.23971196, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 12.51497556 146.70619951 -88.69830816 95.71357256 75.60417116\n", + " 17.13568683] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -5.4145156697884144e-06\n", + "logZ_P A1 MS -5.184724338158948e-06\n", + "DDG A1: 1.7104494147189593\n", + "logZ_P A2 MD -5.411875179990054e-06\n", + "logZ_P A2 MS -5.147507576511512e-06\n", + "DDG A2: 1.0928547834577245\n", + "logZ_P A3 MD -5.509165501579459e-06\n", + "logZ_P A3 MS -5.160096710846814e-06\n", + "DDG A3: 3.5811813150992977\n", + "logZ_P A4 MD -5.187322883136114e-06\n", + "logZ_P A4 MS -5.176381755724869e-06\n", + "DDG A4: -2.352317507648059\n", + "logZ_P A5 MD -5.192558210944536e-06\n", + "logZ_P A5 MS -5.150319858632657e-06\n", + "DDG A5: -0.8981741486210971\n", + "DDG loss: 17.2397098202584\n", + "loss: 17.23971127259358\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-5.41451567e-06, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-5.18472434e-06, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(1.71044941, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-5.41187518e-06, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-5.14750758e-06, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.09285478, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-5.5091655e-06, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-5.16009671e-06, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(3.58118132, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-5.18732288e-06, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-5.17638176e-06, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.35231751, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-5.19255821e-06, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-5.15031986e-06, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.89817415, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(17.23970982, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 16.22914418 140.56840141 -92.51080771 91.74959924 76.94827982\n", + " 17.13419934] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -1.539268219945493e-05\n", + "logZ_P A1 MS -1.4738933435051979e-05\n", + "DDG A1: 1.7104504644375935\n", + "logZ_P A2 MD -1.5329705519642733e-05\n", + "logZ_P A2 MS -1.4684421127114599e-05\n", + "DDG A2: 1.0928557266076915\n", + "logZ_P A3 MD -1.5442132033674516e-05\n", + "logZ_P A3 MS -1.4733186082808516e-05\n", + "DDG A3: 3.5811822061551526\n", + "logZ_P A4 MD -1.4720349274109089e-05\n", + "logZ_P A4 MS -1.471237894199418e-05\n", + "DDG A4: -2.352317515003743\n", + "logZ_P A5 MD -1.4728821833061748e-05\n", + "logZ_P A5 MS -1.4711147726958779e-05\n", + "DDG A5: -0.89817420944213\n", + "DDG loss: 17.239701244575855\n", + "loss: 17.23970473239789\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-1.53926822e-05, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-1.47389334e-05, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(1.71045046, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-1.53297055e-05, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-1.46844211e-05, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.09285573, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-1.5442132e-05, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-1.47331861e-05, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(3.58118221, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-1.47203493e-05, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-1.47123789e-05, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.35231752, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-1.47288218e-05, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-1.47111477e-05, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.89817421, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(17.23970124, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 31.08581795 116.01721163 -107.76080923 75.89370585 82.32470607\n", + " 17.12824937] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -5.07416008249794e-05\n", + "logZ_P A1 MS -4.973257836088241e-05\n", + "DDG A1: 1.7104513440952709\n", + "logZ_P A2 MD -5.15509792332541e-05\n", + "logZ_P A2 MS -4.991394958509798e-05\n", + "DDG A2: 1.0928581821689731\n", + "logZ_P A3 MD -5.167243317934103e-05\n", + "logZ_P A3 MS -4.950956235856921e-05\n", + "DDG A3: 3.5811858060730875\n", + "logZ_P A4 MD -5.017238321278754e-05\n", + "logZ_P A4 MS -5.0040100366223235e-05\n", + "DDG A4: -2.3523172072059406\n", + "logZ_P A5 MD -5.012855439680559e-05\n", + "logZ_P A5 MS -4.9715709877629004e-05\n", + "DDG A5: -0.898173231000212\n", + "DDG loss: 17.23968387901483\n", + "loss: 17.239782754910504\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-5.07416008e-05, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-4.97325784e-05, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(1.71045134, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-5.15509792e-05, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-4.99139496e-05, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.09285818, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-5.16724332e-05, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-4.95095624e-05, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(3.58118581, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-5.01723832e-05, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-5.00401004e-05, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.35231721, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-5.01285544e-05, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-4.97157099e-05, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.89817323, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(17.23968388, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [-318.04291611 250.62768457 -102.06106056 -154.67972888 177.49968915\n", + " 17.13272447] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -1.8610282267101443e-05\n", + "logZ_P A1 MS -1.7924195054451686e-05\n", + "DDG A1: 1.7104505445075917\n", + "logZ_P A2 MD -1.8626710837056305e-05\n", + "logZ_P A2 MS -1.7891153807442255e-05\n", + "DDG A2: 1.0928559501227724\n", + "logZ_P A3 MD -1.8739959063158163e-05\n", + "logZ_P A3 MS -1.7898671029247047e-05\n", + "DDG A3: 3.5811825338341086\n", + "logZ_P A4 MD -1.7947335296762448e-05\n", + "logZ_P A4 MS -1.7928049542664305e-05\n", + "DDG A4: -2.3523174869867596\n", + "logZ_P A5 MD -1.7951047177576453e-05\n", + "logZ_P A5 MS -1.7897403063247243e-05\n", + "DDG A5: -0.8981741203804005\n", + "DDG loss: 17.239699663891887\n", + "loss: 17.23970394204541\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-1.86102823e-05, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-1.79241951e-05, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(1.71045054, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-1.86267108e-05, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-1.78911538e-05, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.09285595, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-1.87399591e-05, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-1.7898671e-05, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(3.58118253, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-1.79473353e-05, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-1.79280495e-05, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.35231749, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-1.79510472e-05, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-1.78974031e-05, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.89817412, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(17.23969966, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ -0.69327128 128.26999056 -107.24199385 54.90599566 90.98792304\n", + " 17.12865671] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -1.8645233692991924e-05\n", + "logZ_P A1 MS -1.7885171358362022e-05\n", + "DDG A1: 1.7104507276699785\n", + "logZ_P A2 MD -1.8661827862703723e-05\n", + "logZ_P A2 MS -1.7852135441585588e-05\n", + "DDG A2: 1.0928561336819875\n", + "logZ_P A3 MD -1.8774867348060965e-05\n", + "logZ_P A3 MS -1.7859621707305842e-05\n", + "DDG A3: 3.5811827169531463\n", + "logZ_P A4 MD -1.790828263331027e-05\n", + "logZ_P A4 MS -1.7889016858786015e-05\n", + "DDG A4: -2.352317487036231\n", + "logZ_P A5 MD -1.7911997473220773e-05\n", + "logZ_P A5 MS -1.785838432099646e-05\n", + "DDG A5: -0.8981741204570709\n", + "DDG loss: 17.23969806738097\n", + "loss: 17.239702347964187\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-1.86452337e-05, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-1.78851714e-05, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(1.71045073, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-1.86618279e-05, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-1.78521354e-05, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.09285613, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-1.87748673e-05, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-1.78596217e-05, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(3.58118272, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-1.79082826e-05, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-1.78890169e-05, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.35231749, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-1.79119975e-05, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-1.78583843e-05, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.89817412, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(17.23969807, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ -0.69300984 128.26987623 -107.2419978 54.90637677 90.98779192\n", + " 17.12786328] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -1.8785039395446958e-05\n", + "logZ_P A1 MS -1.772907657502074e-05\n", + "DDG A1: 1.7104514603195957\n", + "logZ_P A2 MD -1.880229596519073e-05\n", + "logZ_P A2 MS -1.7696061977617796e-05\n", + "DDG A2: 1.0928568679189192\n", + "logZ_P A3 MD -1.8914500487312298e-05\n", + "logZ_P A3 MS -1.770342441935714e-05\n", + "DDG A3: 3.5811834494292962\n", + "logZ_P A4 MD -1.7752071979764396e-05\n", + "logZ_P A4 MS -1.7732886123742135e-05\n", + "DDG A4: -2.3523174872340826\n", + "logZ_P A5 MD -1.7755798655836525e-05\n", + "logZ_P A5 MS -1.7702309351119436e-05\n", + "DDG A5: -0.8981741207637175\n", + "DDG loss: 17.239691681337977\n", + "loss: 17.239695959343273\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-1.87850394e-05, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-1.77290766e-05, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(1.71045146, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-1.8802296e-05, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-1.7696062e-05, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.09285687, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-1.89145005e-05, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-1.77034244e-05, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(3.58118345, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-1.7752072e-05, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-1.77328861e-05, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.35231749, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-1.77557987e-05, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-1.77023094e-05, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.89817412, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(17.23969168, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ -0.69196416 128.26941853 -107.24201277 54.90790059 90.98726776\n", + " 17.12468956] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -1.9344262206097644e-05\n", + "logZ_P A1 MS -1.7104697440725e-05\n", + "DDG A1: 1.7104543909179948\n", + "logZ_P A2 MD -1.936416837549434e-05\n", + "logZ_P A2 MS -1.707176812152664e-05\n", + "DDG A2: 1.0928598048665754\n", + "logZ_P A3 MD -1.9473033044110835e-05\n", + "logZ_P A3 MS -1.7078635267506976e-05\n", + "DDG A3: 3.581186379333861\n", + "logZ_P A4 MD -1.7127229365456238e-05\n", + "logZ_P A4 MS -1.7108363182859257e-05\n", + "DDG A4: -2.3523174880255935\n", + "logZ_P A5 MD -1.7131003386915063e-05\n", + "logZ_P A5 MS -1.7078009471840136e-05\n", + "DDG A5: -0.8981741219903042\n", + "DDG loss: 17.239666137182596\n", + "loss: 17.239670426838376\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-1.93442622e-05, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-1.71046974e-05, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(1.71045439, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-1.93641684e-05, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-1.70717681e-05, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.0928598, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-1.9473033e-05, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-1.70786353e-05, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(3.58118638, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-1.71272294e-05, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-1.71083632e-05, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.35231749, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-1.71310034e-05, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-1.70780095e-05, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.89817412, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(17.23966614, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ -0.68778134 128.26758832 -107.24207401 54.91399685 90.98517075\n", + " 17.11199466] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -2.1581153446665017e-05\n", + "logZ_P A1 MS -1.4607180901868329e-05\n", + "DDG A1: 1.7104661133116617\n", + "logZ_P A2 MD -2.1611658014734315e-05\n", + "logZ_P A2 MS -1.4574592695755883e-05\n", + "DDG A2: 1.0928715526572705\n", + "logZ_P A3 MD -2.1707163268659427e-05\n", + "logZ_P A3 MS -1.4579478658780474e-05\n", + "DDG A3: 3.5811980989520498\n", + "logZ_P A4 MD -1.4627858906677476e-05\n", + "logZ_P A4 MS -1.4610271418006733e-05\n", + "DDG A4: -2.3523174911916716\n", + "logZ_P A5 MD -1.4631822309313469e-05\n", + "logZ_P A5 MS -1.4580809952836868e-05\n", + "DDG A5: -0.8981741268966155\n", + "DDG loss: 17.239563960818977\n", + "loss: 17.239568505464767\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-2.15811534e-05, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-1.46071809e-05, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(1.71046611, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-2.1611658e-05, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-1.45745927e-05, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.09287155, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-2.17071633e-05, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-1.45794787e-05, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(3.5811981, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-1.46278589e-05, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-1.46102714e-05, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.35231749, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-1.46318223e-05, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-1.458081e-05, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.89817413, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(17.23956396, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ -0.67105021 128.26026681 -107.24231746 54.93838091 90.97678293\n", + " 17.06121506] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -3.052871837050977e-05\n", + "logZ_P A1 MS -4.617114714587413e-06\n", + "DDG A1: 1.7105130028862932\n", + "logZ_P A2 MD -3.060161654867474e-05\n", + "logZ_P A2 MS -4.585890959613075e-06\n", + "DDG A2: 1.0929185438200857\n", + "logZ_P A3 MD -3.064368412799292e-05\n", + "logZ_P A3 MS -4.582852194873279e-06\n", + "DDG A3: 3.581244977424806\n", + "logZ_P A4 MD -4.63037704202894e-06\n", + "logZ_P A4 MS -4.617904327570796e-06\n", + "DDG A4: -2.352317503855809\n", + "logZ_P A5 MD -4.635097970730099e-06\n", + "logZ_P A5 MS -4.592011844134036e-06\n", + "DDG A5: -0.8981741465220013\n", + "DDG loss: 17.239155259492282\n", + "loss: 17.23916383864029\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-3.05287184e-05, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(-4.61711471e-06, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(1.710513, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-3.06016165e-05, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(-4.58589096e-06, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.09291854, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-3.06436841e-05, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(-4.58285219e-06, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(3.58124498, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(-4.63037704e-06, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(-4.61790433e-06, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.3523175, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(-4.63509797e-06, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(-4.59201184e-06, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.89817415, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(17.23915526, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ -0.60412649 128.23098097 -107.24329356 55.03591997 90.94322802\n", + " 16.85809672] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -6.631897746040085e-05\n", + "logZ_P A1 MS 3.534315054307943e-05\n", + "DDG A1: 1.7107005611845727\n", + "logZ_P A2 MD -6.656145030894375e-05\n", + "logZ_P A2 MS 3.536891650191338e-05\n", + "DDG A2: 1.0931065084717695\n", + "logZ_P A3 MD -6.638976693636343e-05\n", + "logZ_P A3 MS 3.5403654124089116e-05\n", + "DDG A3: 3.5814324913155127\n", + "logZ_P A4 MD 3.535955087975773e-05\n", + "logZ_P A4 MS 3.535156453001511e-05\n", + "DDG A4: -2.352317554512464\n", + "logZ_P A5 MD 3.5351799840504864e-05\n", + "logZ_P A5 MS 3.5363181108523354e-05\n", + "DDG A5: -0.8981742250231931\n", + "DDG loss: 17.23752052023171\n", + "loss: 17.237593647861686\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-6.63189775e-05, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(3.53431505e-05, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(1.71070056, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-6.65614503e-05, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(3.53689165e-05, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.09310651, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-6.63897669e-05, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(3.54036541e-05, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(3.58143249, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(3.53595509e-05, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(3.53515645e-05, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.35231755, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(3.53517998e-05, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(3.53631811e-05, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.89817423, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(17.23752052, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ -0.33644709 128.11381862 -107.24717558 55.42608409 90.80897355\n", + " 16.0456242 ] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -0.00020948000412824872\n", + "logZ_P A1 MS 0.000195184219716206\n", + "DDG A1: 1.7114507943738917\n", + "logZ_P A2 MD -0.00021040077934477753\n", + "logZ_P A2 MS 0.00019518815462173873\n", + "DDG A2: 1.093858367084028\n", + "logZ_P A3 MD -0.0002093740881161912\n", + "logZ_P A3 MS 0.0001953496868046311\n", + "DDG A3: 3.582182546871655\n", + "logZ_P A4 MD 0.0001953192699749109\n", + "logZ_P A4 MS 0.00019522944788302618\n", + "DDG A4: -2.3523177571377825\n", + "logZ_P A5 MD 0.000195299398384375\n", + "logZ_P A5 MS 0.0001951839612012114\n", + "DDG A5: -0.8981745390257082\n", + "DDG loss: 17.23098261993194\n", + "loss: 17.232088883584126\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-0.00020948, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(0.00019518, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(1.71145079, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-0.0002104, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(0.00019519, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.09385837, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-0.00020937, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(0.00019535, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(3.58218255, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(0.00019532, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(0.00019523, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.35231776, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(0.0001953, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(0.00019518, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.89817454, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(17.23098262, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 0.73402252 127.64488232 -107.26241237 56.98689988 90.2713553\n", + " 12.79574751] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -0.0006782111526691592\n", + "logZ_P A1 MS 0.0006808734130480219\n", + "DDG A1: 1.7138139391403615\n", + "logZ_P A2 MD -0.0006812429478048294\n", + "logZ_P A2 MS 0.0006808486536930901\n", + "DDG A2: 1.096226667688844\n", + "logZ_P A3 MD -0.0006776278460873487\n", + "logZ_P A3 MS 0.0006813554416624183\n", + "DDG A3: 3.584545293425407\n", + "logZ_P A4 MD 0.000681407582009961\n", + "logZ_P A4 MS 0.0006810595777751592\n", + "DDG A4: -2.352318396396763\n", + "logZ_P A5 MD 0.0006813633381642609\n", + "logZ_P A5 MS 0.0006808254725339234\n", + "DDG A5: -0.8981755849585317\n", + "DDG loss: 17.210399432105117\n", + "loss: 17.22286050120769\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-0.00067821, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(0.00068087, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(1.71381394, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-0.00068124, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(0.00068085, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.09622667, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-0.00067763, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(0.00068136, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(3.58454529, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(0.00068141, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(0.00068106, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.3523184, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(0.00068136, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(0.00068083, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.89817558, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(17.21039943, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [ 0.14383838 25.50677855 -21.4333968 11.3906204 18.03367948\n", + " 2.55740269] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -0.0007952957637456031\n", + "logZ_P A1 MS 0.0008021903198606614\n", + "DDG A1: 1.714404221298658\n", + "logZ_P A2 MD -0.0007988548655467906\n", + "logZ_P A2 MS 0.000802158395115047\n", + "DDG A2: 1.0968182377169615\n", + "logZ_P A3 MD -0.0007945932059702403\n", + "logZ_P A3 MS 0.0008027514186232592\n", + "DDG A3: 3.585135476095425\n", + "logZ_P A4 MD 0.0008028241819109681\n", + "logZ_P A4 MS 0.0008024116888450726\n", + "DDG A4: -2.3523185560711064\n", + "logZ_P A5 MD 0.0008027738487089228\n", + "logZ_P A5 MS 0.0008021304682208005\n", + "DDG A5: -0.8981758462133184\n", + "DDG loss: 17.20526064393701\n", + "loss: 17.222476532959536\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-0.0007953, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(0.00080219, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(1.71440422, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-0.00079885, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(0.00080216, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.09681824, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-0.00079459, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(0.00080275, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(3.58513548, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(0.00080282, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(0.00080241, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.35231856, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(0.00080277, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(0.00080213, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.89817585, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(17.20526064, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [-6.15242626e-04 -7.10015104e-04 7.14578083e-04 4.06291326e-04\n", + " -1.46199242e-03 3.32958016e-05] \n", + "\n", + "New evaluation:\n", + "logZ_P A1 MD -0.000795297606057902\n", + "logZ_P A1 MS 0.0008021915785747251\n", + "DDG A1: 1.7144042289767878\n", + "logZ_P A2 MD -0.000798856713439309\n", + "logZ_P A2 MS 0.0008021596540360913\n", + "DDG A2: 1.096818245409447\n", + "logZ_P A3 MD -0.0007945950459073679\n", + "logZ_P A3 MS 0.000802752678204104\n", + "DDG A3: 3.585135483769825\n", + "logZ_P A4 MD 0.0008028254419894695\n", + "logZ_P A4 MS 0.0008024129481396643\n", + "DDG A4: -2.352318556073077\n", + "logZ_P A5 MD 0.0008027751084938063\n", + "logZ_P A5 MS 0.0008021317265663789\n", + "DDG A5: -0.8981758462168722\n", + "DDG loss: 17.205260577110625\n", + "loss: 17.22247653040249\n", + "logZ_P A1 MD Tracedwith\n", + " with primal = DeviceArray(-0.0007953, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A1 MS Tracedwith\n", + " with primal = DeviceArray(0.00080219, dtype=float64)\n", + " tangent = Traced\n", + "DDG A1: Tracedwith\n", + " with primal = DeviceArray(1.71440423, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MD Tracedwith\n", + " with primal = DeviceArray(-0.00079886, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A2 MS Tracedwith\n", + " with primal = DeviceArray(0.00080216, dtype=float64)\n", + " tangent = Traced\n", + "DDG A2: Tracedwith\n", + " with primal = DeviceArray(1.09681825, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MD Tracedwith\n", + " with primal = DeviceArray(-0.0007946, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A3 MS Tracedwith\n", + " with primal = DeviceArray(0.00080275, dtype=float64)\n", + " tangent = Traced\n", + "DDG A3: Tracedwith\n", + " with primal = DeviceArray(3.58513548, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MD Tracedwith\n", + " with primal = DeviceArray(0.00080283, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A4 MS Tracedwith\n", + " with primal = DeviceArray(0.00080241, dtype=float64)\n", + " tangent = Traced\n", + "DDG A4: Tracedwith\n", + " with primal = DeviceArray(-2.35231856, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MD Tracedwith\n", + " with primal = DeviceArray(0.00080278, dtype=float64)\n", + " tangent = Traced\n", + "logZ_P A5 MS Tracedwith\n", + " with primal = DeviceArray(0.00080213, dtype=float64)\n", + " tangent = Traced\n", + "DDG A5: Tracedwith\n", + " with primal = DeviceArray(-0.89817585, dtype=float64)\n", + " tangent = Traced\n", + "DDG loss: Tracedwith\n", + " with primal = DeviceArray(17.20526058, dtype=float64)\n", + " tangent = Traced\n", + "gradient: [-2.91040081e-08 5.51365247e-08 -3.08465133e-07 1.94233280e-07\n", + " 1.50277629e-07 1.99664596e-09] \n", + "\n", + "logZ_P A1 MD -0.000795297606057902\n", + "logZ_P A1 MS 0.0008021915785747251\n", + "DDG A1: 1.7144042289767878\n", + "logZ_P A2 MD -0.000798856713439309\n", + "logZ_P A2 MS 0.0008021596540360913\n", + "DDG A2: 1.096818245409447\n", + "logZ_P A3 MD -0.0007945950459073679\n", + "logZ_P A3 MS 0.000802752678204104\n", + "DDG A3: 3.585135483769825\n", + "logZ_P A4 MD 0.0008028254419894695\n", + "logZ_P A4 MS 0.0008024129481396643\n", + "DDG A4: -2.352318556073077\n", + "logZ_P A5 MD 0.0008027751084938063\n", + "logZ_P A5 MS 0.0008021317265663789\n", + "DDG A5: -0.8981758462168722\n", + "DDG loss: 17.205260577110625\n" + ] + } + ], + "source": [ + "Results = {}\n", + "\n", + "for beta in betas:\n", + " print('beta: ', beta)\n", + " \n", + " Results[beta] = minimizer(data, regularization = regularization, beta = beta)\n", + "\n", + " clear_output()" + ] + }, + { + "cell_type": "code", + "execution_count": 36, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "loss = [Results[beta].loss for beta in betas]\n", + "\n", + "plt.plot(betas, loss, '.--')\n", + "plt.xscale('log')\n", + "plt.title('loss function')\n", + "plt.xlabel(r'$\\beta$')\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 39, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "plt.plot(betas, [Results[beta].pars[:-1] for beta in betas], '.--')\n", + "plt.grid()\n", + "plt.xscale('log')\n", + "plt.title('$\\Delta Q$ parameters')\n", + "plt.xlabel(r'$\\beta$')\n", + "\n", + "plt.figure()\n", + "plt.plot(betas, [Results[beta].pars[-1] for beta in betas], '.--')\n", + "plt.xscale('log')\n", + "plt.grid()\n", + "plt.title('$V_\\eta$ parameter')\n", + "plt.show()\n" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3.6.8 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.6.8" + }, + "orig_nbformat": 4, + "vscode": { + "interpreter": { + "hash": "916dbcbb3f70747c44a77c7bcd40155683ae19c65e1c03b4aa3499c5328201f1" + } + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/Examples/Tutorial_2.ipynb b/Examples/Tutorial_2.ipynb new file mode 100644 index 0000000..17bf910 --- /dev/null +++ b/Examples/Tutorial_2.ipynb @@ -0,0 +1,1276 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Tutorial for Functions.py" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "import pandas\n", + "import matplotlib.pyplot as plt" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "import jax.numpy as jnp" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "from IPython.display import clear_output" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "from Functions import load_data, minimizer, select_traintest, hyper_minimizer" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "a simple script to unwrap dictionaries:" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "def unwrap_dict(d):\n", + "\n", + " res = []\n", + " \n", + " if isinstance(d, dict):\n", + " for val in d.values():\n", + " res.extend(unwrap_dict(val))\n", + " else:\n", + " if isinstance(d, list): res = d\n", + " else: res = [d]\n", + "\n", + " return np.hstack(res)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 4. Ensemble + forward-model refinement" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### a. Load data" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [], + "source": [ + "infos = {}\n", + "\n", + "# Define global properties, valid for all the systems:\n", + "infos['global'] = {}\n", + "infos['global']['path_directory'] = 'DATA2'\n", + "infos['global']['system_names'] = ['AAAA','CAAU']\n", + "\n", + "# Then, define properties which are specific of each system, like experimental data and observables\n", + "# If some properties are the same for all the systems, you can store them just once in infos['global']\n", + "infos['global']['g_exp'] = ['backbone1_gamma_3J']#, 'backbone2_beta_epsilon_3J', 'sugar_3J', 'NOEs']\n", + "infos['global']['forward_qs'] = ['backbone1_gamma']#, 'backbone2_beta_epsilon','sugar']\n", + "# infos['global']['obs'] = ['NOEs']\n", + "infos['global']['forward_coeffs'] = 'original_fm_coeffs'\n", + "\n", + "# Select the stride for the frames\n", + "stride = 1000" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [], + "source": [ + "def forward_model_fun(fm_coeffs, forward_qs, selected_obs = None):\n", + "\n", + " # 1. compute the cosine (which is the quantity you need in the forward model;\n", + " # you could do this just once before loading data)\n", + " forward_qs_cos = {}\n", + "\n", + " for type_name in forward_qs.keys():\n", + " forward_qs_cos[type_name] = jnp.cos(forward_qs[type_name])\n", + "\n", + " # if you have selected_obs, compute only the corresponding observables\n", + " if selected_obs is not None:\n", + " for type_name in forward_qs.keys():\n", + " forward_qs_cos[type_name] = forward_qs_cos[type_name][:,selected_obs[type_name+'_3J']]\n", + "\n", + " # 2. compute observables (forward_qs_out) through forward model\n", + " forward_qs_out = {\n", + " 'backbone1_gamma_3J': fm_coeffs[0]*forward_qs_cos['backbone1_gamma']**2-fm_coeffs[1]*forward_qs_cos['backbone1_gamma']+fm_coeffs[2]}#,\n", + " # 'backbone2_beta_epsilon_3J': fm_coeffs[3]*forward_qs_cos['backbone2_beta_epsilon']**2-fm_coeffs[4]*forward_qs_cos['backbone2_beta_epsilon']+fm_coeffs[5],\n", + " # 'sugar_3J': fm_coeffs[6]*forward_qs_cos['sugar']**2-fm_coeffs[7]*forward_qs_cos['sugar']+fm_coeffs[8] }\n", + "\n", + " return forward_qs_out" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [], + "source": [ + "infos['global']['forward_model'] = forward_model_fun" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "WARNING:absl:No GPU/TPU found, falling back to CPU. (Set TF_CPP_MIN_LOG_LEVEL=0 and rerun for more info.)\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "loading data from directory...\n", + "loading AAAA\n", + "loading CAAU\n", + "done\n" + ] + } + ], + "source": [ + "data = load_data(infos, stride = 1000)" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [], + "source": [ + "def forward_model_regularization(coeffs,coeffs_0):\n", + " regularization = (\n", + " 3/8*(coeffs[0]-coeffs_0['A_gamma'])**2+1/2*(coeffs[1]-coeffs_0['B_gamma'])**2+(coeffs[2]-coeffs_0['C_gamma'])**2+(coeffs[0]-coeffs_0['A_gamma'])*(coeffs[2]-coeffs_0['C_gamma'])+\n", + " 3/8*(coeffs[3]-coeffs_0['A_beta'])**2+1/2*(coeffs[4]-coeffs_0['B_beta'])**2+(coeffs[5]-coeffs_0['C_beta'])**2+(coeffs[3]-coeffs_0['A_beta'])*(coeffs[5]-coeffs_0['C_beta'])+\n", + " 3/8*(coeffs[6]-coeffs_0['A_sugar'])**2+1/2*(coeffs[7]-coeffs_0['B_sugar'])**2+(coeffs[8]-coeffs_0['C_sugar'])**2+(coeffs[6]-coeffs_0['A_sugar'])*(coeffs[8]-coeffs_0['C_sugar']))\n", + "\n", + " return regularization" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [], + "source": [ + "regularization = {'force_field_reg': 'KL divergence', 'forward_model_reg': forward_model_regularization}" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### b. Minimize" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [], + "source": [ + "Result = minimizer(data, regularization = regularization, alpha = 1, gamma = 1)" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "dict_keys(['loss', 'pars', 'mini', 'min_lambdas', 'minis', 'intermediates', 'time', 'reg_fm', 'D_KL_alpha', 'abs_difference', 'av_g', 'chi2', 'logZ_new', 'weights_new'])" + ] + }, + "execution_count": 14, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "vars(Result).keys()" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "dict_keys(['loss', 'pars', 'lambdas', 'minis'])" + ] + }, + "execution_count": 17, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "vars(Result.intermediates).keys()" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "plt.plot(Result.intermediates.loss, '.--')\n", + "plt.grid()\n", + "\n", + "plt.figure()\n", + "inter_pars = Result.intermediates.pars\n", + "for i in range(inter_pars.shape[1]):\n", + " plt.plot(Result.intermediates.pars[:,i], '.--')\n", + "plt.grid()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### c. Search for optimal hyper-parameters" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Input random_state employed both for test_obs and test_frames\n", + "log10 hyperpars: [DeviceArray(2., dtype=float64), DeviceArray(2., dtype=float64)] ['alpha', 'gamma']\n", + "tot chi2: 22.353376543097212\n", + "tot gradient: [0.66327126 4.05980457]\n", + "log10 hyperpars: [2. 2.] ['alpha', 'gamma']\n", + "tot chi2: 22.353376543097212\n", + "tot gradient: [0.66327126 4.05980457]\n", + "log10 hyperpars: [1.83715012 1.00321521] ['alpha', 'gamma']\n", + "tot chi2: 12.476867395008014\n", + "tot gradient: [ 0.54426244 15.14864544]\n", + "log10 hyperpars: [ 1.18575058 -2.98392394] ['alpha', 'gamma']\n", + "tot chi2: 0.901878355898672\n", + "tot gradient: [ 0.30855595 -0.03034611]\n" + ] + }, + { + "data": { + "text/plain": [ + " fun: 0.901878355898672\n", + " hess_inv: array([[1, 0],\n", + " [0, 1]])\n", + " jac: array([ 0.30855595, -0.03034611])\n", + " message: 'Optimization terminated successfully.'\n", + " nfev: 3\n", + " nit: 1\n", + " njev: 3\n", + " status: 0\n", + " success: True\n", + " x: array([ 1.18575058, -2.98392394])" + ] + }, + "execution_count": 23, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "hyper_minimizer(data, regularization = regularization, starting_alpha = 100, starting_gamma = 100, random_states = [0])\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 5. Fully combined refinement" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### a. Load data" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [], + "source": [ + "infos = {}\n", + "\n", + "# Define global properties, valid for all the systems:\n", + "infos['global'] = {}\n", + "infos['global']['path_directory'] = 'DATA2'\n", + "infos['global']['system_names'] = ['AAAA','CAAU']\n", + "\n", + "# Then, define properties which are specific of each system, like experimental data and observables\n", + "# If some properties are the same for all the systems, you can store them just once in infos['global']\n", + "infos['global']['g_exp'] = ['backbone1_gamma_3J']#, 'backbone2_beta_epsilon_3J', 'sugar_3J', 'NOEs']\n", + "infos['global']['forward_qs'] = ['backbone1_gamma']#, 'backbone2_beta_epsilon','sugar']\n", + "# infos['global']['obs'] = ['NOEs']\n", + "infos['global']['forward_coeffs'] = 'original_fm_coeffs'\n", + "\n", + "# Select the stride for the frames\n", + "stride = 1000" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [], + "source": [ + "def forward_model_fun(fm_coeffs, forward_qs, selected_obs = None):\n", + "\n", + " # 1. compute the cosine (which is the quantity you need in the forward model;\n", + " # you could do this just once before loading data)\n", + " forward_qs_cos = {}\n", + "\n", + " for type_name in forward_qs.keys():\n", + " forward_qs_cos[type_name] = jnp.cos(forward_qs[type_name])\n", + "\n", + " # if you have selected_obs, compute only the corresponding observables\n", + " if selected_obs is not None:\n", + " for type_name in forward_qs.keys():\n", + " forward_qs_cos[type_name] = forward_qs_cos[type_name][:,selected_obs[type_name+'_3J']]\n", + "\n", + " # 2. compute observables (forward_qs_out) through forward model\n", + " forward_qs_out = {\n", + " 'backbone1_gamma_3J': fm_coeffs[0]*forward_qs_cos['backbone1_gamma']**2-fm_coeffs[1]*forward_qs_cos['backbone1_gamma']+fm_coeffs[2]}#,\n", + " # 'backbone2_beta_epsilon_3J': fm_coeffs[3]*forward_qs_cos['backbone2_beta_epsilon']**2-fm_coeffs[4]*forward_qs_cos['backbone2_beta_epsilon']+fm_coeffs[5],\n", + " # 'sugar_3J': fm_coeffs[6]*forward_qs_cos['sugar']**2-fm_coeffs[7]*forward_qs_cos['sugar']+fm_coeffs[8] }\n", + "\n", + " return forward_qs_out" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [], + "source": [ + "infos['global']['forward_model'] = forward_model_fun" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [], + "source": [ + "def ff_correction(pars, f):\n", + "\n", + " out = jnp.matmul(pars, (f[:,[0,6,3,9]]+f[:,[1,7,4,10]]+f[:,[2,8,5,11]]).T)\n", + " return out" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [], + "source": [ + "infos['global']['ff_correction'] = ff_correction\n", + "infos['global']['names_ff_pars'] = ['sin alpha', 'cos alpha', 'sin zeta', 'cos zeta']" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "WARNING:absl:No GPU/TPU found, falling back to CPU. (Set TF_CPP_MIN_LOG_LEVEL=0 and rerun for more info.)\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "loading data from directory...\n", + "loading AAAA\n", + "loading CAAU\n", + "done\n" + ] + } + ], + "source": [ + "data = load_data(infos, stride = stride)" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [], + "source": [ + "def forward_model_regularization(coeffs,coeffs_0):\n", + " regularization = (\n", + " 3/8*(coeffs[0]-coeffs_0['A_gamma'])**2+1/2*(coeffs[1]-coeffs_0['B_gamma'])**2+(coeffs[2]-coeffs_0['C_gamma'])**2+(coeffs[0]-coeffs_0['A_gamma'])*(coeffs[2]-coeffs_0['C_gamma'])+\n", + " 3/8*(coeffs[3]-coeffs_0['A_beta'])**2+1/2*(coeffs[4]-coeffs_0['B_beta'])**2+(coeffs[5]-coeffs_0['C_beta'])**2+(coeffs[3]-coeffs_0['A_beta'])*(coeffs[5]-coeffs_0['C_beta'])+\n", + " 3/8*(coeffs[6]-coeffs_0['A_sugar'])**2+1/2*(coeffs[7]-coeffs_0['B_sugar'])**2+(coeffs[8]-coeffs_0['C_sugar'])**2+(coeffs[6]-coeffs_0['A_sugar'])*(coeffs[8]-coeffs_0['C_sugar']))\n", + "\n", + " return regularization" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [], + "source": [ + "regularization = {'force_field_reg': 'KL divergence', 'forward_model_reg': forward_model_regularization}" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### b. Minimize" + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "metadata": {}, + "outputs": [], + "source": [ + "Result = minimizer(data, regularization = regularization, alpha = 1, beta = 1, gamma = 1)" + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "dict_keys(['loss', 'pars', 'mini', 'min_lambdas', 'minis', 'intermediates', 'time', 'weights_P', 'logZ_P', 'reg_ff', 'reg_fm', 'D_KL_alpha', 'abs_difference', 'av_g', 'chi2', 'logZ_new', 'weights_new'])" + ] + }, + "execution_count": 33, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "vars(Result).keys()" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([ 0.20581379, 0.1166485 , -0.11218685, -0.28415164, 11.25801233,\n", + " -1.01921506, -1.57684089, 19.39833519, -3.0390469 , -3.33549634,\n", + " 9.21284667, 0.49126669, -0.47351348])" + ] + }, + "execution_count": 17, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "Result.pars" + ] + }, + { + "cell_type": "code", + "execution_count": 60, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + " fun: 2.282926673913012\n", + " hess_inv: array([[ 5.37846378e-01, -5.94041901e-03, -4.42145688e-01,\n", + " -1.97232898e-02, 1.63245143e-02, -5.57596041e-03,\n", + " -3.18368396e-02, 0.00000000e+00, 0.00000000e+00,\n", + " 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,\n", + " 0.00000000e+00],\n", + " [-5.94041901e-03, 9.98539836e-01, -1.45645109e-03,\n", + " -1.93951817e-02, 3.69293674e-02, 1.24948465e-02,\n", + " -5.56885853e-02, 0.00000000e+00, 0.00000000e+00,\n", + " 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,\n", + " 0.00000000e+00],\n", + " [-4.42145688e-01, -1.45645109e-03, 5.77666109e-01,\n", + " -3.13187555e-02, 2.83026623e-02, 1.90902714e-02,\n", + " -3.40369824e-02, 0.00000000e+00, 0.00000000e+00,\n", + " 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,\n", + " 0.00000000e+00],\n", + " [-1.97232898e-02, -1.93951817e-02, -3.13187555e-02,\n", + " 1.10665744e+00, -2.77246136e-01, -1.39975049e-01,\n", + " 2.38985340e-01, 0.00000000e+00, 0.00000000e+00,\n", + " 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,\n", + " 0.00000000e+00],\n", + " [ 1.63245143e-02, 3.69293674e-02, 2.83026623e-02,\n", + " -2.77246136e-01, 3.83731690e+00, -1.39130960e-02,\n", + " -1.85084491e+00, 0.00000000e+00, 0.00000000e+00,\n", + " 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,\n", + " 0.00000000e+00],\n", + " [-5.57596041e-03, 1.24948465e-02, 1.90902714e-02,\n", + " -1.39975049e-01, -1.39130960e-02, 9.32084908e-01,\n", + " 1.19996771e-01, 0.00000000e+00, 0.00000000e+00,\n", + " 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,\n", + " 0.00000000e+00],\n", + " [-3.18368396e-02, -5.56885853e-02, -3.40369824e-02,\n", + " 2.38985340e-01, -1.85084491e+00, 1.19996771e-01,\n", + " 1.15669479e+00, 0.00000000e+00, 0.00000000e+00,\n", + " 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,\n", + " 0.00000000e+00],\n", + " [ 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,\n", + " 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,\n", + " 0.00000000e+00, 1.00000000e+00, 0.00000000e+00,\n", + " 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,\n", + " 0.00000000e+00],\n", + " [ 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,\n", + " 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,\n", + " 0.00000000e+00, 0.00000000e+00, 1.00000000e+00,\n", + " 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,\n", + " 0.00000000e+00],\n", + " [ 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,\n", + " 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,\n", + " 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,\n", + " 1.00000000e+00, 0.00000000e+00, 0.00000000e+00,\n", + " 0.00000000e+00],\n", + " [ 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,\n", + " 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,\n", + " 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,\n", + " 0.00000000e+00, 1.00000000e+00, 0.00000000e+00,\n", + " 0.00000000e+00],\n", + " [ 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,\n", + " 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,\n", + " 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,\n", + " 0.00000000e+00, 0.00000000e+00, 1.00000000e+00,\n", + " 0.00000000e+00],\n", + " [ 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,\n", + " 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,\n", + " 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,\n", + " 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,\n", + " 1.00000000e+00]])\n", + " jac: array([ 9.10943832e-04, 9.48926718e-05, 1.01822167e-03, -6.04991637e-04,\n", + " -3.21633796e-03, 5.80545772e-03, -1.25498301e-02, 0.00000000e+00,\n", + " 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,\n", + " 0.00000000e+00])\n", + " message: 'Desired error not necessarily achieved due to precision loss.'\n", + " nfev: 28\n", + " nit: 8\n", + " njev: 16\n", + " status: 2\n", + " success: False\n", + " x: array([ 5.02429525e-03, 6.23337753e-04, 2.19472168e-02, -2.28883903e-02,\n", + " 1.12976920e+01, -9.88251603e-01, -1.62075450e+00, 1.53000000e+01,\n", + " -6.10000000e+00, 1.60000000e+00, 9.67000000e+00, -2.03000000e+00,\n", + " 0.00000000e+00])" + ] + }, + "execution_count": 60, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "Result.mini" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'AAAA': fun: -10.507619992690685\n", + " hess_inv: array([[1, 0, 0, ..., 0, 0, 0],\n", + " [0, 1, 0, ..., 0, 0, 0],\n", + " [0, 0, 1, ..., 0, 0, 0],\n", + " ...,\n", + " [0, 0, 0, ..., 1, 0, 0],\n", + " [0, 0, 0, ..., 0, 1, 0],\n", + " [0, 0, 0, ..., 0, 0, 1]])\n", + " jac: array([-5.49653570e-05, -5.47391650e-05, 2.11852284e-04, 3.88328320e-05,\n", + " 1.16655592e-04, -1.15083849e-06, -2.84512042e-04, -1.31942980e-04,\n", + " -1.18534050e-05, -1.90803831e-04, 1.35917176e-04, 5.12378532e-05,\n", + " 1.47919389e-05, -2.40391759e-05, 1.45694660e-04, 1.06335639e-04,\n", + " -1.59983452e-06, 5.44929690e-04, -1.50328426e-04, 1.46868358e-05,\n", + " 1.89647116e-04, -1.12882226e-04, -1.61548533e-05, -7.47772014e-04,\n", + " -1.19459748e-04, 2.01931719e-04, -5.55774763e-05, 1.71100412e-04,\n", + " -1.62825692e-05, -6.40423500e-05, 5.29456805e-05, -3.19958137e-05,\n", + " 1.17196685e-04, 8.02226254e-05, 1.14117897e-04, -1.19123958e-06,\n", + " 1.26342341e-04, 2.92529391e-04, -4.84339139e-05, 3.80221264e-05,\n", + " -2.53899376e-04, 2.39492997e-04, -4.15414952e-05, 4.58540616e-05,\n", + " 6.55607781e-05, -4.57353750e-05, 5.23955707e-05, 1.24070980e-04,\n", + " -6.09606095e-05, -4.53515106e-05, 6.97996722e-04, -4.39119408e-05,\n", + " -2.23537220e-05, 2.85294318e-06, 3.33116552e-05, 1.00933736e-04,\n", + " -5.94451436e-05, -4.34817129e-05, -1.78408980e-04, 3.80133796e-04,\n", + " -1.56375331e-05, -8.25139672e-05, -1.50700918e-04, -3.21820257e-05])\n", + " message: 'Optimization terminated successfully.'\n", + " nfev: 1\n", + " nit: 0\n", + " njev: 1\n", + " status: 0\n", + " success: True\n", + " x: array([ 3.19794372e+00, -4.76285851e-02, -2.94627128e+00, -2.98133982e+00,\n", + " 5.96417743e-01, -6.79291892e-01, -2.93040027e+00, 5.11601246e-01,\n", + " -5.13960606e+01, -6.77016985e+01, -1.97258077e+01, -6.07079487e+01,\n", + " -6.35390033e+01, -2.53599661e+01, -2.19751554e+01, -2.84679056e+01,\n", + " -5.27110621e+01, -7.12696813e-02, -2.88848760e+01, -8.40525674e+00,\n", + " 2.58968947e-01, -3.00454618e+01, 2.88101645e+00, -6.40675806e-02,\n", + " -2.06577573e+01, 9.16944505e+00, 9.51985485e-01, 1.43011091e+00,\n", + " 6.81733264e+00, 2.27533581e-01, 1.87960508e+00, 2.64573097e+00,\n", + " -4.91016683e-01, -4.97076642e-01, 8.50621583e-01, -3.91679749e-01,\n", + " 4.20538687e-01, -4.74271804e-01, 2.30285368e+00, 3.67535509e+00,\n", + " 1.12041848e+01, -8.79598285e-01, -3.17185171e-01, 3.37941809e+00,\n", + " 5.25019293e-01, 3.43920829e+00, -8.54367605e-01, 8.38716722e-01,\n", + " 5.79166732e+00, 1.33911846e+00, -5.57121998e-01, 2.32750938e+00,\n", + " 1.06418551e+00, 2.61320577e+00, 1.52518213e+00, 5.03779685e-01,\n", + " -2.83341040e-01, -6.34425778e-01, -4.48219939e-01, -9.74790210e-01,\n", + " 1.73548164e+00, 2.13883411e+00, 4.65333167e-01, 4.88691636e+00]),\n", + " 'CAAU': fun: -8.339236967245341\n", + " hess_inv: array([[1, 0, 0, ..., 0, 0, 0],\n", + " [0, 1, 0, ..., 0, 0, 0],\n", + " [0, 0, 1, ..., 0, 0, 0],\n", + " ...,\n", + " [0, 0, 0, ..., 1, 0, 0],\n", + " [0, 0, 0, ..., 0, 1, 0],\n", + " [0, 0, 0, ..., 0, 0, 1]])\n", + " jac: array([ 4.46961171e-05, -4.37250639e-04, 4.58686673e-05, 7.66772014e-05,\n", + " 2.18038856e-04, -7.46131018e-05, -9.74278597e-05, 4.47298930e-05,\n", + " -7.01089632e-05, -6.64117879e-05, -6.42907823e-05, -1.66118136e-04,\n", + " 6.92381572e-06, 2.10029675e-04, 2.61500643e-04, -7.03908253e-05,\n", + " -7.99612713e-04, -7.09311682e-05, 9.94195256e-05, -3.93097728e-06,\n", + " -4.26560568e-05, -4.30405744e-04, -8.58160147e-04, 6.12037430e-05,\n", + " 9.03986768e-05, -3.94067487e-05, -8.07436975e-05, -2.77923793e-05,\n", + " -1.27118683e-04, -2.84962735e-04, -3.75741160e-04, -5.29132550e-04,\n", + " -5.14765185e-05, 1.35142301e-05, -9.02107979e-05, 2.26872684e-04,\n", + " -1.58377795e-06, -1.68827659e-04, -1.72351624e-04, 1.60316840e-04,\n", + " -7.37894710e-07, 1.36179521e-04, 3.22751910e-04, -9.66095011e-05,\n", + " 7.02128909e-04, -3.31089975e-04, 4.65615554e-04, 1.43072782e-04,\n", + " -4.42820099e-04, -2.46359240e-04, -5.84813635e-04, -1.73765440e-05,\n", + " -2.35210082e-04, -5.31405631e-04, -2.68460581e-04, -5.09201836e-04,\n", + " 3.93616331e-04, -1.35158586e-04, -5.62720843e-04, -1.82369860e-04,\n", + " -1.50608702e-04, 9.99700353e-04, 2.40205074e-04, -3.44239808e-04,\n", + " 2.13787806e-04, -2.93632608e-04])\n", + " message: 'Optimization terminated successfully.'\n", + " nfev: 1\n", + " nit: 0\n", + " njev: 1\n", + " status: 0\n", + " success: True\n", + " x: array([-2.05684813e+00, 1.17615450e+00, 1.23784158e+00, 8.69094700e-01,\n", + " -1.36457695e+00, -2.26140465e+00, -4.23503357e+00, -3.37843168e+00,\n", + " -3.90696128e+01, -5.93426769e+00, -8.25760090e+01, -5.55822197e+01,\n", + " -1.21314427e+01, -4.78655385e+01, 1.85803581e-01, 2.90486792e+00,\n", + " 5.04149124e-02, -9.56276100e+00, 7.22610527e+00, -3.03464606e-01,\n", + " -6.37486019e-01, 6.74597334e+00, -2.70817843e-01, -2.74519497e+00,\n", + " 6.91486612e+00, -3.50262819e+00, -3.95666886e+01, 1.31792982e+00,\n", + " 2.85525426e-02, 1.35629386e-01, -3.78971312e-01, 9.89406798e-01,\n", + " 3.82511955e-01, 2.78305729e+00, 1.31248460e+00, 7.95238104e-01,\n", + " -2.43945324e-01, 1.64198936e+00, -7.03994280e-02, 2.07296785e+00,\n", + " 5.36111348e+00, 4.90023648e-01, -7.38015295e-01, -7.14160569e-01,\n", + " -1.42606084e-01, 3.02742243e+00, 3.66489174e-01, -1.51216765e-01,\n", + " 1.95107229e+00, 1.63242265e+00, 4.42265421e-01, -1.56554368e-01,\n", + " -3.38174145e-01, -3.23544700e-01, -1.14941493e-01, 4.87952914e-01,\n", + " 2.49465147e-01, -1.97166863e-01, -2.50050200e-01, -4.07009194e-01,\n", + " 4.00764195e-01, -3.29475632e-01, 4.43374214e-02, -2.01448851e-01,\n", + " -1.13904052e-01, 1.64174285e-01])}" + ] + }, + "execution_count": 19, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "Result.minis" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "dict_keys(['loss', 'pars', 'lambdas', 'minis'])" + ] + }, + "execution_count": 16, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "vars(Result.intermediates).keys()" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(28, 16)" + ] + }, + "execution_count": 17, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "np.array(Result.intermediates.lambdas).shape" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "inter_loss = Result.intermediates.loss\n", + "plt.plot(inter_loss, '.--')\n", + "\n", + "plt.figure()\n", + "\n", + "inter_lambdas = np.array(Result.intermediates.lambdas)\n", + "plt.plot(inter_lambdas[:,0], '.--')\n", + "\n", + "plt.figure()\n", + "plt.plot(Result.intermediates.pars, '.--')\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'AAAA': DeviceArray(3.4269942e-05, dtype=float64),\n", + " 'CAAU': DeviceArray(3.84937797e-05, dtype=float64)}" + ] + }, + "execution_count": 19, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "Result.abs_difference" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### c. Determine optimal hyper-parameters through cross validation" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Input random_state employed both for test_obs and test_frames\n" + ] + } + ], + "source": [ + "data_train, data_test, test_obs, test_frames = select_traintest(data, random_state = 1)" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": {}, + "outputs": [], + "source": [ + "delta = 2.0\n", + "\n", + "log10_alphas = np.arange(-2,2+delta,delta)\n", + "log10_betas = np.array([-2.0,0.0,2.0])\n", + "log10_gammas = log10_alphas\n", + "\n", + "Results = {}\n", + "\n", + "for log10_alpha in log10_alphas:\n", + " Results[log10_alpha] = {}\n", + " for log10_beta in log10_betas:\n", + " Results[log10_alpha][log10_beta] = {}\n", + " for log10_gamma in log10_gammas:\n", + " print(log10_alpha, log10_beta, log10_gamma)\n", + " Results[log10_alpha][log10_beta][log10_gamma] = minimizer(data_train, regularization = regularization, alpha = 10**log10_alpha, beta = 10**log10_beta, gamma = 10**log10_gamma, data_test = data_test)\n", + "\n", + " clear_output()" + ] + }, + { + "cell_type": "code", + "execution_count": 127, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXAAAAD8CAYAAABuHP8oAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAAsTAAALEwEAmpwYAABlC0lEQVR4nO2deXxU1fn/3+fOmplJJvu+EwhhD0EBFQSUVcV9RXHXaqvf2lrtpq1tbf12se3vq9VaqxU33JcqoqDgLjvKvidAWLLvmfWe3x93GAghEJJAFs779RoyM8/ZnrnhkzPPPec5QkqJQqFQKHofWncPQKFQKBQdQwm4QqFQ9FKUgCsUCkUvRQm4QqFQ9FKUgCsUCkUvRQm4QqFQ9FKOKeBCiGeEEGVCiLWHvBcrhFgghNgS+hlzYoepUCgUisNpzwz8P8C0w977KfCxlLI/8HHotUKhUChOIqI9G3mEENnAe1LKIaHXm4AJUsq9QogUYLGUMv+EjlShUCgULTB3sF6SlHJv6Pk+IKk9leLj42V2dnaHOmxsbMTpdHaobk+jr/jSV/wA5UtPpa/40lk/VqxYUSGlTDj8/Y4KeBgppRRCtDmNF0LcBtwGkJSUxJ///OcO9dPQ0IDL5erYIHsYfcWXvuIHKF96Kn3Fl876MXHixJIjGqSUx3wA2cDaQ15vAlJCz1OATe1pp6ioSHaURYsWdbhuT6Ov+NJX/JBS+dJT6Su+dNYPYLk8gqZ2dBnhu8D1oefXA+90sB2FQqFQdJD2LCN8GfgayBdC7BZC3Aw8AkwWQmwBzg29VigUCsVJ5JgxcCnl1W2YzunisSgUCoXiOFA7MRUKhaKXogRcoVAoeilKwBUKheIE4i2pI2abwFtS1+Vtd3oduEKhUHQVUkrQJTIg8RXXErNV4M2pw5LiRG8OgC5BAlIiJZijbQizRrDRT7DOB/KgHQmWFCfCrBGo8RCs8iAPsSHB1s+NMGn49zcSKG8+zC6JGJaA0AzxDZQ1gQyNUQICXKNTAPBsqsK//1C7RJg1rJlRVDy9hli/oKJ4DfG3DMWWFdVln5cScIWiDxGe7eXUHVUoDgglgDBpyKAkWOtFBnUISmRARwZ0zDF2TG4benMAz5ZqZECHgEQGdWRAYu8fjSXZSaDKQ8PXewz7gfpBievMVGyZUfh21VPz/nZkUEJAD9ePvXwAthw3zWsrqJy7EYIhcQwRi6CiZA2us1KpX7S7lR9JPxyJJdlJ0+oyav+7vZU9+f7TMMfYaVpZRt1HrffCpD44BuHQaFpZRv2nrdtPGxoPCJpWldH4zd6WRrMIC3jTt+U0rSxrYdYcZlzj0pEBHYFABnS822uVgCsUpyJSl+jNAfRGP3qTH73RjynKhjUjEhnQqZizHu+WamKloHzrt5hi7bjGphJ5Vhp6k599f1kRElY9LJRRU7KImpRJsM7Lvj8ua9Wn+/xcIs9KI1jnpeqlja3s2qX9sSQ70Rv9hsCZNYRZIEwawqwhmwNGQQFCEwirCWESCLNm/LQbEmSOjyDyzDQI2bw7avFsqQkLn/TrOGekAxIpMH4CPrMPC04i8mPxBBtCNsMqkTT76onEjn14HA3mWmMDDAA6AHW1lUQ7krGflkC1vSLUqlFXlzrV+/cQm5qO/axE9jtLQerhtnU9SETpLuLSMrBNSmCXcys6emiTjY7UdSIbfNiCQTShoes69ZZqosjost8JJeAKRTcgpUT6gki/jsllBaDpu3KCtV70RkOkg41+rGkuos7JBGDPQ18jvcEW7ThGJRGbEQkmgW93PUgQCOOnJtAijP/iwqIRMSQOYdbAZIgsJoEl09jerTktOM/PIBj0owsdHR1dBml0NxIJmGMj4MIomhrqCMoAwaCfYNBPvWcTBSRjzYik7Kxqasv2owcCBP1+ggE/0Wu3Mib/KqzpkawIfELtnn0hW4BgwE9a3SAm3/YDLMlO3vjwEeorKwj6/cRak5mQfFVY+BqjG3nz6d/ia25u4f/Qc6Yy5ba7MMdHMOfxH7f6nIvOu5AJs28Fp8bLj/+slX3MpVdz5hWz8Jt8vPHkQ63s46+9idjUdJp99bz/9J9a2c+95fvEpWXQUFfFwjlPtLIPGDuOqv07SLClU+7dzcDySaQx7Ei/Eh1CCbhC0UUE630E633h2bHeGECYNZynJwNQ/cYWfLvqCYbsBCW2XDcJtxn/oes+KiFQ0QyaQHOa0RwWzPER4fYjJ2UQ1P0ERAA/XrzBJvYFdxEj+yOEYE/qThI2JxiiJ3WW7vkIz5tNXFP0F4TFxKqaT9j41WdhcQ0GAjii3Nzx1AtoVhOffv0825YvaeGTOzGJW/7v3wiLxtcLX2Hn2u9a2BMysykYdzYAG7/4lLKS7ZjMZkxmCyaLBb/Pd/DzCfhBgNXhMMpYLEQlHsyDl3/GeAI+Lyazhb1bN7J481wS7Zlh4Tv72pvRg0FjJi80EILY1LRw/Rk/+DFoGkIYdqEJYpJTATBbrFz8018Z7x9id4f6j4iM5Orf/umgXTPaj4yNC30Oidz41ydb1BVCwx4ZCUB8ZjZ3PPUChOoKIdA0jf3F23lzxYNU1JVitljIGDy0E79hrVECrjjlOTxuLHVpiHBTAN0TwJZpxCyb1pTjK6kPhzCCjX6EWSPxe8MBqHptM97N1S3aNsdHhAUcs8AUY8OS7kJzWsAKQYdOMODHZLagTY+mfNsemppqaW6oo7mujuZldcwc/wvsLhff7V3EkrdebTX+vPFnYLVHULzvO9btKyfRnkmZZyfBGIiPyQqXS8zORQ8Gw+JpsliwRjjC9hFTzydv1JiwzWS2YDvEPvnWuwj4fWGbyWzGbLWF7Vf/tvUM9VDOu/snR7WfecWs8PM9mzfw2m9/QWXd3rDwpQ4oOGr9gnET27RpJhO5hae1aTeZLUdt32S2EJuafhS7GYc7utX7GQVDuPyBh/n0vXc5+/yZx/TheFECrjglkbokUNZE07flNHxRSqxfUL7tO4RFQ/qCB2+kmQRpvzsTIQSeTdU0f1eO5rCguSzGDDn6oIBFjEkgmC3w6s14gk00++ppat6JozyTqIREqjOq+eLLOTTX1+GpryfgN2ans//0GAmZ2ZTu3sgnLz4VntlFREYRERlFwOcFXGSPKMLuCr0fFRWyuzFbjRDMmVdc20L0Lv/+wy0EY8jEyQyZOLnNzyR7WOFRP7Po5JSOfdgdIHVAwQkVvpNJ6oACUkbuPyE+KAFXnDL49jbStLoM3856/KX1SJ8etgkE6BJzogNbnpugOUhA+PDpHuorK4iKT0A7K4rNDYtprq+jub6e5tI6muvrODfnDnIKR1Hm3clb/2wdR00dOIiohEQsdjuR8Qkk5vQLi3NEVBTOaONEwsFnn8PAM8/G7nAaX+EPI33gYNIHDm7Tv74kenBihe9ksm97LeXrJfsya0nOdXdp20rAFX0O3RvAt7sB3656fLvqiTonE2uqi0B5Ew1flGJJcRIxMhFvRDOlWzYSvzM+HDdevOpp9n9W3KK9c26+kxFTZuDzNLF28YKw+DqioohLS8fuMuKgSTl5zPzRz1vMkO2uSDSTCYCMQUPJGNR2DNRqj2jT1l76iuhB1wjfgTXbQjOWpwT9OrqUSN1YRy51idAEttDN3uZ6H8FAKF1rqIzJrOGKMb5p1exvIhgIrTTRjfatEWaiE41Q074dtegH6kuoLG3g6ze3EQxI3tmwigvvKexSEVcCrujVyNCaY81mwl/eROULG8IbLgDMcXb0Bj8A1v5RbM3byN7tmyj7Zls4hBFnSw3fLLNkuDhj2qwWIhyXbqwCSczO5a7/vNbmWJzRMfQffcaJdfgYdJXo6bo0xC4oCQZ0IlwWNJNGU52PxhovwYBO0K8TDOoEA5LMglhMFo2ykjrKd9Yb9oBRVw/ojJqRjWbS2LqijF3rKwkGD9iMvs6707iRu+z9HWxfXY63KUB9pQeAN9as4NKfFJGc62bRCxvZ8W25Ib4hEXW6rVzz6zEAvP+P79i5rjJsR0JMsiNsf+fvq9i7tbaFv4nZUVz+01Eh+2oqdze0sKflx3DRPUZ46b//t5q6Ck8Le87weGbcYYx/3j++o7nef8TPNRjUKd1crQRccWoipSRY68O3qw7frgZ8u+rw727ANS4N95RsTFFWzNE2LAMiqRNV7K/dwZ7ijUR9lsS5A+7EHGFj2+olOKNjGD5lBsl5A9BMJj547C8H48az/6fHz171oI63KUBzgx9Pox9Pg5+knCjqKz28/ehKggHJm2tXkD4wBqvdgh7UGT0zl7g0FzvXVbLk3e0EAxI9qIeF9vwfDCc+3cW6z0tZ/NKmFptpAGY9NIboJAebvtnHV29ubTWmG/73TJxuGzu+q2D5+8Wt7CMmZ2I1aVSWNlC8thKTScNk0dBMApNZQ0qJEAJrhBlXjB09eMhyQUlY+BKzIkMrQAitCAGb0xIumjsinthUZwt7RKQ1bB88Lo3sofGhlSZGGYf7oH3U9Gy8Tf5QH0YZZ9TB+xzjrhxAwKejaSK8tt0RdbD+1FuHoOsy3HfV3ka+fG0rwaCOyaSRNiDmeC71MVECruix6B4jFEJQx54fCxL2P7rCuMloElhTXdhHJuCJ9OIGNJuZz8veYPv80IYUIYhPzyQxp1+4zZv+9hRCiBb9uGJiuy1uHAzoeBr9mC0aNocFT6OfbSvLDHE+RKCHTUonc1Ace7bW8NafV7ZqZ9ptQ6gpayIYNJRX6lBWXI8jyopm0giE4v0ms4bdZcVkNoRTC/202o0wT3xGJKOmZ2MyCzSzFhZau8sQyZzh8UQnRYTqapjMGiazwB4S0RHnZDBkXFq4XZPZEOkDn/nombmMnpnb5ucxfFIGwydlsG97Le/8dRWBgI7ZfFD4Bo9La7MuQMEZqUe1549OPqo9ryjxqPbsofFHtR8u0GkDYkjIiOTz+SsZN61rwyegBFzRw2j6thzP5mp8u+oJlBuhEEuqE3t+rBGrnJJIWfkO9pRvZu+2zZR/sQOLzcYPRr+C0DT6FY0mvWAIyXkDSMrp12KZHNBKvKFr48a6LqksbQgL7wERTs5xkzEoluZ6H+899i2eRj/NDX78HmNjzhmX5FE4JRNPo5/FL24CwGwzYXeaiXBZwwLsjo/gtPOysbus2F1mIpxW7C4L7oQInNE2zGYtLHrn/2B4K8FIy48hLb/tWWBSdhRJ2W1v9Y5OchCd5GjTbnNYsLVtbjfJuW4uvKfwhAnfySQ5103CIHFCfFACrjjpGKEQL76dxk3GQJWH+OsGAdC8rgLv1hosGZGY8hzUUUVxzVpimgdijXCwqfRrvnnzFWwOJ0n9+nP6hZeTnDfA+AoODDt32nGP5/C4sZSSgE+nucGHtzFAc4MPW4SFpBxD2L54dQtNdd6wCHsa/eSNTOTMy/ojpeTVh1tvSR85NZOMQbGGKLssRCc7sDstRLgs2J0WkvtFAxAVZ+f6P5yJ3WXGbDG1ascZbeP0C448g+1LogcnVvj6Cp0ScCHE/wC3AgL4l5Tyb10xKEXfQvcEjBwYmqBhyV7qFpagH7jRYzZCIbo3iGYz4RupsXT3x+xbspnG6ioANJOZvDPHktyvP0PPmUbBuInEJKcecaldu8ekS6r3NrJl+X5WfrgTqR9cJbDw2fXUlrfcsn3ojaqSdZVIXWJ3WXBG24hPcxGfbmxJN5k0pn9vKDaHGbvTgj0k0CazMVaL1cQFd41oc1ya6eCKh46gRO/UosMCLoQYgiHepwM+YL4Q4j0pZes7HIpTBhmU+Pc1hpfwHQiFJN5ViDXVhSnKiq2fG6/DS5V3L7v3b2Tvlk2cuepaBow5C0xQtWcXmUOGk9xvACn9B5CQlYvZYsRYo+ITjn9MUtJU68MZ2nTzyfMb2LJsfzgscYADqwSGTkgnGNDD4mt3WXAdsmFn1kNjjtpf7ojjH6NC0RE6MwMvAJZIKZsAhBCfApcAf+yKgSl6Nge2nzfFVYAusaQ4sSQ68G6roeKZtQBoTjOW9EhEro26+kricRFMguff+zlBvzEDd7ijSc4bgM1hzGBT+udz09/+2amxNdZ62be9lrLi+vCyNqlLbnl0PEITRCc5GHRmKonZUQgNFs3ZSCBwcJWAmr0qegudEfC1wMNCiDigGZgBLO+SUSl6NJ5NVVQ8t55YXVC1ZQMAUZOzsJyTiTUzksBYC/vritm9cz37Pt+Mp7GBQeMnMT3/RzhjYhl1/iUkZOWQkjeAyPiEI95YbC9NdT7KSuooK64zlqrZzaxZvJsVH5SgaYK4dBd5RYkkZkWh6xKTJhg5JatFG1FxEX0mbqw4tRBSymOXaquyEDcDdwKNwDrAK6X84WFlbgNuA0hKSiqaO3duh/pqaGjA5XJ1eKw9iV7tiw45H2uYgoboSiR7HfvZ7txBctHpAKyb+yyemioiYuNxJqbgTEzGlZKGPSauU10fWCvcXCUpXy/xVIG/6aA9Z7LAESfwNUgCXrBHg2Zq3x+HXn1NDkP50vPorB8TJ05cIaUcdfj7nRLwFg0J8Xtgt5TyH22VGTVqlFy+vGOT9MWLFzNhwoQOjq5n0dt8CVR7aPq2nMiz0xFCsO2ZzzBvDCKEMLaf75uLKTWC6x75OwDVe0txxcRhsds73KffG6R8Z314dl1WUs+Yi/qRV5TIvu21LHx2PYlZkSRmR5GYFUV8hgurveNfKHvbNTkaypeeR2f9EEIcUcA7uwolUUpZJoTIxIh/H/3ujqJX4S9von7xbppWlYGAiEFxWBIdLN/1Ac37Ko20pd5d9Jt+JuOuvj5cLybl6JstDifgD1K5uxGzVSMuzUVDtYc5P/+KA3MLV4yNxKwo7E7j1zU51821vx3bZX4qFL2Vzq4DfyMUA/cD35dS1nR+SIruJtjgo+adbTSvrTCOxRpgYdWuBQzeZaFf4mhGX3g57/z5d+Ht5/1CoZPjYcNXe9i3o47yknoqSxvQg5L8Mcmce8Og8Frn+HQXCVmRON0dX1anUPRlOiXgUspxXTUQRfcTbPRjclrQbGb8+xoJ5Gss2/IeOz9Yg8MdTf/mswDIHjGSyx88dtpSqUtqypooK6mnrLgOzSQ487L+AKz6aCeNtT4SsyIZcW4miVmR4Y0yQghGzcg+KT4rFL0ZtRPzFEdKiXdrDXWf7CJY7SH5J6OM47P877P9g2VEJSRxzk13MHjiuVgOOX1FM6ditp+OZk4Nt3PoWusvXtvC+i/3hLeKm60aGQWx4foX/WgkES5LOM2nQqE4fpSAn6JIXeLZUEndol34dzegRVpoSG0k3uvD4rBTMH4i+WeMI/+M8ZjMLX9N9m2v5e2/riLol7y5diWJWS5qyz34mgLc+vfxmC0m3AkR5I9ONm40ZkURk+I0MriFODSDm0Kh6BhKwE9RvFtrqHx+A1qMlZp+dXy1/FXqv6vk/IE28seexcAzxrdZt3RzNUG/sYtR6pL6Sg85w+JJzI5ChjY3Dp3Q9vmBCkV7aFq1Csf8+TS53TgKj37cW0/mRPqhBPwUQQZ0Glfuh6DENTYVc7aTstwyvv7mNTyNDWQOHcG0u35ExuBhR6zfWOPlu0W7SB0QQ9qAGEwWjaBfx2TRmP69YWoDTA+hO0RP6joyEED6/Ei/D81mQ3M4kD4fvpISpN/f4mHNzsaSkkKwtpaGzz4L1Tv4cI0fR7C+np033IjL66Xkv+8ROW0alvh4pNSJvvRS7Pn5eDZvpvrFl0DXkcbxOKBL4m6+CVteHs2rV1M153nDpstwucQf/xhbTg4Nn39B1Zw5oOsgdaQuQUpSf/8wlrQ06ubNO2L9zH/+E3NCAtUvv0zVCy8a9XXjlB50nZy338LkclHxxBNUPTeHYE0NLmDn/A/JfPaZLr0uSsD7OLovSOPSfTR8tptgnQ9rbhTOMSmYLBY2FH9B+qChjL7IyOh3JKr2NLJq4U42L9mH1CVmq4nTzsvhoj6U9a43I30+gnV1BGtraVq2nP0PP4wrEAiLhW/bNvTGxhYCacsfSNTUKQDs/dWvkV5vSwE9ezwxV12F7vVSMuvaVgIcM+sa4m+9lUBVFVvGnw2BQIsxJfz4R8Tfeiv+ffvYfsHMVmNOeuCXxM6ahX/fPvb85L5WdlNsDIH9ZUi/HwEQDFL/0UdoVitoGs6xY7Hn5xOsqqL+44+NnbxCgKaBJoi+7FIAgnV1eNavD78vhAaahvQZJzFJv49gba1RX9NCbQjCe2PMZjSHo1V9QkfkmWJisfXvb9zHOWAThJOsWXNysaSnE6ypQQDS76dp6TIl4Ir20by2guq3tqA3BtDS7Oywb+a7bxZw0zX/IsIVyZW//t/wieZH4tOXN7H201LMFo3BZ6Uy/NxM3AnGuY0q613Xons8BGtrCdbUgtSxDxwIQM0bb+ArLjFsoYctN5fkBx8AYOu0aQT27G3R1qFiUfWf/xCsrm5hd19ySVjAG7/4AqREWCwIqwUsFvQG40gxYTJhio1BWKyGPfSwZhmpCLSICOJuvrmFTVgsRIQEyhwfT9rf/trKbsk0jqiz5uTQb/4HCIvRr2G3otltNK9Zg7Ba0X0+NKv1iDNX55gxDPji8zY/U9f48bjGtx0KjJw0ichJk9q0R02ZQtSUKW3bp00latrUo9rNSYnsvPEmww+LBcfpp7VZviMoAe9jBBt8oIMpyoop2oaMNbHZsoJVX36I2WxhyKQpSN0IVB8u3rouKf62gswhsZgtJhKzojjtfCtDJ6QR4VI3HY+FlBK9sQm9oR5LsnHyS9Py5Xi3bjtEgGsQVispv/oVALvvutsII3i94XZs+fnkvvM2ANWvvopn3XpM0dGY3G5MbjfCdnA1UPzt30MGA5jcbgIVlZT/5S/ofn9YLKKvuBxhMoXFE5OpRe6ZvI8XtumPMJvJfOqpNu1aRASJ9/ywbbvDQdS0tvOza1Yr1uzsI9ochYVkPvsMa195hSFXXtlrY+An2g8l4H2EQK2Xhs9207h0HxHDEoi9fABNlkbmfvYbrBEORl90OSOnz8Thjm5d1xdk4zf7WL1gJ7XlzZx7QwH5Y1IoOCPl5DvSDRweN5bBIGgaQgh8u3fj27GDYM1BAdbr6kj86U8RQlDx5JPUvvOuYaurg0AAzekkf4WRMqL65bnUvf8+AMJuxxQdjTUjI9y3Y+wYLJkZmNwHBdqceDAdbdacOQirtc2EXzFXXtHidcSwob1e9A7gKCykqbZW+XEUlID3cgIVzdR/tpvGFftBSoIZGtu93xHLAKKTkjn/h/eTPXwkNoezVd1gUGfl/BLWLN5Nc72fxKxIpt46hNzCUyefddXzz7P/D4/g0nVK3nkX4XAgm5ro/9WXmGNiqHn9dSqfbJneVnO5SPif/0E4HEYcdGB+SHyjMUVFYYp2hxNvJd5/H4n33YfJHYV2hNwwsddcc9Txabbj24XaV0RP0T6UgPdy6r8opXHlfnzpQZZtf5/di9cTnZTC8CsuwGK1kT+29WZZb3MAW4QZTRPs+LaCxOwoCidnkto/ulOpXXsiUtfx796NZ/0GPBs34N2wEc/GjWQ89U/s+fk0LVsOum7cLJMSW14erjPPRIRuVEVfeimus882xDnajSky0ghFhIi58opWs+BDsSQe/ZBchaIzKAHvZfh21VO3aBeR49Kw5bhpyvGy6JNXKNuyg9i0DKZ//0dH3HwDUFZSx6qPdrJzXSXXPXwGdqeFS+4didna+uzF3oju8+HdsgXvxo1EDB+OLS+Pxi+/ZNettxkFTCZsubk4Rp8eFujYG26g4bPPwjfLkn56f4vZqzUjo0XIQ6HoSSgB7wVIKfFur6V+0S68W2sQdhMyy0JCjpuojCQsMRHMvO4X5BWNbnVOpJSSkrWVrF6wk9LNNVjtJgaPP5gtsLeKtwwGESYTwZoa9v/hETwbNuDdvj28pC3x3h9jy8sjYuhQkn/7G+wDC7D1z2sVxnCM7Bs3yxSnJkrAewGVz2/As74S4TRTnVbNV6tfI+bTDK44+/dExsZz1UNtn2JXva+J9x//Dme0jTMuzWPwWalYI3rXZfeXluLZsAFPKPzh3bAB17nnkPzzn6M5HDQtW4Y1rx+uiROxFwzEXlCAJTRrNkVHE3P55UdtX8WNFb2V3vU/+RTByFNShb0g1tgkkGamrHIfX656DZ+3ibzTxjL6oiOLkq85wLrP99BY6+Wsy/sTm+LkgruHG7snzR0/xf1kIP1+vNu349mwASREX3wRAMVXX0OgrAyEwJqTQ0RhIRHDhwMgrFbyPvm4G0etUHQfSsB7EDKo07SqjPrFuwlUNBN3XQERg+PZ0bSWz5c+T8FZEzj9wsuIS89sVbexxsu3n+xi3Wel+DxBMgpi0IM6mkkjc1DnjjI7EegeTzicUfHkk9R99BG+LVuRocOObQMGhAU85be/wRQdja1/f2NnnEKhAJSA9whkUKdx6T7qP91NsMYLcWZ2uDdSV+FnEJMYPnk6+WPOIirhyCsatizfz8Jn1yN1Sb+iRAonZ5KYFXWSvWibQEUFzWvW4N24MRwGCVZVMWDpEoSmEayvxxwTi+v62dgGFmAfVBDe7QfgOvvsbhy9QtFzUQLejUhdhvIoCOq/KCVgCbApYhXfLv8Ia4SDs0YaG2ms9gis9oiD9aRkz5YazFYTSdlRpPSLZvC4NIafkxHe6t4dyEAAX3FxSKQ3EH/HHZhcLqpefJHKJ54EwJKViX3QIOwDBxq5Lmw2kn7yk24bs0LRm+nsmZj3ALcAElgD3Cil9HTFwPoq3pI6YjcLqio24yuuI/HuQjSriXWOJXz72Xwc7mjOuvp6RkyZ0Wrzja5Ltq8qZ9WCnZQV15FbmMD024fiirEx/qojJ6M6UTStXIlj3gc0ud1Iv5+yP/0Z7+bN4S3hwmIhasYMIgYPJvrii3GNG4dtQD4mV+sNRQqFomN0WMCFEGnA3cAgKWWzEOJV4CrgP100tj6HZ0cNFf9aS4wuaNq+n0CsxFNVhyM5hpwxpxGXl82QiZNbnHxzgM1L97HkvzuoK2/GnRDB2dfkM3BM8kn3IVhbS/ljj1H9wotGisyPPiLpl79EczqJufpq7AUDsRUUYMvJCW94sWZmYs1sHbdXKBSdo7MhFDMQIYTwAw5gT+eH1DfRvUGqX90MukQg0KXO+q2fU/NtPSOSz6Nf0ehWdZobfFjtZkxmjcYaH3anhTMu7kfOiIQWp9ucDJrXrqP65Zeoe38e0mN8yTqQ9S5YWUnWf549qeNRKBSdEHApZakQ4s/ATqAZ+EhK+VGXjayPIawaHlMTmjSET5c6KeMGM3zy9FZla8ubWL1wFxu/2svZs/IZOCaF4edmMGJyxknd6n4gn4fUdUp/9CMC5eW4Z84korCQfQ89dMJSZCoUivYhwsnLj7eiEDHAG8CVQA3wGvC6lPKFw8rdBtwGkJSUVDR37twO9dfQ0IDL5epQ3e7EuR+8kRBwwJoXnybS6yDRnkmZdxe24bmkjDw4826qlFRulNTtNnLLu7MgvkBgizq5s22togLHZ59j+/ZbKn/xc7BaMe/cRTAhHhlh3CS1bN+OXLMWMXQI/tzckzq+E0Fv/f06EsqXnkdn/Zg4ceIKKeWow9/vTAjlXGCHlLIcQAjxJnAG0ELApZRPAU8BjBo1Sk6YMKFDnS1evJiO1u0OpC6p+3gn9at2YhseR8KMQWREOnjvr49QWbcXs8XC5ef/kNQBBUZ5KXnld0vxVHkZOSWNYZPScbqPLxNdp8YbDNL4xRdUv/QyDZ99BppG5KRJDBw+AkvSEZYvTpjQ667J0VC+9Ez6ii8nyo/OCPhOYIwQwoERQjkHWN4lo+rlGPHuTTSvq6TcXMq2LR9xqf4Q/YpO5/IHH+bT997lrOkXUFsRzddvL+f8u0ZgizAz5eYhuGJtWO0nf3WnZ+1adt3+PUzx8cTf8T2ir7gifCiBQqHomXQmBr5ECPE6sBIIAKsIzbRPZYK1XiqeXYd/fyMbfctYs/Mzzrn5jnCSqUAwCV/daXz0dAWexn3EpTlpqPZgi3ARm3pylthJKfGsWUP1Sy9jckeR9LOfYR82jPQn/mGkUj3KMWsKhaLn0KmpnpTyV8CvumgsfQIRYcYTbOLrirepFvu54ld/IC3fCJPs+LaceU+sMcqJAGdelsfwc07ejUm9uZm6efOofullPOvWoTkcxFxzdWg8gsiJE0/KOBQKRdegdmJ2EU2ry7AXxKILnY92PIMjwc219/6NyNj4cJmqvY0HKwgIBvSTuqqk7K9/pXrO89j655H8qweJumCm2lijUPRilIB3EhnUqfnvdhq/2Uvk5Ezc52Rx2S9/R2RsPGarFW9zgE9f2kTRtCzSBsRgtmgEAjomk0bagJgTOK4gDZ9+SvWLLxH//TtxjBxJ7LXXEjV5MhGjRvW5k3cUilMRJeCdINjop+rFDXi311IcXI9/5wYmchsxyakAVJY28MGTa6iv9JA5OJaBY1K48J5CPp+/knHTCknOdXf5mAIVFdS8/gbVr75CYM9ezElJBKuqALUjUqHoaygB7yD+/Y1U/GcdgVovK2o/otS3lfNH3R+2b162j0XPb8RqN3PhjwpJzYsGIDnXTcIgcULEWwaD7LjkUgJlZTjGjiHppz8lctIkxBGOV1MoFL0f9T+7o1g1PL4GFu+ei5ZkZda9fyU6yVh2t21lGQv+vZ6UPDdTbx1ywtZz642N1L73Pg2ffUb6//0/hMlE8q9/hTU7G1sf2FyjUCiOjhLw40DqkubvyokYlkCTv5Z3Nz9OTmER0+68B6s9Irz1PHtYPGdd3p8hE9Iwmbr+FBzv9u1UvzyX2rfeQm9owDZwIIHyCixJiUROmtTl/SkUip6JEvB2ovtCm3PWVhJr0nAPTWbW7x8lLj0TIQR7tlTz1ZvbOP/7w7G7LAw/58ScZN60bBkl181GWCxETptGzDVXEzFihLopqVCcgigBbweBag+Vc9bj39fIuqavSC1vZihTiM/IQkrJ6oU7+erNbbgTIvA0+rG7LF3Wt7+sjJrXXsMUGUXs7OuIKCwk8af3477gAsxxPe+oNIVCcfJQAn4MvMW1VD6/noDXzxf738AT1cyoAdcA4PMEWPT8RrauKCNneDzn3DAIWxec+C6lpGnZMqpfepn6hQshEMB94YUACLOZuBtu6HQfCoWi96ME/BjowSBN/no+3vE8CUNyueTuh7E7jaxiX76xlW0ryxh7cT8Kp2R2WRhj/+//QPXzz6O53cReey0xV1/V4oxIhUKhACXgR0QGdTybq4koiGN/YwnvbPp/nH7hZZx51XVomolg0NiIM/qCXPoXJZI+MLZT/Xk2b6Zm7lxirrsOW04O7vPPwz4wn6gZM9Aiuu+MS4VC0bNRAn4Yh27OSfyfkWQPK2T2nx4jITMbPajz9Vtb2V9cx8y7R+CIsuKI6ph4S5+P+oULqX7pZZqWL0dYrUQUjsSWk0PE8OFEDB/exZ4pFIq+hhLwQ/DtbaRyzjoCtR5W1CzgtLp40lIKSMjMprnex4dPr6N0UzWDx6UidcB0/H00rVqFY948tjzwIMHycizp6ST+5F7cl1yCOebEba1XKBR9DyXgIZrXVVD1yib8updFu17G0S+OmBRjS/z+HXXMf2oNzQ1+Js0uoOCMlONuX0pJ9fPPU/boX3F5vQRNJhLvv4/Y668Pp5pVKBSK40EJeAhPVQP1gWo+Ln6BgeeezYTZt2Iym9F1ycL/rEdogkt/UkRCZuRxtx2oqGDPL35B46fGSTdCSpAS6fMr8VYoFB3mlBZw3RfEv6cBW7abbbWr+KJ4DpNu/h7DzplKwBckGNAxmTWmf28ojigrdufxr++u/2QRe3/5S/TGRmJuuIGauXPVYcAKxSnE6rLVfFT7EdFl0YxIHNGlbZ+yAn5gc06gspnk+0+naMaFZA8rJD4zm9ryZuY/tYaUXDfjr84nNqVjObP3/+lPVP37GWwFBaT96Y/Y8vKImjqFta+8wpArr8RRWNjFXikUfQNPwMPKspW8X/0+5t1mBscPRhMabpuRBK6iuYKAHkBKiY6OLnXsJjsJjgQAdtbtxK/70aWORCKlJNIaSarLCIuuq1xHUA+iSx0AXerERcSRFWUs112yd4lRV0okEl3qpLpS6Rfdj4Ae4NPdn4IEHT08hn7ufvSP6Y8n4GFByQIAimuLeWbdMwT1IAs+WsC/pvyrS0W8wwIuhMgHXjnkrVzgQSnl3zo7qBONd8eBzTk+ltbMZ6onn0hnPPGZ2ZSsrWTBM+sAGD2zcwmh7AWDiL35JhL+53/QQseUOQoLaaqtVeKt6HKklHxb/i0f1X6EfY+drKgsAnoAv/QT0AME9AD5MfmYNBM763ayu343ARnArx+0z8iZgRCCZfuWsalqk/F+qIyGxu3Dbwfgna3v8F35dwSkUc+v+3GYHfz6jF8D8Niqx1hZtjLcbkAPkOBI4PFzHgfg3k/vZcX+FS3sedF5vHz+ywBc/t/LKa4rBmD+x/MBGJk4kuemPwfAjfNvDNsPMC5tHP849x9he1lzWQv7tOxp/OnsPwFw84c30+hvbGG/pP8lPHTGQwDc8tEtrT7fawuu5f7T78cX9PHDRT9sZb992O30j+lPg7+Bn3/x81Z2v+5n+f7lPUPApZSbgBEAQggTUAq81TXDOnE0LNlLzTtb8YgmPil5kcwzComIjELqkmXziln2/g7i0lxMv30o7oTjW4Mtg0Eq//U0JncUMVdfjfv883Cff94J8kTRl9ClTpO/CZvZhkWzUN5UzoaqDTT4GmjwN1Dvq6fR38g1BdcQHxHPxyUf88KGF8K2Bn8D9d56LCYLvqCPDxZ+QEAGWvXzxVVf4La5eX3L6zy79tlW9qnZUzELMx8Wf8grm15pYbOZbGEB/678OxbuXIhZmDFrxiPWfnBJbUAPENSDWDUrDrMDs2YmyZEUtg+JG4LL4sKsmbFoFsyamWTnwUO0B8QMoKSuBIlEIBifPp6L8i4K239Q+AMafA1oQkMIgUCQ5DzY/i/G/AKf7kMgjDKIFv3/5ey/oEvjRCwNo41D7c9OfbZF25rQiI8wTteym+28ev6raMK4f6UJDU1oxNiNVWTRtmjeu/g9NDQ2Vm3kZ1/8DF/Qh0WzMCpp1FF+C46frgqhnANsk1KWdFF7J4yGHeVUBPbw+e7XOfPaaymcPhMhBLXlzaxasJP805M5e1Y+FuvxrRH07d7Nnvvup3nlStwXX0zM1VefIA8UPY2AHqDB10C9v55oWzSR1kgqmyv5as9XNPgbwrYGXwNX5l9Jfmw+y/Yt4/dLfh+2N/obkUj+M+0/FCUV8c3eb1rN4jShMTlrMvER8UZYAEmyI5m86DycFifbaraxcv/K8Ff+czLPYVLmpBYi6zA7ALhiwBVMzJjYwmbWzGFRuqfoHn4w4geGwJosmIUZk3bw/8QDYx/ggbEPtPmZ/LDoh0f9zG4YcsNR7dcNuo7Pdn+GL+jDarJyy9BbWsxcp2ZPPWr9SZlHz8p5ZtqZR7WPSm5baDWhURBX0KbdrJnDoZiMqAwSHAm8+vWrXDH2ih4bA78KeLmL2upygo1+9AYfliQnqys/ZlvlMmb+7BdkDR1BXWUzkbF23AkRXPmL03AnRBzXlngpJXXvvsu+3/wWhCD1T38k6vzzT6A3iq5m6d6lvFX1FtVbqhmbOpZkZzL1vnre2fpOWHgPzHQvyruI8enj2VazjVs/upUGfwPNgeZwW78783dcmHchO+t3thBgq2bFZXUxIWMC+bH5OC1OsqKycFlcRFojcVlduCwuUp1GjPaM1DN4YcYLRFoO2iLMB383z806l3Ozzm3hx+qy1dz60a1h0bth8A1tCkZ6ZDrpkeltfiZOixO6LifbcTMicQT/mvKvEyZ8J5MRiSOocdecEB+ElLJzDQhhBfYAg6WU+49gvw24DSApKalo7ty5HeqnoaEBl8t13PWs9ZCyUkMi2TlOEgz4CHiasEVFU7NDsme5JKVIEJPbsTwm5tJS4n77O3x5edTecAN6/LEzBHbUl55Gb/JDSklNsAaJJNYci0f38O/yf1PqK6Verw+XG+Mcw6z4WdQGavll6S8BsAords1OhIhgsnsyo12jqQvW8V7Ne9iFnQgtgggtArtmp5+tHwmWBHy6j5pgTfh9izg5arjDu4N1desYHDWYHFvOSenzRNKbfseORmf9mDhx4gopZauvBV0xA58OrDySeANIKZ8CngIYNWqUnDBhQoc6Wbx4Mcdbt3ldBVWfbMIX8PBd8HPOO+tnWKw2gn6dz1/bQumSUtLyo5ly2RAcUdbjattfWoolLQ2AxtxcHKefjjC1L+zSEV96Ij3Rj4AewKwZv9ZPffcUW6q3UFxXTEldCc2BZi7sdyG/O+t3SCl5af5LpPhTaKhuQCLR0MjPymfCaRPQpc7Z3rNxWp1YtCOL70xmnkzX2sUEJvTI69JR+oovJ8qPrhDwq+lh4RMpJfWf7KJuQQl1VLFo11yKLr0Is8VKfZWH+U+tpay4jsIpmYy5MBftOE7N0X0+yv/2d6rmzCHr+Tk4Cgtxjh17Ar1RtMWyfcvYWLWR4tpiiuuKKa4tpl90P56a8hQA87bPwxv0ku3OZlTSKHLcOQyOHwyAEII50+e0CjscCEtoQiPaHt1drikU7aJTAi6EcAKTgdu7ZjhdhA51a0vZ5d3MyuoFTPvRPfQrGg1Axe4GavY1Mu22IfQbmXhczXq3bKH0J/fh3biR6KuuxJ6ffyJGrwhR661lR+2OsDgX1xUT0AM8ds5jgDHD/mbvN0RZo8h2ZzMmdQzD4oeF678x840WN96ORF+KtSpOPTol4FLKRqDHHAsTqPEgTBqa08yne1/DKxu46nd/IjYtnbKSOhKzosgZFs91vzvjuE/NqX75ZfY/8r9oTifpT/yDyIkTT5AXpxb+oJ9dDbvCAr27fjcPjHkAIQR/WvYn3tn2DgBmYSY9Mp3+Mf3DZ48+OPZBnBYnMbaYI954PpZ4H+BE3mRSKE4kfWYn5oGTc8ypThJvHsYF9/4Ua4QDTbMz/6m1FH9bwRW/PI24VFeHjjzTm5pwjhlDysO/wxwffwI86LtIKan0VIZFenrOdJwWJ3PWzeHRFY8SlMFw2Th7HHcX3k20PZor86/k3KxzyY7KJi0yrVUsOiPyxJw7qlD0FvqEgDcs3UvN29tolvXsqF7GZDmUqPhEqvY08sE/l1Nb3swZl/Q77i3x9QsXgslE5MSJxN54I7E33aQODw5xpPwOnoCHnfU7SXYmE2WNYunepfxt5d8ori2m3n9wpceAmAEMSxjGoLhB3DTkJnLcOWRHZZPlziLKGhUuNzRh6Ml2S6HoVfRqAZdBnZr3ttP49V7KArv5puy/TLrgewgh2LJ8P588vxGLzcRF94wgtX/7c23rjY3sf+QRal57HecZZxA5caLKGngIB278eYNe5s2fx6C4QVR5qtjTsAeJ5NEJjzI5azI2sw2HxcGM3Blhkc52Z5PiNNLxjkoeddQNEwqF4uj0bgH3Bqn/dg9b61eyXazhst/8jsRsI39JbVkT8Wkupt02BGe0rd1tNn/7LaX33Yd/5y7ibr2VhLt+cKKG3+sori1m4c6FbK/Zji/oQyIJyiD7GvcxKnkUF/a7kGx3NsMTjNOEhicM5+kpT3fzqBWKvkuvFHB/eRPmGDs+3csHu/5NdHoK19zzKFLa2be9luRcN0XTsimckoXJ3P6Zs2fTZoqvmYU5KZGsOc/hOE2le91cvZmFJQtZULKArTVbASMpkNVkDS+9e3TCo+oGoELRDfQ6AW9eV0nVKxtxjk4h+rxcLvvVb4lOTqWsuIH5/1qGZhJc+5uxmMwaJq198Wrd40Gz27EN6E/Sz3+G+4ILMEVFHbtiH0RKye763WREGTcIf/HFL9hUtYmRSSP56ek/5ZzMc0h2JrO6bLVaeqdQdDO9R8Al1H2yk7qPSqgNVrCnYS+nkUtsWgZrFu/my9e24oqzM/32oe2edUspqX3rbcoefZSsOXOw5eYQO2vWCXak56FLndVlq1lQsoCPd35MtaeaT6/8FIfFwUNnPESiIzGcie0AaumdQtH99AoB92ytIeNLQV1DCTubNrLW+yXnF95P0K/z8ZwNbFm2n+xh8Zx7QwE2R/uWCAaqq9n364eo//BDHKedhhZhP8Fe9EwW71rMQ18/REVzBRbNwhmpZ3Bu1rnhrHSD4gZ17wAVCkWb9HgB95bUUfHMGqxBgU6QSud+rv71n4mMjTdOy5CS0TNzKZqWhWhnyKThyy/Z+7OfE6iuJvHeHxN7443tzmPSm/EH/Xyz9xsW7lzIjJwZjE4ZTYozhcLEQiZnTWZc2jhc1t6fOEihOFXo8QJesXQLelBHExpSwojhU6nYDXqwCXeCgyk3Dz7utdkNiz9Fi4wk58knsA/q2zPMoB5k8a7FLNi5gE93fUqDvwGnxcnQ+KGMThlNfmw+j054tLuHqVAoOkCPF/Cy5p3ESDeEktRv3LyebYvryR+TzLk3DGq3eHs2bUb6/UQMGUzivT8G/R60iOM7cae30OhvpLiumMFxxh+33y/5PV7dy7lZ5zI5azJjUsZgNR1f9kWFQtHz6PECnjRmIAsXP0a8OYVybyl1VWcy5OwUxl01oF31pa5T/fzzlP3lUexDhpD14gtotvavC+8t1HprWbxrMQtLFvLVnq9w29wsvHwhmtD499R/H3ErukKh6N30eAHXzKnUW86k2rMTzXImo84by9iL+7Wrrn//fvb+7Gc0fvU1rkmTSPndb/vkVvg56+bw1xV/JSADpDhTuCL/CiZnTQ7bs93Z3Tc4hUJxwujxAl66uRqhJWOOSAYB1oj23Wz0bttGyTWz0H0+kn/zENGXX94nxHt/434W7lzIwpKF3HfafRTEFTA4fjCzB89mctbkcNhEoVD0fXq8gKcNiMFk1ggEdMxmjbQBR89pciDVqDU7m6jzziPmumux5fTuo6Ua/Y28tuk1FuxcwHfl3wGQF51Hra8WgKKkIoqSirpziAqFohvo8RmaknPdXHhPIYlDBRfeU0hyrrvNsk0rV1F81VUEyssRJhPJDz7Qa8V7e812Vu5fCRinw/zj23/gD/q5u/Bu3r3oXd668C3GpIzp5lEqFIrupMfPwMEQ8YRBok3xln4/FU88ScWTT2JJSSFQWYk5IeEkj7JzSCnZVL2JBSULWFiykO212ymILeDVC14lwhzBh5d+SIy9/RkVFQpF36ezR6pFA08DQwAJ3CSl/LoLxtVufCUllN53H55vv8N94YUk/fIXmCIjT+YQOsyBcA/Ar7/+NW9ueRNNaBQlFXFl/pWck3lOuKwSb4VCcTidnYH/HZgvpbxMCGEFHF0wpuOi/PHH8e0oJu2vjxI1ffrJ7v64Wbl/JS9Xvsx/F/+XNRVreH768yQ5k5iaPZWh8UOZlDmJWHtsdw9ToVD0Ajos4EIINzAeuAFASukDfF0zrKMTqK5GNjVhSUsj6Wc/I/Gee7CkpJyMrjtMUA/y2OrHeHpNKD92AxQmFtLobwTgjNQzunF0CoWiN9KZm5g5QDnwrBBilRDi6dAp9SeUhs+/YPvMmZTedz9SSswxMT1evAH2Ne3jmbXPhF+bhInx6ePJjc7txlEpFIrejJBSdqyiEKOAb4AzpZRLhBB/B+qklA8cVu424DaApKSkorlz5x53X5bt2+Hbb3GUV2BfuZJASgq1N99EID29Q2M/WWz3bGdt81pmxswEYGnDUuZWzSUgA5iFmbuS7iLH1jtXyQA0NDTgcvWN5FfKl55Je3wRQuB0OjH14IR0h97vOhrBYJDGxkYO1+WJEyeukFK2Pn/wQEa/430AyUDxIa/HAe8frU5RUZE8XhpXrpQbhg2X6/IHyvX5A+Wu//mhDDY3H3c7J5Nt1dvkXR/fJYf8Z4ic+MpEWdFUEbat2r9K/uztn8lV+1d13wC7iEWLFnX3ELoM5UvPpD2+bN++XZaXl0td10/8gDpIXV3dMcvoui7Ly8vl9u3bW9mA5fIImtrhGLiUcp8QYpcQIl9KuQk4B1jf0fbaomnpMqTfjwDQNOwFBWj2npm7u9pTzd9X/p23tr6Fw+zg7sK7mVUwC4fl4L1ddRCCQtG1eDwesrOze/0OZCEEcXFxlJeXt7tOZ1eh3AW8GFqBsh24sZPttcJx+mkIqxXd50OzWnGc3vPOqZShr0dmzcznuz/nmoHXcNuw29TSP4XiJNHbxfsAx+tHp3ZiSilXSylHSSmHSSkvklJWd6a9I+EoLCTz2WdomHkBmc8+g6OwsKu76DDeoJfn1j3HjR/eSFAPEmmN5P1L3uf+0+9X4q1QnELMnz+f/Px88vLyeOSRR1rZvV4vV155JXl5eYwePZri4uIu6bfHb6UHQ8Sbpk3rMeId1IO8s/Udzn/rfP68/M/YTXbqfHUA2M09M7yjUChODMFgkO9///t88MEHrF+/npdffpn161tGk+fMmUNMTAxbt27lnnvu4f777++SvnuFgPck9jbs5bL/XsYvv/wlsfZYnp7yNE9OflLNuBWKXsSKkmoeX7SVFSWdDxosXbqUvLw8cnNzsVqtXHXVVbzzzjstyrz//vtcf/31AFx22WV8/PHHrVaadIRekQulJ1DjqSHaHk2CI4E0Vxq3D7+dKVlTwof/KhSKnsGV/2ydzeP8YSlcNzabZl+QS5/4ko376tElaAIGJkdy45k5XD4qg6pGH3e8sKJF3VduH3vU/kpLS8nIyAi/Tk9PZ8mSJS3K7N27N1zGbDbjdruprKwkPj6+o24abXWq9inAjtod/N+q/2PF/hXMu2QeTouTx855rLuHpVAoOkidJ4Aemvzq0njdW1EC3gblTeU88e0TvLnlTWwmGzcMuQFB37jTrVD0ZY42Y46wmvj7VYXMevob/AEdi1nj71cVUpRlhEBjndZjzrgPJy0tjV27doVf7969m7S0tBZlUlJS2LVrF+np6QQCAWpra4mLizuufo6EEvAjsLt+Nxe/czEBGeDK/Cu5bdhtxEV0/sNWKBTdT1FWDC/eMoZvtlcyJjcuLN4d5bTTTmPLli3s2LGDtLQ05s6dy0svvdSizIwZM3juuecYO3Ysr7/+OpMmTeqSpY9KwEP4gj7WVKyhKKmI9Mh0bh9+O1OzppIRlXHsygqFoldRlBXTaeE+gNls5rHHHmPq1KkEg0FuuukmBg8ezIMPPsioUaOYOXMms2fP5s477yQvL4/Y2Fg6klLkiH13SSu9GF3qvL/9fR5b9RgVzRV8eNmHxEfEc8vQW7p7aAqFopcwY8YMZsyY0eK93/zmN+Hndrud1157rcv7PWUFXErJl3u+5G8r/sam6k0UxBbwqzN+RXxE5+4KKxQKxcnilBXwPY17+P7H3yfVmcofx/+RqdlT1ZJAhULRqzilBLykroRPd33K7MGzSXOl8dTkpxiZOBKLydLdQ1MoFIrj5pQQ8IrmCp789kne2PwGVpOVGbkziI+IZ3TK6O4emkKhUHSYPi3gjf5Gnl37LHPWz8Ef9HPpgEv53vDvqTi3QqHoE/RpAfcFfby04SXGp4/nrsK7yIrK6u4hKRQKRZfRp+7a6VJn3vZ5/Hjxj9GlTow9hvcueY8/n/1nJd4KheKEcax0si+++CIJCQmMGDGCESNG8PTTT3dJv31mBv7Vnq/424q/saFqA/kx+VR5qoiPiCfWHtvdQ1MoFH2YA+lkFyxYQHp6OqeddhozZ85k0KBBLcpdeeWVPPZY1+ZR6vUCXt5Uzs+/+Dnf7P2GNFcafxj3B2bkzFBLAhUKRdvsWgrFn0P2OMg4vVNNHZpOFginkz1cwE8EnRJwIUQxUA8EgYA80qnJJwhf0IfVZMVtc9Pga+D+0+7nivwrsJqsJ2sICoWiJ/Lsea3fG3wRnH4r+Jrgmamwfy1IHYQGSUNg9PegcBY0VsKrs1vWvfH9o3bXnnSyAG+88QafffYZAwYM4K9//WuLOh2lK6apE6WUI06WeFc2V/L7Jb9n5tsz8QQ8WE1WXjrvJa4ddK0Sb4VCcWw8tYZ4g/HTU3vCu5w2bRrFxcV89913TJ48OXy4Q2fpFSGU1WWrmVczj0VfLmJ+8Xy8QS+X9L8Eb9CL3WzvMweaKhSKLuBoM2arAy59Gp6bCUEfmKzG6wNhFGfcMWfch9OedLJxcXHYbDYAbrnlFu67777j6qMtOivgEvhICCGBf0opn+qCMbVgddlqbvnoFrxBL9TCacmn8cCYB8hx53R1VwqF4lQg43S4/t0ui4G3J53svn37iIyMBODdd9+loKCgU30eoLMCfpaUslQIkQgsEEJslFJ+dmgBIcRtwG0ASUlJLF68+Lg6+Kj2I3xBn9EWgmRPMiWrSiihpJND7z4aGhqO+3PoifQVP0D50lNpjy9ut5v6+vrjazi6AEaERPR46x6BP/7xj0yePJlgMMh1111HZmYm999/PyNHjmTGjBn84x//YP78+ZjNZmJiYnj88cfbHLPH42n/9ZNSdskD+DVw79HKFBUVyeNl1f5VctTzo+Sw/wyTo54fJVftX3XcbfQ0Fi1a1N1D6BL6ih9SKl96Ku3xZf369Sd+IJ3B2yA95SVSehvaVfxI/gDL5RE0tcMzcCGEE9CklPWh51OA3xyj2nEzInEE/5ryL179+lWuGHsFIxJHdHUXCkXfYddSMkteh12OTocGThhSgh4EPWA8ZBBsUSAENFeDt96wl66i35a3IK4Chl5m1K0tNcpIHZBGW8FD7oH5PUZ7h574LgRYncZzX9MR7BrYXMZzb0PIDqF/QDOBzQh/4KlrXd9kOWg/MLYD9YM+aCjDioSKaojPOziWLqAzIZQk4K3QDUQz8JKUcn6XjOowRiSOoMZdo8RbodCDxqoJXyP4mw7+jM+H6h3w3AXkBLzw7Fw47RZwpxkiOfhiiMmGsg3w3ash4dQPiujYH0BsDhR/CSv+c4i4hspM/yPEZMH6d+CbJw7a9aDxuPYNiEqBpf+CL/9+iD0Aug7/sxocsbDwIfji0dZ+/bIczFb45GFY9q/w2xkAb7wL0ZnGH6RPfgvfvtyy7rTXDz6v39N6VYnJCkmDjed1e8B3WOjCbIfEUDilrtT4PA/F4oSEyIP2gKel3RZ5UMDr9hiifRjGnxjd+OPUEwRcSrkdGN5lI1Eo+gJSgr+5pbj6msCVCNEZxgxv3ZvGe/7G0M8myJ8BOeOgugT+e/fB9w+0MeV3MOwK2L0cnpnSut/LnjUEPOBDIEH3w5InDtqThhoCXrkVvvp/oJlDD5Pxc/jVhoA3VcLuZYfYQ2X00MntQjNmnJYIEKZD2jAZdncG5Iw/2O6BMgeW+OaMM+of2rdmNtoFw8eU4bB1ofHHAgloxg3HjNONtdz5M4xZNcL46TskOZ0rGRyHJas7dFOfO9X4g9KWPTozNLs/ZFavHWKPzQnNvtuwx/UnPHNHGNeuuhiJRKAdFPouolcsI1QoThgBL2yeT+7WN6FfKOyw7i3jq/KhApo81JjFSgkvX91SfH2NMGIWTLgffA3wh/TW/Zx9P0z8uWF/965DDKGv9zE5hrhpJqNdqwOcCcZPi8MQRjAEZNr/Hnzf6jR+Jg0GdzqYregBH5rZCle9CBmjDRE1G0vYKLgAHqxs+/MYNNN4tEXBBcajLfKnGY+26DfJeLRFxunGIyEfNn+IHvCimW3GahGAtCLjcSgbNhx8bnW03TYYn9VR7RFHt5vtx7BbW7829cdXV4ktKq5LZ9+gBFzRl/HWG19p60oNEcs923j/re8ZO/Hq9kJTBRD6qv7ch8bysvd+BM1VB9sRJii81hBwIaBh/8G4Z2Sy8Z8y1thGjcUB5/7a+Np9qMjG5Rl2ZwL8cM1Bu9kemk2GcKfDLQva9smVCGO+d2SbMx6u/y/Fn8whd9LsnhsDbw+hpX59wherE59Nx9bF4g1KwBW9ESmNr/p1e4xH/R7ja+9poYOoX50N2xaBt+5gnbQiyP3EeB70Q2QqpI0ywg7bPzXCDkGf8VX91o+Nr/wHxNdkbSmyty1qe2yaCc665+j26MyO+34sMk5nZ1YTub1Z8A7Ql3w5QSgBV/Q8GiugutiYOR8QaV8DnP9Xw/7qbNjwbss6kakHBTxlBESmGI+oNIhKNeLPB7js3wef71oKO5cYX9VNVuOr+oHZtELRTm666Sbee+89EhMTWbt2bSu7lJK7776befPm4XA4+M9//sPIkSM73a8ScMXJp3IblK40BLp+b0io98KNHxgxw0//F5YesqnXZDNCC3rQmMEOuxKyzjSEOSrNWP3gTDxYftyP2j+WvvRVXdFt3HDDDfzgBz9g9uzZR7R/9NFHbNmyhS1btrBkyRLuuOOOIya8Ol6UgCs6xqHrjdNPM8IV5ghDgPevg43vHxTmA3Ho2xYbS9E2/BcW/spoxxYVEuJUY5ZtjoXC6yDvXOO9yFRj+dmhIYyC87vWF/VV/ZRjddlqlu9fzqikUV2yPHn8+PEUFxe3aZ83bx6zZ89GCMGYMWOoqalh7969pKSkdKpfJeCK42ftm/DmreToAfj3C8aNuECzMYPOOgP2r4dFDxvLuaJSjdlzxmnGcjEwlqzlzzBmzkdaVpUyzHgoFB3gxvk3tnpvavZUrhp4Fc2BZmbPm82m6k2hpX2C/Jh8Zg2axUV5F1HtqeZHi1t+g3t22rOdHtOePXtapZwtLS1VAq44gTRXG6GO0pVQugJG3QQDphg3+vRAaCWsNMR24PmGUENoKVrZwaVrhxOZZDwUim6g3l+PDK3Vlkjq/Z3PhdJdKAFXGPibjU0mrgRoqoKnz4WqbQft8QMOruoYegWsfim03thmbDI5NPzQlnArFCeBo82YI8wRPDLuEW796Fb8uh+LZuGRcY+Ewygx9pgumXEfTmpq6jFTznYEJeCnKmUboXS5MbMuXWHErYdeARc/ARExxrK7wlnGz9RCsLsP1s0a23fWGytOOQ7kV+rKGPixmD59Os888wxXXXUVS5Yswe12dzp8AkrA+z5SQu1uQ6Q9tVAUOgnk1dlQscm4iZhaCGfcDbkTDJsQcOm/2mwSUDf+FL2aEYkjulS4r776ahYvXkxFRQXp6ek89NBD+P1+AL73ve8xdepUFi9eTF5eHg6Hg2ef7ZpZvhLwvsq3rxhbwktXQGOZ8Z4rGUbONgR65v+DiFhjh+ChuRwUCsVx8/LLLx/VLoTg8ccf7/J+lYD3ZvzNsG/NwTDI3m/h9s/BYoeydUYMO++cUP6IkcbhrQeW42WO6d6xKxSKTqMEvLegB6F8k7Gj0BYJq18ykiIdyBIXmWqItKcGLMlw7kMwucvTsysUih6EEvCeiqcOtn0Sml2vhD2rjAx4V70EA88zsuOdcTekj4LUkcaa6kNRBz0rFH0eJeA9gaYq2BNab51WZIQ96vfBa9cbiZSShx5cEZI2yqiTPNR4KBSKUxYl4CebnUuMLeglNlj+b2OGXbU9ZBQw7seGgMflwa2fGHFrta5aoVAcgU4LuBDCBCwHSqWUXZykoo/QXA2b5sPKObBrCTlSwq7XjfPxkgYbK0PSiowsevYoo46mtU5cr1AoFIfQFTPw/wE2AFFd0FbfYv07sOI52PGpcbPRGglSP5h7evDFxoxboVD0ao6VTvbzzz/n6quvJicnB4BLLrmEBx98sNP9dmoBsBAiHTgPeLrTI+kL1O6GJf+EQOhQ073fGuGRsd+HWz6BWa+D2Y6OZsS2DxwTpVAoejU33HAD8+cf/Uz3cePGsXr1alavXt0l4g2dn4H/DbgP6NqTOnsTFVuNwwU2/Ne4EQmQOMg43/Ds+2HSAy1XhKjc0wpFt9O0ahVNS5fhOP00HIWFnW7vWOlkTxQdFnAhxPlAmZRyhRBiwlHK3QbcBpCUlMTixYs71F9DQ0OH63YpUqLpPnSTjci6LRStvBeAusj+lOfOpiJ+LM0lQShZ3GYTDXHT2LmtCba1XaY30GOuSRegfOmZtMcXt9tNff3BjIJlt7c+M9Rx7rm4Lr8M3eOh7OZbCGzZYqSZEAJz//5EXnUVzgvOJ1hTQ+X9P21RN/GfT7Z7rLqutxjLAXRd56uvvmLo0KEkJyfz8MMPU1BQcMR2PB5Pu69fZ2bgZwIzhRAzADsQJYR4QUp57aGFpJRPAU8BjBo1Sk6YMKFDnS1evJiO1u00um6sFjkw0+4/GWb8CfTxkCJgwDSi3OlEAf3a0Vy3+tKF9BU/QPnSU2mPLxs2bCAy8mAQoMpkalXGZrcRGRmJbjZT3thoiDeAlIjGRux2O5GRkQQCAWoPq39o20fD5XKhadoRyxcWFrJz505cLhfz5s1j1qxZbNmy5Yjt2O12Ctv5raDDAi6l/BnwM4DQDPzew8W7T/DJw7DqBePgXM1inGyeOdawadrBcxgVCkWPIOv5OW3atIgIUv/8J3beeBPS70dYLKT++U/hMIo5Juao9TtKVFQULpcLgBkzZnDnnXdSUVFBfHx8p9pV68APJeCF7Z9C8Wcw+bdG7Lq52tiiXvBrGDAVIqK7e5QKhaITOAoLyXz2mS6NgR+L/fv343K5EEKwdOlSdF0nLi6u0+12iYBLKRcDi7uirZOOrxG2LjRCI5s/NA4tsEbC6bcbeUfO+3N3j1ChUHQxjsLCLhXuY6WTffvtt3n22Wcxm81EREQwd+5cRBekuzg1Z+DNNYA0Di7Y+rGRGzsi1jgKrGCmkRdb7X5UKBTt5FjpZG+//XbuvffeLu/31BHwhnLY9L4x097+KUy4H8b/xDj9fPa7kHUmmE6dj0OhUPR++r5i6Tq8eClsXwxSh5hsGPM9GDDNsFsdxo1JhUKh6GX0PQGv3GbMsquL4YK/GStF4vobWfwGzWx5qIFCoVD0YvqGgFdugzWvGcK9P5SHIHWksarEbIMZf+ze8SkUCsUJoHcKuJTGtvXYfsayvm2fwOJHjPXZU/8ABedDdGZ3j1KhUChOKL1DwHctJbPkVVi6BSq3GjPtulKY+RiMvA6GXQGDLgRXYnePVKFQKE4aPf848l1L4bkLyNnxIsy7F5Y/Y+TNvuhJY6YNYHcr8VYoFN3Crl27mDhxIoMGDWLw4MH8/e9/b1VGSsndd99NXl4ew4YNY+XKlV3Sd8+fgRd/DkE/xm1HDc76EUz8WTcPSqFQKAzMZjN/+ctfGDlyJPX19RQVFTF58mQGDRoULvPRRx+xZcsWtmzZwpIlS7jjjjtYsmRJp/vu+TPw7HFgsho5tM0247gxhUKh6AT7tteyYn4x+7bXdrqtlJQURo4cCRiJrwoKCigtLW1RZt68ecyePRshBGPGjKGmpoa9e/d2uu+ePwPPOF3l0FYoFO3mrb+0Dk/kFSUydEI6fl+QN/+4gorSBpCAgPg0F8MmZVBwRgrNDT7m/7PliToX/3hku/suLi5m1apVjB49usX7e/bsISMjI/w6PT2d0tJSUlJSjs+5w+j5Ag6QcTo7s5rIVeKtUCg6ibc5YIg3gAy97gIaGhq49NJL+dvf/kZU1Mk5YbJ3CLhCoVC0k6PNmC1WE1NuHsw7f11FMKhjMmlMuXkwybluACJc1uOacR/A7/dz6aWXMmvWLC655JJW9tTUVHbt2hV+vXv3btLS0o67n8Pp+TFwhUKh6EKSc91ceE8ho2fmcuE9hWHx7ihSSm6++WYKCgr40Y9+dMQy06dPZ86cOUgp+eabb3C73Z0On4CagSsUilOQ5Fx3p4X7AF9++SXPP/88Q4cOZcSIEQD8/ve/Z+fOnYCRTnbq1KksXryYvLw8HA4Hzz77bJf0rQRcoVAoOsFZZ52FPHBEWxsIIXj88ce7vG8VQlEoFIpeSocFXAhhF0IsFUJ8K4RYJ4R4qCsHplAoFIqj05kQiheYJKVsEEJYgC+EEB9IKb/porEpFAqF4ih05lR6CTSEXlpCj6MHghQKhULRZXQqBi6EMAkhVgNlwAIpZec39ysUCgWwoqSa97b5WFFS3d1D6RSN3gA1Hp1Gb9dsGDoUcay7p+1qRIho4C3gLinl2sNstwG3ASQlJRXNnTu3Q300NDTgcrk6OdKeQV/xpa/4AX3DFyklm6uDrN3vYXhyBElOjaCUSAm6hKAEu0kQZTNSw+2q1wnqEh3DLiW4bYJEh4YuJWsrguihugceKS6NjEgNX1Dyzd5AK3tejEau20SjX/LxTn8re2Giif4xJqo8Ou9tb20/O91MfqyJb/b4+ed3PiQSgaBftIbTIrgg10JejIkdtUHe2OIHCT8Zl0hqdj8AYuwCm0nQHJDUeFpqmwTiIwRWk6DJL6nxtrYnOgQWTdDgk9QewZ7sFJg1QZ1XUueTLWwAqS6BSQhqvDr1PuOaBENGASQ7Nezmo58ItnXrVmprW+ZomThx4gop5ajDy3bJMkIpZY0QYhEwDVh7mO0p4CmAUaNGyQkTJnSoj8WLF9PRuj2NvuJLX/EDTowvUkq8AR2PP0izP4jHrwOQE+8EYEVJFeX1Xjx+o4zHHyTGaeXCEcYOvccXbWVXVVOL+gNTIvnZ9AIALn/yK3ZWNYXrewM6mgApBQv2+DAJQaMv2GJMlxWl8+fLhwOQ9/N5BPSWInX92CyumDAEbyDITb+c38qnOyf047oJA6lq9HHbbxe0sv9kaj4TJuSxq6qJ73+8KPy+WRNommDs8HwmjMliy/56frv0a0yahkkDkzDsGf0LmDA0hUXvrEVSAggkUBe0YHfaGDS0gDPy4oksqebt3euNLKWahtBMADgcdhxWM8IToD7gAeBQuXQ6I7BbTODx06T7WoxdAC6nHavZhGz245W+VqcvulwRWEwautlPUPgB2LNnN/fceSsVZWVYzRq33XYb1996B2iB8LVb9vUX/PDma8jKzsGsCS655BIefPDBVp8fgN1up7Cw8Ii2w+mwgAshEgB/SLwjgMnA/3a0PYXiZOMP6lQ3+vh8SwXvrPGyRdtORqyDaUOSAfh8SzlrS+vC4urxBxFC8OuZgwFDYD/bXI4noOMN2d0OK+98/0wArn92GZ9tLm/RZ16ii4U/Mg7R/sO8jSw/LDwwLN0dFvBPN5dTXNGI3WLCbtGIsJjwhv4IGGWjyYl3huwm1uyu4ZvtVUjAH9CZMCiJM/snYBLCEElNIzvOEa7/+KyRCMAUElezJkiNjgDAomm8eecZoboHH7FOKwDuCAtf3D/ReP+QMnaLIaTpMRFseXh6WJgPp39SJKsenNLmtZk5Io1Xlu/C59exWjSeuLaIoqyYsL0oKyb8OW/YsIG8xJbfnlx2My5729+oIu0WIu2WNu1RERaiItq2uyMsuEN2iy+Sx//+1yOmk230BthR0YgARp5+BvPefw+nreu233SmpRTgOSGECSOW/qqU8r2uGZZCcfwEdUlNkw93hAWzSWP9njqWFVdR2eijssFLZYOPykYvc24aTYTVxCMfbOTfX+wI1/+sdAMA234/A5Mm+GDtPl5aYuyms5oNAXVHWMIC7gvoSIz/zPZIG3aLiXiXLdzeZUXpjMmNxW42BDbCqhHjsIbtj1w6FF9AYrdoYRGOCAkgwKu3jz2qvw+cP6jF6xUl1cx6+ht8fh2LWePW8f1aiN7hTB2c3KZN0wQjM9uua9IE6TGONu1CCCymjh8eXpQVw4u3jOHlhcu4+tzTjupHR9izeQO71q0hY/BQUgcUdKqtlJSU8Lb4Q9PJDho0CKfNTE68k/UWcFhNXSre0LlVKN8B7ZvnKxQdQEpJnSdgiG+jLyzAUwcnE++ysXhTGf/8dDuVjV6qGn1UNfrQJSy+dwLZ8U6+3FrBw/M2IATEOKzEOa3EOq00+4NEWE1MG5JMSVUTH6/fjwQ0AdeNyQ5/5X7gvEE8cN4gbGbtiLPIeyYP4J6jjH/m8NSj+peXGNnhz+ZInGjRO9kUZcVQ38963H688tBPW72XP2YcI6aeh9/r4eUH76OiZAdSSoQQxGflMHL6TIZMOJemulr++9c/tKh75a8eaXffR0on67SZcVk1li75huHDh5Oamsqf//xnBg8efFx+HQm1lV5x0pBS0ugLYg591S6r9/DJhrIW4lzV6OOeyQMYmRnDh+v28b0XWud2zo13Ee+yIaURBsmJd1KUFUu8yxDpA199rzw9g4tHphHjsGI6ggCflh2LJgRfbCk3vqqbNWaOSA2LdYTV1KpOT6ejoncq4W1qDG99l1LibWrsknaPlk52+PDhlJSU4HK5mDdvHhdddBFbtmzpdJ9KwBUd4sASL1tGBZlxzhaz5EEpUQxKjWJ3dRO/fHstlQ3G7LiiwYs3oPOny4Zx+agMSqub+embawBwWk3EuWzEOq3hOO/gVDe/PK+AeJeNOJcxe4532YgLxWEnDkxk4sC2z0KNOkqM8wB9bdaqOPqM2WKzc95d9/Lab39BMBDAZDZz3l33hsMojij3cc24D3CsdLJRUVHhVU4zZszgzjvvpKKigvj4+OPu61CUgCuOSU2Tjx0VjeGHw2ri7x9vwevXeX1L66X/904ZwKDUKKwmjcoGH3EuK/2TXGHxHZpuZIErSIniy59OIs5pDd/8OpSMWAe3jMs94f6pWeupReqAAi5/4OEui4G3J53s/v37cblcCCFYunQpuq4TFxfXqX5BCbgiRJMvQHFFEzsqGnHaTEzIT0TXJaP/8DHl9d5wOU3AqKyY8A08AUwdnMRlRRnEuqzEO20kRBo38hKj7Pz3rrPa7NNuMZEWWvWgUJxMUgcUdFq4D9CedLJvv/02zz77LGazmYiICObOnYs4fI1iB1ACfgrhC+jsqm6iwRNgeEY0AHe/vIqlO6rYV+cJlzszL44J+YlomuCq0zKIslvIiXeSk+AkI8bBmtLa8GoHq+XYqx0Uir5Me9LJ3n777dx7771d3rcS8D6GrksqGr0kRtoB+M+XO1gcWk+8q7qZoC7JTXDyyY8nABDrtHJGXhy58U5y4l1kxzvIjnOG2/vxlPxWfai4sULRM1AC3gs5sPwJ4KttFXy2uYLiUHy6uLIRkyZY99BUhBBsK2+krM7L4DQ35w9LJSfeSb9DNj0cWNN8vKi4sULR/SgB7+GU1jSzvLgqfAOxuKKR7RWNfH7fRKIdVr7eVsm/v9hOZqyDnHgn4wfEkxPvIqBLLCbBby8a0t0uKBSKE4QS8JPMgeV3kTnVFGXF4A0EKalsYnv5QYHeUdHI7y8ZQl5iJJ9uKufnb61BCEh1R5Cb4OTiwjT8oQw5d0zox/+c0x+zSR2upFCcaigBP0nUe/y8s3oPv353HQFd8u6Ob3j51jHUefzc+OyycLl4l43ceCfNPmMt9NTBSYzKjiEz1nHEpXYOq7qECsWpivrffwIoq/MggaQoO7uqmrju30sormxqUSYQ1PlmeyVXn57J368aQU68k+x4Z6vNJ3EuG3GH5NdQKBSKAygB7yS6Lpm3di/r9tSxfk8d6/bUUdHg5eazcnjg/EEkRtkoSIni0pHpWM0ajy7YjD9gbNsekxtH7CHpQxUKRe/D4/Ewfvx4vF4vgUCAyy67jIceanlEsNfr5ZZbbmHFihXExcXxyiuvkJ2d3em+lYC3E48/yJb9DazbU8v6vXXEOq388NwBaJrg1++up6bJR/+kSCbkJzA4NYrROcYuK5vZxBPXFoXbGZUdq5bfKRR9CJvNxieffILL5cLv93PWWWcxffp0xowZEy4zZ84cYmJi2Lp1K3PnzuX+++/nlVde6XTfSsCPQG2zn93VTQxONbZ8f/+llXy4dl84+b3TamLKIak437hjLMluOzbzsZMfqeV3CkX34y2pw7u9FluuG1tW1LErHAUhRDjPid/vx+/3t9pl+f777/O73/0OgMsuu4wf/OAHLZYDdxQl4MCqndV8vqWCdXtqWbenjt3VzUTazXz3qykIYeRFzop1MDjVzeDUKDJjHS3Si2YdsvFFoVB0L2X//K7Ve45h8bjGpqL7gpQ98S2BfY0cyAVhTnYSeWYazlFJBBv9VL6woUXdxNuHHbPPYDBIUVERW7du5fvf/36LdLIAe/fuJSMjAwCz2Yzb7aayslIls2ovQV2yvbzBiFXvNeLV/7yuCKfNzIL1+3ni023kxDkZkRHNNaMzGZzqRpdgEnDzWTndPXyFQtFFSE/g4CGWMvS6k5hMJlavXk1NTQ0XX3wxa9euZciQE78Ho08KeLMvyKb99eTEOXE7LPz32z385PVvw2cSWs0a+UmRVDR4cdrM3DY+l+9PzOvy0zIUCsXJ52gzZs1qIvaqgVQ8vQYZ0BFmjdirBobDKCanpV0z7raIjo5m4sSJzJ8/v4WAp6SksGvXLtLT0wkEAtTW1nZvNkIhRAYwB0jC+Hv2lJTy750eUQeoaPDy5srd4ZUg28ob0CU8MWsk04emkJfoYtboLAanGnmq+yW4sByy8SX6kGOuFApF38aWFUX8LUO7LAZeXl6OxWIhOjqa5uZmFixYwP3339+izIwZM3juuecYO3Ysr7/+OpMmTer2bIQB4MdSypVCiEhghRBigZRyfadHdRgrSqr57zYfzXF7EUKwPrQSZMbQFC4ZmU6jN8Dv520k1W1nUGoU04emMCglitNzYgEj7/Th5wcqFIpTF1tWVKeF+wB79+7l+uuvJxgMous6V1xxBeeffz4PPvggo0aNYubMmcyePZs777yTvLw8YmNjmTt3bpf03ZkzMfcCe0PP64UQG4A0oEsF/MBBrR6/zhtbjOO1NAH9Elx4A0ZIJCPGwcoHJodPzFYoFIqTxbBhw1i1alWr93/zm9+En9vtdl577bUu77tLgr5CiGyMA45bH8/SSb7ZXokvJNQCmDUmi1/MKGhxXqGmCSXeCoXilEMcKxH5MRsQwgV8CjwspXzzCPbbgNsAkpKSio73q8PW6iB/XOYhoEvMmuC+0+zkxfS+w2YPpaGhIbxutDfTV/wA5UtPpT2+uN1u8vLyTtKIOkYwGMRkap9ubd26ldra2hbvTZw4cYWUclSrwlLKDj8AC/Ah8KP2lC8qKpIdYXlxlfzx0x/K5cVVHarf01i0aFF3D6FL6Ct+SKl86am0x5f169ef+IF0krq6unaXPZI/wHJ5BE3tzCoUAfwb2CClfLSj7bQHtXtRoVAcDdkFuxp7AvI4IyKdSSJ9JnAdMEkIsTr0mNGJ9hQKheK4sdvtVFZWHrf49TSklFRWVmK329tdpzOrUL7AuK+oUCgU3UZ6ejq7d++mvLy8u4fSJh6Pp13CbLfbSU9Pb3e7auuhQqHo1VgsFnJyena6i8WLF1NYWNjl7apzuBQKhaKXogRcoVAoeilKwBUKhaKX0umNPMfVmRDlQEkHq8cDFV04nO6kr/jSV/wA5UtPpa/40lk/sqSUCYe/eVIFvDMIIZbLI+1E6oX0FV/6ih+gfOmp9BVfTpQfKoSiUCgUvRQl4AqFQtFL6U0C/lR3D6AL6Su+9BU/QPnSU+krvpwQP3pNDFyhUCgULelNM3CFQqFQHEKPE3AhxDQhxCYhxFYhxE+PYLcJIV4J2ZeEDpPocbTDjxuEEOWHJAK7pTvG2R6EEM8IIcqEEGvbsAshxP8L+fqdEGLkyR5je2iHHxOEELWHXJMHT/YY24sQIkMIsUgIsV4IsU4I8T9HKNPjr0s7/egV10UIYRdCLBVCfBvy5aEjlOla/TpSjtnuegAmYBuQC1iBb4FBh5W5E3gy9Pwq4JXuHncH/bgBeKy7x9pOf8YDI4G1bdhnAB9gJDcbAyzp7jF30I8JwHvdPc52+pICjAw9jwQ2H+F3rMdfl3b60SuuS+hzdoWeWzBOKBtzWJku1a+eNgM/HdgqpdwupfQBc4ELDytzIfBc6PnrwDmi5yUCbo8fvQYp5WdA1VGKXAjMkQbfANFCiJSTM7r20w4/eg1Syr1SypWh5/XAgTNpD6XHX5d2+tErCH3ODaGXltDj8JuMXapfPU3A04Bdh7zeTeuLGS4jpQwAtUDcSRld+2mPHwCXhr7avi6EyDg5QzshtNff3sDY0FfgD4QQg7t7MO3hKGfS9qrrcoyzdXvFdRFCmIQQq4EyYIGUss1r0hX61dME/FTiv0C2lHIYsICDf5UV3cdKjC3Lw4H/A97u3uEcm9CZtG8AP5RS1nX3eDrKMfzoNddFShmUUo4A0oHThRBDTmR/PU3AS4FDZ6LpofeOWEYIYQbcQOVJGV37OaYfUspKKaU39PJpoOgkje1E0J7r1uORUtYd+AospZwHWIQQ8d08rDYRQlgwRO9FeYQDxekl1+VYfvS26wIgpawBFgHTDjN1qX71NAFfBvQXQuQIIawYQf53DyvzLnB96PllwCcydEegB3FMPw6LRc7EiP31Vt4FZodWPYwBaqWUe7t7UMeLECL5QDxSCHE6xv+PnjY5ANp9Jm2Pvy7t8aO3XBchRIIQIjr0PAKYDGw8rFiX6lePOpFHShkQQvwA46R7E/CMlHKdEOI3GKcyv4txsZ8XQmzFuCF1VfeN+Mi004+7hRAzgQCGHzd024CPgRDiZYyVAPFCiN3ArzBu0CClfBKYh7HiYSvQBNzYPSM9Ou3w4zLgDiFEAGgGruqBk4MDHDiTdk0o5grwcyATetV1aY8fveW6pADPCSFMGH9kXpVSvnci9UvtxFQoFIpeSk8LoSgUCoWinSgBVygUil6KEnCFQqHopSgBVygUil6KEnCFQqHopSgBVygUil6KEnCFQqHopSgBVygUil7K/weTaI1yp6aUgwAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "for log10_beta in log10_betas:\n", + "\n", + " plt.figure()\n", + "\n", + " for log10_gamma in log10_gammas:\n", + " loss = np.array([Results[log10_alpha][log10_beta][log10_gamma].loss for log10_alpha in log10_alphas])\n", + " plt.plot(log10_alphas, loss, '.--', label = log10_gamma)\n", + "\n", + " plt.legend()\n", + " plt.grid()" + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "colors = ['tab:blue','tab:orange','tab:green','tab:red','tab:purple','tab:brown','tab:pink', 'tab:gray','tab:olive','tab:cyan']\n", + "markers = ['.','v','s','*','D','o','^','<','>','p','P','+','X','d']\n", + "\n", + "for i,log10_beta in enumerate(log10_betas):\n", + "\n", + " # plt.figure()\n", + "\n", + " for j,log10_gamma in enumerate(log10_gammas):\n", + " chi2 = np.array([np.sum(unwrap_dict(Results[log10_alpha][log10_beta][log10_gamma].chi2)) for log10_alpha in log10_alphas])\n", + " chi2_test = np.array([np.sum(unwrap_dict(Results[log10_alpha][log10_beta][log10_gamma].chi2_test)) for log10_alpha in log10_alphas])\n", + " chi2_new_obs = np.array([np.sum(unwrap_dict(Results[log10_alpha][log10_beta][log10_gamma].chi2_new_obs)) for log10_alpha in log10_alphas])\n", + "\n", + " loss = np.array([Results[log10_alpha][log10_beta][log10_gamma].loss for log10_alpha in log10_alphas])\n", + " \n", + " # plt.plot(log10_alphas, loss, markers[i] + '--', color = colors[j], label = log10_gamma)\n", + " # plt.plot(log10_alphas, chi2, markers[i] + '--', color = colors[j], label = log10_gamma)\n", + " plt.plot(log10_alphas, chi2_test, markers[i] + '--', color = colors[j], label = log10_gamma)\n", + " # plt.plot(log10_alphas, chi2_new_obs, markers[i] + '--', color = colors[j], label = log10_gamma)\n", + "\n", + " # plt.legend()\n", + " plt.grid()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### d. automatic optimization of hyper parameters" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Input random_state employed both for test_obs and test_frames\n", + "Input random_state employed both for test_obs and test_frames\n", + "\n", + "log10 hyperpars: [('alpha', 2.0), ('beta', 0.0), ('gamma', 2.0)]\n" + ] + }, + { + "ename": "KeyboardInterrupt", + "evalue": "", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mKeyboardInterrupt\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mhyper_minimizer\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdata\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mregularization\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mregularization\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mstarting_alpha\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;36m100\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mstarting_beta\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;36m1\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mstarting_gamma\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;36m100\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mrandom_states\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;36m2\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", + "\u001b[0;32m~/3_alphabetagamma/Functions.py\u001b[0m in \u001b[0;36mhyper_minimizer\u001b[0;34m(data, starting_alpha, starting_beta, starting_gamma, regularization, random_states, which_set, gtol, starting_pars)\u001b[0m\n\u001b[1;32m 2199\u001b[0m \u001b[0;31m# hyper_function(log10_hyperpars0, map_hyperpars, data, regularization, test_obs, test_frames, which_set, derivatives_funs, starting_pars)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2200\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 2201\u001b[0;31m \u001b[0mhyper_mini\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mminimize\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mhyper_function\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mlog10_hyperpars0\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0margs\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mmethod\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m'BFGS'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mjac\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;32mTrue\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0moptions\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m{\u001b[0m\u001b[0;34m'gtol'\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mgtol\u001b[0m\u001b[0;34m}\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;31m#, 'maxfev': 20})#, 'ftol': 0.1})\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 2202\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2203\u001b[0m \u001b[0mhyper_intermediate\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mtot_chi2\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0marray\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mhyper_intermediate\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mtot_chi2\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/.local/lib/python3.6/site-packages/scipy/optimize/_minimize.py\u001b[0m in \u001b[0;36mminimize\u001b[0;34m(fun, x0, args, method, jac, hess, hessp, bounds, constraints, tol, callback, options)\u001b[0m\n\u001b[1;32m 610\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0m_minimize_cg\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfun\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mx0\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mjac\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcallback\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0moptions\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 611\u001b[0m \u001b[0;32melif\u001b[0m \u001b[0mmeth\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0;34m'bfgs'\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 612\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0m_minimize_bfgs\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfun\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mx0\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mjac\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcallback\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0moptions\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 613\u001b[0m \u001b[0;32melif\u001b[0m \u001b[0mmeth\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0;34m'newton-cg'\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 614\u001b[0m return _minimize_newtoncg(fun, x0, args, jac, hess, hessp, callback,\n", + "\u001b[0;32m~/.local/lib/python3.6/site-packages/scipy/optimize/optimize.py\u001b[0m in \u001b[0;36m_minimize_bfgs\u001b[0;34m(fun, x0, args, jac, callback, gtol, norm, eps, maxiter, disp, return_all, finite_diff_rel_step, **unknown_options)\u001b[0m\n\u001b[1;32m 1100\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1101\u001b[0m sf = _prepare_scalar_function(fun, x0, jac, args=args, epsilon=eps,\n\u001b[0;32m-> 1102\u001b[0;31m finite_diff_rel_step=finite_diff_rel_step)\n\u001b[0m\u001b[1;32m 1103\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1104\u001b[0m \u001b[0mf\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0msf\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfun\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/.local/lib/python3.6/site-packages/scipy/optimize/optimize.py\u001b[0m in \u001b[0;36m_prepare_scalar_function\u001b[0;34m(fun, x0, jac, args, bounds, epsilon, finite_diff_rel_step, hess)\u001b[0m\n\u001b[1;32m 260\u001b[0m \u001b[0;31m# calculation reduces overall function evaluations.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 261\u001b[0m sf = ScalarFunction(fun, x0, args, grad, hess,\n\u001b[0;32m--> 262\u001b[0;31m finite_diff_rel_step, bounds, epsilon=epsilon)\n\u001b[0m\u001b[1;32m 263\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 264\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0msf\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/.local/lib/python3.6/site-packages/scipy/optimize/_differentiable_functions.py\u001b[0m in \u001b[0;36m__init__\u001b[0;34m(self, fun, x0, args, grad, hess, finite_diff_rel_step, finite_diff_bounds, epsilon)\u001b[0m\n\u001b[1;32m 74\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 75\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_update_fun_impl\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mupdate_fun\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 76\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_update_fun\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 77\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 78\u001b[0m \u001b[0;31m# Gradient evaluation\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/.local/lib/python3.6/site-packages/scipy/optimize/_differentiable_functions.py\u001b[0m in \u001b[0;36m_update_fun\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 164\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m_update_fun\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 165\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mf_updated\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 166\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_update_fun_impl\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 167\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mf_updated\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;32mTrue\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 168\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/.local/lib/python3.6/site-packages/scipy/optimize/_differentiable_functions.py\u001b[0m in \u001b[0;36mupdate_fun\u001b[0;34m()\u001b[0m\n\u001b[1;32m 71\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 72\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mupdate_fun\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 73\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mf\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mfun_wrapped\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mx\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 74\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 75\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_update_fun_impl\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mupdate_fun\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/.local/lib/python3.6/site-packages/scipy/optimize/_differentiable_functions.py\u001b[0m in \u001b[0;36mfun_wrapped\u001b[0;34m(x)\u001b[0m\n\u001b[1;32m 68\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mfun_wrapped\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mx\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 69\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mnfev\u001b[0m \u001b[0;34m+=\u001b[0m \u001b[0;36m1\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 70\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mfun\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mx\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 71\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 72\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mupdate_fun\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/.local/lib/python3.6/site-packages/scipy/optimize/optimize.py\u001b[0m in \u001b[0;36m__call__\u001b[0;34m(self, x, *args)\u001b[0m\n\u001b[1;32m 72\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m__call__\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mx\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 73\u001b[0m \u001b[0;34m\"\"\" returns the the function value \"\"\"\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 74\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_compute_if_needed\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mx\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 75\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_value\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 76\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/.local/lib/python3.6/site-packages/scipy/optimize/optimize.py\u001b[0m in \u001b[0;36m_compute_if_needed\u001b[0;34m(self, x, *args)\u001b[0m\n\u001b[1;32m 66\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mall\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mx\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mx\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mor\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_value\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mNone\u001b[0m \u001b[0;32mor\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mjac\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 67\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mx\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0masarray\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mx\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcopy\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 68\u001b[0;31m \u001b[0mfg\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfun\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mx\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 69\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mjac\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mfg\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 70\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_value\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mfg\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/3_alphabetagamma/Functions.py\u001b[0m in \u001b[0;36mhyper_function\u001b[0;34m(log10_hyperpars, map_hyperpars, data, regularization, test_obs, test_frames, which_set, derivatives_funs, starting_pars)\u001b[0m\n\u001b[1;32m 2093\u001b[0m \u001b[0mdata_test\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mout\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2094\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 2095\u001b[0;31m \u001b[0mmini\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mminimizer\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdata_train\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mregularization\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mregularization\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0malpha\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0malpha\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mbeta\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mbeta\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mgamma\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mgamma\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mstarting_pars\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mstarting_pars\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 2096\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2097\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mhasattr\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mmini\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m'pars'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mpars_ff_fm\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mmini\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mpars\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/3_alphabetagamma/Functions.py\u001b[0m in \u001b[0;36mminimizer\u001b[0;34m(original_data, regularization, alpha, beta, gamma, gtol, gtol_inn, data_test, starting_pars)\u001b[0m\n\u001b[1;32m 1247\u001b[0m \u001b[0mgradient_fun\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mjax\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mgrad\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mloss_function\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0margnums\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;36m0\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1248\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1249\u001b[0;31m \u001b[0mmini\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mminimize\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mloss_function_and_grad\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mpars_ff_fm_0\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0margs\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0mdata\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mregularization\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0malpha\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mbeta\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mgamma\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mgtol_inn\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mmethod\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mbounds\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mgradient_fun\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mmethod\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m'BFGS'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mjac\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;32mTrue\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0moptions\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m{\u001b[0m\u001b[0;34m'gtol'\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mgtol\u001b[0m\u001b[0;34m}\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1250\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1251\u001b[0m \u001b[0mpars_ff_fm\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mmini\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mx\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/.local/lib/python3.6/site-packages/scipy/optimize/_minimize.py\u001b[0m in \u001b[0;36mminimize\u001b[0;34m(fun, x0, args, method, jac, hess, hessp, bounds, constraints, tol, callback, options)\u001b[0m\n\u001b[1;32m 610\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0m_minimize_cg\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfun\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mx0\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mjac\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcallback\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0moptions\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 611\u001b[0m \u001b[0;32melif\u001b[0m \u001b[0mmeth\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0;34m'bfgs'\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 612\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0m_minimize_bfgs\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfun\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mx0\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mjac\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcallback\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0moptions\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 613\u001b[0m \u001b[0;32melif\u001b[0m \u001b[0mmeth\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0;34m'newton-cg'\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 614\u001b[0m return _minimize_newtoncg(fun, x0, args, jac, hess, hessp, callback,\n", + "\u001b[0;32m~/.local/lib/python3.6/site-packages/scipy/optimize/optimize.py\u001b[0m in \u001b[0;36m_minimize_bfgs\u001b[0;34m(fun, x0, args, jac, callback, gtol, norm, eps, maxiter, disp, return_all, finite_diff_rel_step, **unknown_options)\u001b[0m\n\u001b[1;32m 1100\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1101\u001b[0m sf = _prepare_scalar_function(fun, x0, jac, args=args, epsilon=eps,\n\u001b[0;32m-> 1102\u001b[0;31m finite_diff_rel_step=finite_diff_rel_step)\n\u001b[0m\u001b[1;32m 1103\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1104\u001b[0m \u001b[0mf\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0msf\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfun\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/.local/lib/python3.6/site-packages/scipy/optimize/optimize.py\u001b[0m in \u001b[0;36m_prepare_scalar_function\u001b[0;34m(fun, x0, jac, args, bounds, epsilon, finite_diff_rel_step, hess)\u001b[0m\n\u001b[1;32m 260\u001b[0m \u001b[0;31m# calculation reduces overall function evaluations.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 261\u001b[0m sf = ScalarFunction(fun, x0, args, grad, hess,\n\u001b[0;32m--> 262\u001b[0;31m finite_diff_rel_step, bounds, epsilon=epsilon)\n\u001b[0m\u001b[1;32m 263\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 264\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0msf\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/.local/lib/python3.6/site-packages/scipy/optimize/_differentiable_functions.py\u001b[0m in \u001b[0;36m__init__\u001b[0;34m(self, fun, x0, args, grad, hess, finite_diff_rel_step, finite_diff_bounds, epsilon)\u001b[0m\n\u001b[1;32m 74\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 75\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_update_fun_impl\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mupdate_fun\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 76\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_update_fun\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 77\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 78\u001b[0m \u001b[0;31m# Gradient evaluation\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/.local/lib/python3.6/site-packages/scipy/optimize/_differentiable_functions.py\u001b[0m in \u001b[0;36m_update_fun\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 164\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m_update_fun\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 165\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mf_updated\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 166\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_update_fun_impl\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 167\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mf_updated\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;32mTrue\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 168\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/.local/lib/python3.6/site-packages/scipy/optimize/_differentiable_functions.py\u001b[0m in \u001b[0;36mupdate_fun\u001b[0;34m()\u001b[0m\n\u001b[1;32m 71\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 72\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mupdate_fun\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 73\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mf\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mfun_wrapped\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mx\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 74\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 75\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_update_fun_impl\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mupdate_fun\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/.local/lib/python3.6/site-packages/scipy/optimize/_differentiable_functions.py\u001b[0m in \u001b[0;36mfun_wrapped\u001b[0;34m(x)\u001b[0m\n\u001b[1;32m 68\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mfun_wrapped\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mx\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 69\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mnfev\u001b[0m \u001b[0;34m+=\u001b[0m \u001b[0;36m1\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 70\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mfun\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mx\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 71\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 72\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mupdate_fun\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/.local/lib/python3.6/site-packages/scipy/optimize/optimize.py\u001b[0m in \u001b[0;36m__call__\u001b[0;34m(self, x, *args)\u001b[0m\n\u001b[1;32m 72\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m__call__\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mx\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 73\u001b[0m \u001b[0;34m\"\"\" returns the the function value \"\"\"\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 74\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_compute_if_needed\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mx\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 75\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_value\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 76\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/.local/lib/python3.6/site-packages/scipy/optimize/optimize.py\u001b[0m in \u001b[0;36m_compute_if_needed\u001b[0;34m(self, x, *args)\u001b[0m\n\u001b[1;32m 66\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mall\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mx\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mx\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mor\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_value\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mNone\u001b[0m \u001b[0;32mor\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mjac\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 67\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mx\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0masarray\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mx\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcopy\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 68\u001b[0;31m \u001b[0mfg\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfun\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mx\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 69\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mjac\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mfg\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 70\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_value\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mfg\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/3_alphabetagamma/Functions.py\u001b[0m in \u001b[0;36mloss_function_and_grad\u001b[0;34m(pars, data, regularization, alpha, beta, gamma, gtol_inn, method, boundaries, gradient_fun)\u001b[0m\n\u001b[1;32m 1054\u001b[0m \u001b[0;31m# print('New evaluation:')\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1055\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1056\u001b[0;31m \u001b[0mloss\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mloss_function\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mpars\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdata\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mregularization\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0malpha\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mbeta\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mgamma\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mgtol_inn\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;32mFalse\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mmethod\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mboundaries\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1057\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1058\u001b[0m \u001b[0;31m# print('loss: ', loss)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/3_alphabetagamma/Functions.py\u001b[0m in \u001b[0;36mloss_function\u001b[0;34m(pars_ff_fm, data, regularization, alpha, beta, gamma, fixed_lambdas, gtol_inn, if_save, method, bounds)\u001b[0m\n\u001b[1;32m 952\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 953\u001b[0m mini = minimize(gamma_function, x0[name_sys], args = (flatten_g[name_sys], flatten_gexp[name_sys], weights_P[name_sys], alpha, True),\n\u001b[0;32m--> 954\u001b[0;31m method = method, bounds = boundaries, jac = True, options = options)\n\u001b[0m\u001b[1;32m 955\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 956\u001b[0m \u001b[0mminis\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mname_sys\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mmini\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/.local/lib/python3.6/site-packages/scipy/optimize/_minimize.py\u001b[0m in \u001b[0;36mminimize\u001b[0;34m(fun, x0, args, method, jac, hess, hessp, bounds, constraints, tol, callback, options)\u001b[0m\n\u001b[1;32m 610\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0m_minimize_cg\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfun\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mx0\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mjac\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcallback\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0moptions\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 611\u001b[0m \u001b[0;32melif\u001b[0m \u001b[0mmeth\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0;34m'bfgs'\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 612\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0m_minimize_bfgs\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfun\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mx0\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mjac\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcallback\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0moptions\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 613\u001b[0m \u001b[0;32melif\u001b[0m \u001b[0mmeth\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0;34m'newton-cg'\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 614\u001b[0m return _minimize_newtoncg(fun, x0, args, jac, hess, hessp, callback,\n", + "\u001b[0;32m~/.local/lib/python3.6/site-packages/scipy/optimize/optimize.py\u001b[0m in \u001b[0;36m_minimize_bfgs\u001b[0;34m(fun, x0, args, jac, callback, gtol, norm, eps, maxiter, disp, return_all, finite_diff_rel_step, **unknown_options)\u001b[0m\n\u001b[1;32m 1100\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1101\u001b[0m sf = _prepare_scalar_function(fun, x0, jac, args=args, epsilon=eps,\n\u001b[0;32m-> 1102\u001b[0;31m finite_diff_rel_step=finite_diff_rel_step)\n\u001b[0m\u001b[1;32m 1103\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1104\u001b[0m \u001b[0mf\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0msf\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfun\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/.local/lib/python3.6/site-packages/scipy/optimize/optimize.py\u001b[0m in \u001b[0;36m_prepare_scalar_function\u001b[0;34m(fun, x0, jac, args, bounds, epsilon, finite_diff_rel_step, hess)\u001b[0m\n\u001b[1;32m 260\u001b[0m \u001b[0;31m# calculation reduces overall function evaluations.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 261\u001b[0m sf = ScalarFunction(fun, x0, args, grad, hess,\n\u001b[0;32m--> 262\u001b[0;31m finite_diff_rel_step, bounds, epsilon=epsilon)\n\u001b[0m\u001b[1;32m 263\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 264\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0msf\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/.local/lib/python3.6/site-packages/scipy/optimize/_differentiable_functions.py\u001b[0m in \u001b[0;36m__init__\u001b[0;34m(self, fun, x0, args, grad, hess, finite_diff_rel_step, finite_diff_bounds, epsilon)\u001b[0m\n\u001b[1;32m 74\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 75\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_update_fun_impl\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mupdate_fun\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 76\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_update_fun\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 77\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 78\u001b[0m \u001b[0;31m# Gradient evaluation\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/.local/lib/python3.6/site-packages/scipy/optimize/_differentiable_functions.py\u001b[0m in \u001b[0;36m_update_fun\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 164\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m_update_fun\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 165\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mf_updated\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 166\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_update_fun_impl\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 167\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mf_updated\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;32mTrue\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 168\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/.local/lib/python3.6/site-packages/scipy/optimize/_differentiable_functions.py\u001b[0m in \u001b[0;36mupdate_fun\u001b[0;34m()\u001b[0m\n\u001b[1;32m 71\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 72\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mupdate_fun\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 73\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mf\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mfun_wrapped\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mx\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 74\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 75\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_update_fun_impl\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mupdate_fun\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/.local/lib/python3.6/site-packages/scipy/optimize/_differentiable_functions.py\u001b[0m in \u001b[0;36mfun_wrapped\u001b[0;34m(x)\u001b[0m\n\u001b[1;32m 68\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mfun_wrapped\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mx\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 69\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mnfev\u001b[0m \u001b[0;34m+=\u001b[0m \u001b[0;36m1\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 70\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mfun\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mx\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 71\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 72\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mupdate_fun\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/.local/lib/python3.6/site-packages/scipy/optimize/optimize.py\u001b[0m in \u001b[0;36m__call__\u001b[0;34m(self, x, *args)\u001b[0m\n\u001b[1;32m 72\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m__call__\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mx\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 73\u001b[0m \u001b[0;34m\"\"\" returns the the function value \"\"\"\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 74\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_compute_if_needed\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mx\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 75\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_value\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 76\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/.local/lib/python3.6/site-packages/scipy/optimize/optimize.py\u001b[0m in \u001b[0;36m_compute_if_needed\u001b[0;34m(self, x, *args)\u001b[0m\n\u001b[1;32m 66\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mall\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mx\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mx\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mor\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_value\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mNone\u001b[0m \u001b[0;32mor\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mjac\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 67\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mx\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0masarray\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mx\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcopy\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 68\u001b[0;31m \u001b[0mfg\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfun\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mx\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 69\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mjac\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mfg\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 70\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_value\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mfg\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/3_alphabetagamma/Functions.py\u001b[0m in \u001b[0;36mgamma_function\u001b[0;34m(lambdas, g, gexp, weights, alpha, if_gradient)\u001b[0m\n\u001b[1;32m 496\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mif_gradient\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 497\u001b[0m \u001b[0mav_g\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0meinsum\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'i,ij'\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mnewweights\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mg\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 498\u001b[0;31m \u001b[0mgrad\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m-\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mav_g\u001b[0m\u001b[0;34m-\u001b[0m\u001b[0mgexp\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m-\u001b[0m\u001b[0malpha\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0mlambdas\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0mgexp\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m**\u001b[0m\u001b[0;36m2\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 499\u001b[0m \u001b[0mgrad\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mnumpy\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0marray\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mgrad\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 500\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mgammaf\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mgrad\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mav_g\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/.local/lib/python3.6/site-packages/jax/_src/numpy/lax_numpy.py\u001b[0m in \u001b[0;36mdeferring_binary_op\u001b[0;34m(self, other)\u001b[0m\n\u001b[1;32m 5867\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0misinstance\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mother\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0m_scalar_types\u001b[0m \u001b[0;34m+\u001b[0m \u001b[0m_arraylike_types\u001b[0m \u001b[0;34m+\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0mcore\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mTracer\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 5868\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mNotImplemented\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 5869\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mbinary_op\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mother\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 5870\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mdeferring_binary_op\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 5871\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/.local/lib/python3.6/site-packages/jax/_src/numpy/lax_numpy.py\u001b[0m in \u001b[0;36mfn\u001b[0;34m(x1, x2)\u001b[0m\n\u001b[1;32m 429\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mfn\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mx1\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mx2\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 430\u001b[0m \u001b[0mx1\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mx2\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0m_promote_args\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mnumpy_fn\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m__name__\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mx1\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mx2\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 431\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mlax_fn\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mx1\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mx2\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mx1\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdtype\u001b[0m \u001b[0;34m!=\u001b[0m \u001b[0mbool_\u001b[0m \u001b[0;32melse\u001b[0m \u001b[0mbool_lax_fn\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mx1\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mx2\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 432\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0m_wraps\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mnumpy_fn\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfn\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 433\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mlax_doc\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/.local/lib/python3.6/site-packages/jax/_src/lax/lax.py\u001b[0m in \u001b[0;36mmul\u001b[0;34m(x, y)\u001b[0m\n\u001b[1;32m 346\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mmul\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mx\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mArray\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0my\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mArray\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m->\u001b[0m \u001b[0mArray\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 347\u001b[0m \u001b[0;34mr\"\"\"Elementwise multiplication: :math:`x \\times y`.\"\"\"\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 348\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mmul_p\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mbind\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mx\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0my\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 349\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 350\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mdiv\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mx\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mArray\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0my\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mArray\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m->\u001b[0m \u001b[0mArray\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/.local/lib/python3.6/site-packages/jax/core.py\u001b[0m in \u001b[0;36mbind\u001b[0;34m(self, *args, **params)\u001b[0m\n\u001b[1;32m 262\u001b[0m args, used_axis_names(self, params) if self._dispatch_on_params else None)\n\u001b[1;32m 263\u001b[0m \u001b[0mtracers\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mmap\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mtop_trace\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfull_raise\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0margs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 264\u001b[0;31m \u001b[0mout\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mtop_trace\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mprocess_primitive\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtracers\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mparams\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 265\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mmap\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfull_lower\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mout\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmultiple_results\u001b[0m \u001b[0;32melse\u001b[0m \u001b[0mfull_lower\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mout\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 266\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/.local/lib/python3.6/site-packages/jax/core.py\u001b[0m in \u001b[0;36mprocess_primitive\u001b[0;34m(self, primitive, tracers, params)\u001b[0m\n\u001b[1;32m 601\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 602\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mprocess_primitive\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mprimitive\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtracers\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mparams\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 603\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mprimitive\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mimpl\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0mtracers\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mparams\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 604\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 605\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mprocess_call\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mprimitive\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mf\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtracers\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mparams\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/.local/lib/python3.6/site-packages/jax/interpreters/xla.py\u001b[0m in \u001b[0;36mapply_primitive\u001b[0;34m(prim, *args, **params)\u001b[0m\n\u001b[1;32m 246\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mapply_primitive\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mprim\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mparams\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 247\u001b[0m \u001b[0;34m\"\"\"Impl rule that compiles and runs a single primitive 'prim' using XLA.\"\"\"\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 248\u001b[0;31m \u001b[0mcompiled_fun\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mxla_primitive_callable\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mprim\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m*\u001b[0m\u001b[0munsafe_map\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0marg_spec\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0margs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mparams\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 249\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mcompiled_fun\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 250\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/.local/lib/python3.6/site-packages/jax/_src/util.py\u001b[0m in \u001b[0;36mwrapper\u001b[0;34m(*args, **kwargs)\u001b[0m\n\u001b[1;32m 184\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mf\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 185\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 186\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mcached\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mconfig\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_trace_context\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 187\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 188\u001b[0m \u001b[0mwrapper\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcache_clear\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mcached\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcache_clear\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/.local/lib/python3.6/site-packages/jax/_src/util.py\u001b[0m in \u001b[0;36mcached\u001b[0;34m(_, *args, **kwargs)\u001b[0m\n\u001b[1;32m 177\u001b[0m \u001b[0;34m@\u001b[0m\u001b[0mfunctools\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mlru_cache\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mmax_size\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 178\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mcached\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0m_\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 179\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mf\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 180\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 181\u001b[0m \u001b[0;34m@\u001b[0m\u001b[0mfunctools\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mwraps\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mf\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/.local/lib/python3.6/site-packages/jax/interpreters/xla.py\u001b[0m in \u001b[0;36mxla_primitive_callable\u001b[0;34m(prim, *arg_specs, **params)\u001b[0m\n\u001b[1;32m 295\u001b[0m device_assignment=device and (device.id,))\n\u001b[1;32m 296\u001b[0m \u001b[0moptions\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mparameter_is_tupled_arguments\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mtuple_args\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 297\u001b[0;31m \u001b[0mcompiled\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mbackend_compile\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mbackend\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mbuilt_c\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0moptions\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 298\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mnreps\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0;36m1\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 299\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mpartial\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0m_execute_compiled_primitive\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mprim\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcompiled\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mhandle_result\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/.local/lib/python3.6/site-packages/jax/interpreters/xla.py\u001b[0m in \u001b[0;36mbackend_compile\u001b[0;34m(backend, built_c, options)\u001b[0m\n\u001b[1;32m 358\u001b[0m \u001b[0;31m# we use a separate function call to ensure that XLA compilation appears\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 359\u001b[0m \u001b[0;31m# separately in Python profiling results\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 360\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mbackend\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcompile\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mbuilt_c\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcompile_options\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0moptions\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 361\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 362\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m_execute_compiled_primitive\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mprim\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcompiled\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mresult_handler\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;31mKeyboardInterrupt\u001b[0m: " + ] + } + ], + "source": [ + "hyper_minimizer(data, regularization = regularization, starting_alpha = 100, starting_beta = 1, starting_gamma = 100, random_states = 2)\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "if you do not specify some hyper parameters, as for example $\\gamma$, you are fixing it to $+\\infty$ (no refinement in that \"direction\")" + ] + }, + { + "cell_type": "code", + "execution_count": 53, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Input random_state employed both for test_obs and test_frames\n", + "Input random_state employed both for test_obs and test_frames\n", + "\n", + "log10 hyperpars: [('alpha', -0.9999999999999998), ('beta', 1.0)]\n", + "tot chi2: 28.050535978184612\n", + "tot gradient: [-23.41717915 -0.09195889]\n", + "\n", + "log10 hyperpars: [('alpha', 0.009992212381299215), ('beta', 1.0039662235349724)]\n", + "tot chi2: 23.218529704974383\n", + "tot gradient: [21.17701877 0.04725389]\n", + "\n", + "log10 hyperpars: [('alpha', -0.46963406750226966), ('beta', 1.0020827386764306)]\n", + "tot chi2: 17.14549663562447\n", + "tot gradient: [-3.79427275 -0.11473703]\n", + "\n", + "log10 hyperpars: [('alpha', -0.3669318992980608), ('beta', 1.1216298262759157)]\n", + "tot chi2: 17.227550737324293\n", + "tot gradient: [ 5.8158668 -0.02828849]\n", + "\n", + "log10 hyperpars: [('alpha', -0.42653134673513593), ('beta', 1.0522550458966544)]\n", + "tot chi2: 17.073776208659613\n", + "tot gradient: [ 0.31939131 -0.07235223]\n", + "\n", + "log10 hyperpars: [('alpha', -0.4297529259557293), ('beta', 1.1257705063949672)]\n", + "tot chi2: 17.06863761890843\n", + "tot gradient: [ 0.06255257 -0.06224764]\n" + ] + } + ], + "source": [ + "hyper_out = hyper_minimizer(data, regularization = regularization, starting_alpha = 0.1, starting_beta = 10, random_states = 2, gtol = 0.1)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 56, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'tot_chi2': DeviceArray([28.05053598, 23.2185297 , 17.14549664, 17.22755074,\n", + " 17.07377621, 17.06863762], dtype=float64),\n", + " 'tot_gradient': DeviceArray([[-23.41717915, -0.09195889],\n", + " [ 21.17701877, 0.04725389],\n", + " [ -3.79427275, -0.11473703],\n", + " [ 5.8158668 , -0.02828849],\n", + " [ 0.31939131, -0.07235223],\n", + " [ 0.06255257, -0.06224764]], dtype=float64),\n", + " 'log10_hyperpars': DeviceArray([[-1. , 1. ],\n", + " [ 0.00999221, 1.00396622],\n", + " [-0.46963407, 1.00208274],\n", + " [-0.3669319 , 1.12162983],\n", + " [-0.42653135, 1.05225505],\n", + " [-0.42975293, 1.12577051]], dtype=float64)}" + ] + }, + "execution_count": 56, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "vars(hyper_out.intermediate)" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3.6.8 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.6.8" + }, + "orig_nbformat": 4, + "vscode": { + "interpreter": { + "hash": "916dbcbb3f70747c44a77c7bcd40155683ae19c65e1c03b4aa3499c5328201f1" + } + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/Examples/github_DATA/alchemical/DDGs b/Examples/github_DATA/alchemical/DDGs new file mode 100644 index 0000000..046b1ad --- /dev/null +++ b/Examples/github_DATA/alchemical/DDGs @@ -0,0 +1,3 @@ +name,A1,A2,A3,A4,A5,B1,B2,B3,B4,B5 +exp. value,6.3,1.7,7.1,-2.5,-1.7,2.5,2.1,5.4,8.6,1.7 +uncertainty,0.5,0.9,0.9,1.2,0.9,2.1,1.3,1.3,0.8,1.0 diff --git a/Examples/github_DATA/alchemical/DQs.npy b/Examples/github_DATA/alchemical/DQs.npy new file mode 100644 index 0000000..3da1ccc Binary files /dev/null and b/Examples/github_DATA/alchemical/DQs.npy differ diff --git a/Examples/github_DATA/alchemical/cos_etas/cos_eta_A1_MD.npy b/Examples/github_DATA/alchemical/cos_etas/cos_eta_A1_MD.npy new file mode 100644 index 0000000..13e775a Binary files /dev/null and b/Examples/github_DATA/alchemical/cos_etas/cos_eta_A1_MD.npy differ diff --git a/Examples/github_DATA/alchemical/cos_etas/cos_eta_A1_MS.npy b/Examples/github_DATA/alchemical/cos_etas/cos_eta_A1_MS.npy new file mode 100644 index 0000000..5a60551 Binary files /dev/null and b/Examples/github_DATA/alchemical/cos_etas/cos_eta_A1_MS.npy differ diff --git a/Examples/github_DATA/alchemical/cos_etas/cos_eta_A2_MD.npy b/Examples/github_DATA/alchemical/cos_etas/cos_eta_A2_MD.npy new file mode 100644 index 0000000..b9b4ecb Binary files /dev/null and b/Examples/github_DATA/alchemical/cos_etas/cos_eta_A2_MD.npy differ diff --git a/Examples/github_DATA/alchemical/cos_etas/cos_eta_A2_MS.npy b/Examples/github_DATA/alchemical/cos_etas/cos_eta_A2_MS.npy new file mode 100644 index 0000000..4d82d68 Binary files /dev/null and b/Examples/github_DATA/alchemical/cos_etas/cos_eta_A2_MS.npy differ diff --git a/Examples/github_DATA/alchemical/cos_etas/cos_eta_A2_Mdup_syn_Aduri.npy b/Examples/github_DATA/alchemical/cos_etas/cos_eta_A2_Mdup_syn_Aduri.npy new file mode 100644 index 0000000..d34df72 Binary files /dev/null and b/Examples/github_DATA/alchemical/cos_etas/cos_eta_A2_Mdup_syn_Aduri.npy differ diff --git a/Examples/github_DATA/alchemical/cos_etas/cos_eta_A3_MD.npy b/Examples/github_DATA/alchemical/cos_etas/cos_eta_A3_MD.npy new file mode 100644 index 0000000..0fedf15 Binary files /dev/null and b/Examples/github_DATA/alchemical/cos_etas/cos_eta_A3_MD.npy differ diff --git a/Examples/github_DATA/alchemical/cos_etas/cos_eta_A3_MS.npy b/Examples/github_DATA/alchemical/cos_etas/cos_eta_A3_MS.npy new file mode 100644 index 0000000..eef25a9 Binary files /dev/null and b/Examples/github_DATA/alchemical/cos_etas/cos_eta_A3_MS.npy differ diff --git a/Examples/github_DATA/alchemical/cos_etas/cos_eta_A3_Mdup_syn_Aduri.npy b/Examples/github_DATA/alchemical/cos_etas/cos_eta_A3_Mdup_syn_Aduri.npy new file mode 100644 index 0000000..d6e3c6b Binary files /dev/null and b/Examples/github_DATA/alchemical/cos_etas/cos_eta_A3_Mdup_syn_Aduri.npy differ diff --git a/Examples/github_DATA/alchemical/cos_etas/cos_eta_A4_MD.npy b/Examples/github_DATA/alchemical/cos_etas/cos_eta_A4_MD.npy new file mode 100644 index 0000000..a3c143b Binary files /dev/null and b/Examples/github_DATA/alchemical/cos_etas/cos_eta_A4_MD.npy differ diff --git a/Examples/github_DATA/alchemical/cos_etas/cos_eta_A4_MS.npy b/Examples/github_DATA/alchemical/cos_etas/cos_eta_A4_MS.npy new file mode 100644 index 0000000..1f4f687 Binary files /dev/null and b/Examples/github_DATA/alchemical/cos_etas/cos_eta_A4_MS.npy differ diff --git a/Examples/github_DATA/alchemical/cos_etas/cos_eta_A5_MD.npy b/Examples/github_DATA/alchemical/cos_etas/cos_eta_A5_MD.npy new file mode 100644 index 0000000..4f6dda0 Binary files /dev/null and b/Examples/github_DATA/alchemical/cos_etas/cos_eta_A5_MD.npy differ diff --git a/Examples/github_DATA/alchemical/cos_etas/cos_eta_A5_MS.npy b/Examples/github_DATA/alchemical/cos_etas/cos_eta_A5_MS.npy new file mode 100644 index 0000000..efca2ec Binary files /dev/null and b/Examples/github_DATA/alchemical/cos_etas/cos_eta_A5_MS.npy differ diff --git a/Examples/github_DATA/alchemical/cos_etas/cos_eta_B1_MD.npy b/Examples/github_DATA/alchemical/cos_etas/cos_eta_B1_MD.npy new file mode 100644 index 0000000..35ec5d2 Binary files /dev/null and b/Examples/github_DATA/alchemical/cos_etas/cos_eta_B1_MD.npy differ diff --git a/Examples/github_DATA/alchemical/cos_etas/cos_eta_B1_MS.npy b/Examples/github_DATA/alchemical/cos_etas/cos_eta_B1_MS.npy new file mode 100644 index 0000000..5716b00 Binary files /dev/null and b/Examples/github_DATA/alchemical/cos_etas/cos_eta_B1_MS.npy differ diff --git a/Examples/github_DATA/alchemical/cos_etas/cos_eta_B2_MD.npy b/Examples/github_DATA/alchemical/cos_etas/cos_eta_B2_MD.npy new file mode 100644 index 0000000..afcd9ab Binary files /dev/null and b/Examples/github_DATA/alchemical/cos_etas/cos_eta_B2_MD.npy differ diff --git a/Examples/github_DATA/alchemical/cos_etas/cos_eta_B2_MS.npy b/Examples/github_DATA/alchemical/cos_etas/cos_eta_B2_MS.npy new file mode 100644 index 0000000..821d7a1 Binary files /dev/null and b/Examples/github_DATA/alchemical/cos_etas/cos_eta_B2_MS.npy differ diff --git a/Examples/github_DATA/alchemical/cos_etas/cos_eta_B3_MD.npy b/Examples/github_DATA/alchemical/cos_etas/cos_eta_B3_MD.npy new file mode 100644 index 0000000..46f37e7 Binary files /dev/null and b/Examples/github_DATA/alchemical/cos_etas/cos_eta_B3_MD.npy differ diff --git a/Examples/github_DATA/alchemical/cos_etas/cos_eta_B3_MS.npy b/Examples/github_DATA/alchemical/cos_etas/cos_eta_B3_MS.npy new file mode 100644 index 0000000..a9e90a4 Binary files /dev/null and b/Examples/github_DATA/alchemical/cos_etas/cos_eta_B3_MS.npy differ diff --git a/Examples/github_DATA/alchemical/cos_etas/cos_eta_B4_MD.npy b/Examples/github_DATA/alchemical/cos_etas/cos_eta_B4_MD.npy new file mode 100644 index 0000000..5a6b7db Binary files /dev/null and b/Examples/github_DATA/alchemical/cos_etas/cos_eta_B4_MD.npy differ diff --git a/Examples/github_DATA/alchemical/cos_etas/cos_eta_B4_MS.npy b/Examples/github_DATA/alchemical/cos_etas/cos_eta_B4_MS.npy new file mode 100644 index 0000000..bf3ecb6 Binary files /dev/null and b/Examples/github_DATA/alchemical/cos_etas/cos_eta_B4_MS.npy differ diff --git a/Examples/github_DATA/alchemical/cos_etas/cos_eta_B5_MD.npy b/Examples/github_DATA/alchemical/cos_etas/cos_eta_B5_MD.npy new file mode 100644 index 0000000..67ff4b0 Binary files /dev/null and b/Examples/github_DATA/alchemical/cos_etas/cos_eta_B5_MD.npy differ diff --git a/Examples/github_DATA/alchemical/cos_etas/cos_eta_B5_MS.npy b/Examples/github_DATA/alchemical/cos_etas/cos_eta_B5_MS.npy new file mode 100644 index 0000000..d1dde0f Binary files /dev/null and b/Examples/github_DATA/alchemical/cos_etas/cos_eta_B5_MS.npy differ diff --git a/Examples/github_DATA/alchemical/temperature b/Examples/github_DATA/alchemical/temperature new file mode 100644 index 0000000..e0b207a --- /dev/null +++ b/Examples/github_DATA/alchemical/temperature @@ -0,0 +1 @@ +these DeltaDeltaG are in units of kJ/mol (k_B T = 2.476 kJ/mol = 298 K \ No newline at end of file diff --git a/Examples/load_data.ipynb b/Examples/load_data.ipynb new file mode 100644 index 0000000..a686079 --- /dev/null +++ b/Examples/load_data.ipynb @@ -0,0 +1,1755 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Load data" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "import pandas\n", + "import matplotlib.pyplot as plt" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "from Functions import load_data" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## a. RNA oligomers with NMR observables\n", + "\n", + "*Simultaneous refinement of molecular dynamics ensembles and forward models using experimental data* - Thorben Fröhlking, Mattia Bernetti, Giovanni Bussi\n", + "\n", + "*Boosting Ensemble Refinement with Transferable Force-Field Corrections: Synergistic Optimization for Molecular Simulations* - Ivan Gilardoni, Thorben Fröhlking, Giovanni Bussi" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Download from Zenodo" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let's download data from Zenodo https://zenodo.org/records/10185006 into the folder **DATA_Zenodo**." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Then, there are some staffs to do preliminarly in order to get the following structure of folder **DATA**, which will be loaded directly through **load_data**.\n", + "\n", + "In the folder **DATA** you are going to have:\n", + "- a txt file with original coefficients for the forward model (like the Karplus equations, to compute 3J scalar couplings from dihedral angles, for example);\n", + "- several subfolders, each of them corresponding to a different molecular system; in each subfolder you will have (some of) the following:\n", + " - a folder **forward_qs** (with .npy files corresponding to forward quantities, such as dihedral angles);\n", + " - a folder **g_exp** (with .npy files corresponding to experimental values and uncertainties);\n", + " - a folder **names** (with names of the observables);\n", + " - a file **ff_terms.npy** with force-field correction terms.\n", + "\n", + "In principle, you may have also **weights.npy**, if absent it means all frames have equal weights." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "%%bash\n", + "\n", + "mkdir DATA" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "forward model coefficients" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "coeffs = np.hstack((np.load('DATA_Zenodo/Karplus_coeffs/backbone1_gamma_original.npy'),\n", + " np.load('DATA_Zenodo/Karplus_coeffs/backbone2_beta_epsilon_original.npy'), \n", + " np.load('DATA_Zenodo/Karplus_coeffs/sugar_original.npy')))\n", + "\n", + "labels = ['A_gamma', 'B_gamma', 'C_gamma', 'A_beta', 'B_beta', 'C_beta', 'A_sugar', 'B_sugar', 'C_sugar']\n", + "f = open('DATA/original_fm_coeffs', 'x')\n", + "\n", + "for i in range(len(labels)):\n", + " f.write(labels[i] + ',' + str(coeffs[i]) + '\\n')\n", + "\n", + "f.close()\n", + "\n", + "coeffs = np.hstack((np.load('DATA_Zenodo/Karplus_coeffs/backbone1_gamma_Thorben_ref.npy'),\n", + " np.load('DATA_Zenodo/Karplus_coeffs/backbone2_beta_epsilon_Thorben_ref.npy'), \n", + " np.load('DATA_Zenodo/Karplus_coeffs/sugar_Thorben_ref.npy')))\n", + "\n", + "labels = ['A_gamma', 'B_gamma', 'C_gamma', 'A_beta', 'B_beta', 'C_beta', 'A_sugar', 'B_sugar', 'C_sugar']\n", + "f = open('DATA/fm_coeffs_Thorben_ref', 'x')\n", + "\n", + "for i in range(len(labels)):\n", + " f.write(labels[i] + ',' + str(coeffs[i]) + '\\n')\n", + "\n", + "f.close()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "observables, names, forward quantities, force-field correction terms" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "%%bash\n", + "\n", + "for s in 'AAAA' 'CAAU' 'CCCC' 'GACC' 'UCAAUC' 'UCUCGU' 'UUUU'\n", + "do\n", + " mkdir DATA/${s}\n", + "\n", + " mkdir DATA/${s}/g_exp\n", + " for s2 in 'backbone1_gamma_3J' 'backbone2_beta_epsilon_3J' 'sugar_3J' 'NOEs' 'uNOEs'\n", + " do\n", + " mv DATA_Zenodo/g_exp/${s}/${s2}.npy DATA/${s}/g_exp/${s2}.npy\n", + " done\n", + "\n", + " mkdir DATA/${s}/names\n", + " for s2 in 'backbone1_gamma_3J' 'backbone2_beta_epsilon_3J' 'sugar_3J' 'NOEs' 'uNOEs'\n", + " do\n", + " mv DATA_Zenodo/names/${s}/${s2}.npy DATA/${s}/names/${s2}.npy\n", + " done\n", + "\n", + " mkdir DATA/${s}/observables\n", + " for s2 in 'backbone1_gamma_3J' 'backbone2_beta_epsilon_3J' 'sugar_3J' 'NOEs' 'uNOEs'\n", + " do\n", + " mv DATA_Zenodo/observables/${s}/${s2}.npy DATA/${s}/observables/${s2}.npy\n", + " done\n", + "\n", + " mkdir DATA/${s}/forward_qs\n", + " for s2 in 'backbone1_gamma' 'backbone2_beta_epsilon' 'sugar'\n", + " do\n", + " mv DATA_Zenodo/angles/${s}/${s2}.npy DATA/${s}/forward_qs/${s2}.npy\n", + " done\n", + "\n", + " mv DATA_Zenodo/ff_terms/sincos${s} DATA/${s}/ff_terms\n", + " mv DATA_Zenodo/ff_terms_chi_correction/sincos${s} DATA/${s}/ff_terms_chi\n", + "done" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "ename": "FileNotFoundError", + "evalue": "[Errno 2] No such file or directory: 'DATA/CCCC/ff_terms'", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m\n", + "\u001b[0;31mFileNotFoundError\u001b[0m Traceback (most recent call last)\n", + "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n", + "\u001b[1;32m 2\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[1;32m 3\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mname\u001b[0m \u001b[0;32min\u001b[0m \u001b[0msystem_names\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m----> 4\u001b[0;31m \u001b[0marr\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0marray\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mpandas\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mread_csv\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'DATA/%s/ff_terms'\u001b[0m \u001b[0;34m%\u001b[0m \u001b[0mname\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0m\u001b[1;32m 5\u001b[0m \u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msave\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'DATA/%s/ff_terms.npy'\u001b[0m \u001b[0;34m%\u001b[0m \u001b[0mname\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0marr\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\n", + "\u001b[0;32m~/.local/lib/python3.6/site-packages/pandas/io/parsers.py\u001b[0m in \u001b[0;36mread_csv\u001b[0;34m(filepath_or_buffer, sep, delimiter, header, names, index_col, usecols, squeeze, prefix, mangle_dupe_cols, dtype, engine, converters, true_values, false_values, skipinitialspace, skiprows, skipfooter, nrows, na_values, keep_default_na, na_filter, verbose, skip_blank_lines, parse_dates, infer_datetime_format, keep_date_col, date_parser, dayfirst, cache_dates, iterator, chunksize, compression, thousands, decimal, lineterminator, quotechar, quoting, doublequote, escapechar, comment, encoding, dialect, error_bad_lines, warn_bad_lines, delim_whitespace, low_memory, memory_map, float_precision)\u001b[0m\n", + "\u001b[1;32m 686\u001b[0m )\n", + "\u001b[1;32m 687\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m--> 688\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0m_read\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfilepath_or_buffer\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mkwds\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0m\u001b[1;32m 689\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[1;32m 690\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", + "\n", + "\u001b[0;32m~/.local/lib/python3.6/site-packages/pandas/io/parsers.py\u001b[0m in \u001b[0;36m_read\u001b[0;34m(filepath_or_buffer, kwds)\u001b[0m\n", + "\u001b[1;32m 452\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[1;32m 453\u001b[0m \u001b[0;31m# Create the parser.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m--> 454\u001b[0;31m \u001b[0mparser\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mTextFileReader\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfp_or_buf\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwds\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0m\u001b[1;32m 455\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[1;32m 456\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mchunksize\u001b[0m \u001b[0;32mor\u001b[0m \u001b[0miterator\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\n", + "\u001b[0;32m~/.local/lib/python3.6/site-packages/pandas/io/parsers.py\u001b[0m in \u001b[0;36m__init__\u001b[0;34m(self, f, engine, **kwds)\u001b[0m\n", + "\u001b[1;32m 946\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0moptions\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m\"has_index_names\"\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mkwds\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m\"has_index_names\"\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[1;32m 947\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m--> 948\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_make_engine\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mengine\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0m\u001b[1;32m 949\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[1;32m 950\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mclose\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\n", + "\u001b[0;32m~/.local/lib/python3.6/site-packages/pandas/io/parsers.py\u001b[0m in \u001b[0;36m_make_engine\u001b[0;34m(self, engine)\u001b[0m\n", + "\u001b[1;32m 1178\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m_make_engine\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mengine\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m\"c\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[1;32m 1179\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mengine\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0;34m\"c\"\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m-> 1180\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_engine\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mCParserWrapper\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mf\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0moptions\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0m\u001b[1;32m 1181\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[1;32m 1182\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mengine\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0;34m\"python\"\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\n", + "\u001b[0;32m~/.local/lib/python3.6/site-packages/pandas/io/parsers.py\u001b[0m in \u001b[0;36m__init__\u001b[0;34m(self, src, **kwds)\u001b[0m\n", + "\u001b[1;32m 2008\u001b[0m \u001b[0mkwds\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m\"usecols\"\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0musecols\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[1;32m 2009\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m-> 2010\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_reader\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mparsers\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mTextReader\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0msrc\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwds\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0m\u001b[1;32m 2011\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0munnamed_cols\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_reader\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0munnamed_cols\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[1;32m 2012\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", + "\n", + "\u001b[0;32mpandas/_libs/parsers.pyx\u001b[0m in \u001b[0;36mpandas._libs.parsers.TextReader.__cinit__\u001b[0;34m()\u001b[0m\n", + "\n", + "\u001b[0;32mpandas/_libs/parsers.pyx\u001b[0m in \u001b[0;36mpandas._libs.parsers.TextReader._setup_parser_source\u001b[0;34m()\u001b[0m\n", + "\n", + "\u001b[0;31mFileNotFoundError\u001b[0m: [Errno 2] No such file or directory: 'DATA/CCCC/ff_terms'" + ] + } + ], + "source": [ + "system_names = ['AAAA', 'CAAU', 'CCCC', 'GACC', 'UUUU', 'UCAAUC', 'UCUCGU']\n", + "\n", + "for name in system_names:\n", + " arr = np.array(pandas.read_csv('DATA/%s/ff_terms' % name))\n", + " np.save('DATA/%s/ff_terms.npy' % name, arr)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "demuxing" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "%%bash\n", + "\n", + "for s in 'AAAA' 'CAAU' 'CCCC' 'GACC' 'UUUU'\n", + "do\n", + " mv DATA_Zenodo/demuxing/replica_temp${s} DATA/${s}/replica_temp\n", + "done" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "observables computed with refined (by Thorben) Karplus coefficients" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "%%bash\n", + "\n", + "for s in 'AAAA' 'CAAU' 'CCCC' 'GACC' 'UUUU' 'UCAAUC'\n", + "do\n", + " for s2 in 'backbone1_gamma_3J' 'backbone2_beta_epsilon_3J' 'sugar_3J'\n", + " do\n", + " mv DATA_Zenodo/observables/${s}/${s2}_refKarplus.npy DATA/${s}/observables/${s2}_refKarplus.npy\n", + " done\n", + "done" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "pdb structures" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "%%bash\n", + "\n", + "for s in 'AAAA' 'CAAU' 'CCCC' 'GACC' 'UUUU' 'UCAAUC'\n", + "do\n", + " mv DATA_Zenodo/pdb_structures/reference_test${s}.pdb DATA/${s}/pdb_structure.pdb\n", + "done" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "%%bash\n", + "\n", + "rm -r DATA_Zenodo" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Load data\n", + "Define **infos** dictionary, which specifies required information in order to get data from input files through **load_data**." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Load observables (no force-field terms and no forward quantities)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "infos = {}\n", + "\n", + "# Firstly, define global properties, valid for all the systems:\n", + "\n", + "infos['global'] = {}\n", + "\n", + "# 'name of the folder with data'\n", + "infos['global']['path_directory'] = 'DATA'\n", + "\n", + "# system names\n", + "system_names = ['AAAA','CAAU']\n", + "infos['global']['system_names'] = system_names\n", + "\n", + "# Then, define properties which are specific of each system, like experimental data and observables\n", + "\n", + "for name in system_names:\n", + " infos[name] = {}\n", + " \n", + " # experimental observables (average and uncertainty), corresponding to 'file_name'.npy in DATA/system_name/g_exp/\n", + " # uNOEs values are upper bounds, so specify '<' with ('uNOEs','<')\n", + " infos[name]['g_exp'] = ['NOEs']#, ('uNOEs','<')]\n", + " \n", + " # observables from MD simulations, corresponding to 'file_name'.npy in DATA/system_name/observables/\n", + " # they must correspond also to items of infos[name]['g_exp']\n", + " infos[name]['obs'] = ['NOEs']#, 'uNOEs']\n", + "\n", + "# If some properties are the same for all the systems, you can store them just once in infos['global']\n", + "\n", + "infos['global']['temperature'] = 1 # namely, energies are in unit of k_B T (default value)\n", + "# (in this case, you could do this also for 'g_exp' and 'obs')\n", + "\n", + "# Select the stride for the frames (thinner strides will require more time for minimizations; default value = 1)\n", + "stride = 1000" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "loading data from directory...\n", + "loading AAAA\n", + "loading CAAU\n", + "done\n" + ] + } + ], + "source": [ + "data = load_data(infos, stride = stride)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let's see what **data** contains.\n", + "\n", + "**data['global']** contains **system_names** and **tot_n_experiments** (which computes total n. of experiments given data)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'system_names': ['AAAA', 'CAAU'], 'tot_n_experiments': .tot_n_experiments at 0x7f78c3b71f28>}\n", + "tot. n. of experiments: 75\n" + ] + } + ], + "source": [ + "print(vars(data['global']))\n", + "\n", + "print('tot. n. of experiments: ', data['global'].tot_n_experiments(data))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**data['name_sys']** contains:\n", + "- the observables **g** and the experimental values **gexp**;\n", + "- the corresponding **names** of the observables, which are **n_experiments** in total;\n", + "- the **weights** for each frame in the trajectory, which are **n_frames** in total (considering the stride);\n", + "- **ref** specifies if the experimental values are exact values ($\\pm$ uncertainty) or boundaries;\n", + "- the **temperature**." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "dict_keys(['temperature', 'gexp', 'names', 'ref', 'g', 'weights', 'n_experiments', 'n_frames'])" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "vars(data['AAAA']).keys()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let's look at the observables for system s1 of kind s2; let's compare their average value (resulting from MD simulation) to the experimental value. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAfYAAAFlCAYAAAAZGcpRAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAAsTAAALEwEAmpwYAAA6RUlEQVR4nO3de5RU1Zn///fTBQ1IELyEjggjJCLhIgJyiUFjISOgZkSNBojjkDUkmBVJnMn3a4T8JkpUVjQ6mq+OMXGC0SFGcLxExjBBQcoYo9xbI90iqBgQhQQFbOTW1c/vjzrdVjfV3VVNVVfVqc9rrV5VtWufXXvXqa6nzjn7Yu6OiIiIhENZvisgIiIi2aPALiIiEiIK7CIiIiGiwC4iIhIiCuwiIiIhosAuIiISIh3yXYFsOPHEE71v375ZK2/fvn107do1a+UVKrUzXNTOcFE7wyXb7Vy7du3f3P3TqZ4LRWDv27cva9asyVp5sViMaDSatfIKldoZLmpnuKid4ZLtdprZO809p1PxIiIiIaLALiIiEiJpBXYzm2RmG81ss5nNTvF8JzNbFDy/0sz6Jj03J0jfaGYTg7TOZrbKzF4xsw1m9qOk/A+a2dtmVhn8DTv6ZoqIiJSGVq+xm1kEuBc4H9gGrDazxe5elZRtBvChu59qZlOB24ApZjYImAoMBnoBy8zsNOAgcJ6715hZR+CPZva/7v5yUN517v5YthopIlKIDh8+zLZt2zhw4MARz3Xv3p3q6uo81Kp9qZ0t69y5M71796Zjx45pb5NO57nRwGZ3fwvAzBYCk4HkwD4ZmBvcfwz4DzOzIH2hux8E3jazzcBod38JqAnydwz+tBqNiJSUbdu20a1bN/r27UviK/MTH330Ed26dctTzdqP2tk8d2fXrl1s27aNfv36pb1dOoH9ZGBr0uNtwJjm8rh7rZntAU4I0l9usu3J0HAmYC1wKnCvu69MyjfPzG4AlgOzgx8GjZjZTGAmQEVFBbFYLI2mpKempiar5RUqtTNc1M7i0717d0444QRqamqOeC4ej/PRRx/loVbtS+1sWXl5Obt3787oM5+34W7uHgeGmVkP4EkzG+LurwFzgPeBcuB+4HrgphTb3x88z8iRIz2bwwg0/CJc1M5wCVM7q6urOfbYY1M+pyPZcDmadnbu3Jnhw4ennT+dznPvAn2SHvcO0lLmMbMOQHdgVzrbuvtuYAUwKXj8niccBH5F4lKAiIjk0YUXXsju3btbzHPDDTewbNmyNpUfi8X48pe/3KZtpbF0jthXA/3NrB+JoDwV+FqTPIuB6cBLwOXAc+7uZrYY+I2Z3Umi81x/YJWZfRo47O67zawLiY55twGY2Unu/l5wjf4S4LWjbaSISBjE65zYxp1s2L6Xwb2OJTqgJ5Eya33Do+DuuDtLlixpNe9NNx1xcrUg1dbW0qFDKOZnS6nVI3Z3rwVmAUuBauBRd99gZjeZ2cVBtvnACUHnuO8Bs4NtNwCPkuho93vgmuAU/EnACjN7lcQPh2fd/emgrIfN7M/An4ETgVuy01QRKWbxOmd59Q6e2nyI5dU7iNeVVn/beJ1z1fyVfOeR9dz17Bt855H1XDV/5VG/D3feeSdDhgxhyJAh/PSnPwVgy5YtDBgwgH/6p39iyJAhbN26lb59+/K3v/0NgJtvvpkBAwZw9tlnM23aNO644w4Avv71r/PYY4kBTX379uXGG29kxIgRnH766bz++usArFq1irPOOovhw4fzxS9+kU2bNrVYvy1btnDOOecwYsQIRowYwZ/+9CcApk6dyu9+97uGfPWvHY/Hue666xg1ahRDhw7lF7/4BZA4I3DOOedw8cUXM2jQIAAuueQSzjzzTAYPHsz999/fUNb8+fM57bTTGD16NN/85jeZNWsWAH/961/5yle+wqhRoxg1ahQvvvgiAM8//zzDhg1j2LBhDB8+PO99BtL6yeLuS4AlTdJuSLp/ALiimW3nAfOapL0KpLxg4O7npVMnESkd9UGtcutu9h+Ks/Qv6xnWpwcLZozJ+RFroYht3Enl1t18fCgOwMeH4lRu3U1s407GD6xoU5lr167lV7/6FStXrsTdGTNmDOeeey7HHXccmzZt4qGHHuILX/hCo21Wr17N448/ziuvvMLhw4cZMWIEZ555ZsryTzzxRNatW8fPfvYz7rjjDn75y1/y+c9/nhdeeIEOHTqwbNkyfvSjH/HUU081W8eePXvy7LPP0rlzZzZt2sS0adNYs2YNU6ZM4dFHH+Wiiy7i0KFDLF++nPvuu4/58+fTvXt3Vq9ezcGDBxk7diwTJkwAYN26dbz22msNPcwfeOABjj/+ePbv38+oUaP4yle+wsGDB7n55ptZt24d3bp147zzzuOMM84A4Nprr+Vf//VfOfvss/nLX/7CxIkTqa6u5o477uDee+9l7Nix1NTU0Llz5zbtj2wJ77kIEQmNXAS1YrNh+172B+2vt/9QnKrte9v8Hvzxj3/k0ksvbVic5LLLLuOFF17g4osv5pRTTjkiqAO8+OKLTJ48mc6dO9O5c2f+4R/+odnyL7vsMgDOPPNMnnjiCQD27NnD9OnT2bRpE2bGwYNHDHpq5PDhw8yaNYvKykoikQhvvPEGABdccAHXXnstBw8e5Pe//z1f+tKX6NKlC8888wyvvvpqw5mDPXv2sGnTJsrLyxk9enSjYWN33303Tz75JABbt25l06ZNvP/++5x77rkcf/zxAFxxxRUNr7ls2TKqqj4Z6b13715qamoYO3Ys3/ve97jyyiu57LLL6N27d4ttyjUFdhEpeLkIasVmcK9j6VIeafhxA9ClPMKgXql71R+tbKxE1qlTJwAikQi1tbUA/PCHP2TcuHE8+eSTbNmyhXPPPbfFMu666y4qKip45ZVXqKurazga7ty5M9FolKVLl7Jo0SKmTp0KJPoE3HPPPUycOLFRObFYrFGbYrEYy5Yt46WXXuKYY44hGo2mnCgoWV1dHS+//PIRR+SzZ8/moosuYsmSJYwdO5alS5fy+c9/Po13KDc0V7yIFLz6oJYsl0GtEEUH9GRYnx4cUx7BgGPKIwzr04PogJ5tLvOcc87ht7/9LR9//DH79u3jySef5Jxzzmlxm7Fjx/I///M/HDhwgJqaGp5++ukW8ze1Z88eTj75ZAAefPDBtPKfdNJJlJWVsWDBAuLxT37YTJkyhV/96le88MILTJo0CYCJEydy3333cfjwYQDeeOMN9u3bl7Lc4447jmOOOYbXX3+dl19OTLkyatQonn/+eT788ENqa2t5/PHHG7aZMGEC99xzT8PjyspKAN58801OP/10rr/+ekaNGtXQnyBfFNhFpODlIqgVm0iZsWDGGO6ZNpzvnX8a90wbftR9DEaMGMHXv/51Ro8ezZgxY/jGN77R6njpUaNGcfHFFzN06FAuuOACTj/9dLp37572a37/+99nzpw5DB8+vOEoviXf/va3eeihhzjjjDN4/fXXGx11T5gwgeeff56///u/p7y8HIBvfOMbDBo0iBEjRjBkyBCuvvrqlK8zadIkamtrGThwILNnz2647HDyySfzgx/8gNGjRzN27Fj69u3b0L67776bNWvWMHToUAYNGsTPf/5zAH76058yZMgQhg4dSseOHbngggvSfj9yon4oQzH/nXnmmZ5NK1asyGp5hUrtDJewt7M2XufLqt73f/3lUl9W9b7XxuvyXaWjVlVV1exze/fubceaZOajjz5yd/d9+/b5mWee6WvXrm1zWYXYzvr2HT582L/85S/7E088cdRlHk07U31OgDXeTEzUNXYRKQqRMmP8wAoiO8qJlsh19UI1c+ZMqqqqOHDgANOnT2fEiBH5rlJWzZ07l2XLlnHgwAEmTJjAJZdcku8qZUSBXUREMvKb3/wm31XIqfpx+cVK19hFRERCRIFdREQkRBTYRUREQkSBXUREJEQU2EVEpN0czdKu6XrwwQfZvn17q/mSF605GtkqJ1vUK15EpBjc3h/27TwyvWtPuK7lFdIKRTweb5elXR988EGGDBlCr169cv5ahUhH7CIixSBVUG8pPU2//vWvGT16NMOGDePqq68mHo+zevVqhg4dyoEDB9i3bx+DBw/mtddeIxaL8aUvfYmLLrqIAQMG8K1vfYu6ujoAnnnmGc466yxGjBjBFVdcQU1NDZBYvvX6669nxIgR/Pd///cRS7vOnTuXYcOGMXLkSNatW8fEiRP53Oc+1zCrG8Dtt9/esAzrjTfeCCSWcx04cCDf/OY3GTx4MBMmTGD//v089thjrFmzhiuvvJJhw4axf/9+brrpJkaNGsWQIUOYOXMmifldUnv99dcZPXp0w+MtW7Zw+umnA6RVTvLytmvWrCEajQKwb98+/vmf/5nRo0czfPjwhhXtNmzY0PD+Dx06tNVlbNOhwC4iUqKqq6tZtGgRL774YsPqaQ8//HDDtLH/9m//xve//33+8R//kSFDhgCJ9dTvueceqqqqePPNN3niiSf429/+xi233MKyZctYt24dI0eO5M4772x4nRNOOIF169Y1LNSSrHfv3lRWVnLOOec0BP2XX365IYA/88wzbNq0iVWrVlFZWcnatWv5wx/+AMCmTZu45ppr2LBhAz169ODxxx/n8ssvZ+TIkTz88MNUVlbSpUsXZs2axerVq3nttdfYv39/i/Pbf/7zn+fQoUO8/fbbACxatIgpU6YAZFROU3fccQfnnXceq1atYsWKFVx33XXs27ePn//851x77bVUVlayZs2arKwMp1PxIiIlavny5axdu5ZR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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "s1 = 'AAAA'\n", + "s2 = 'NOEs'\n", + "\n", + "g_mean = np.einsum('ij,i->j', data[s1].g[s2], data[s1].weights)\n", + "\n", + "i = 0\n", + "plt.plot(data[s1].g[s2][:,i],'.')\n", + "plt.title(s1 + ' ' + s2 + ' ' + str(data[s1].names[s2][i]))\n", + "plt.xlabel('frames')\n", + "\n", + "plt.figure(figsize = (8,6))\n", + "\n", + "x = np.arange(len(data[s1].gexp[s2][:,0]))\n", + "plt.plot(g_mean, '.', label = 'original averages', markersize=10)\n", + "plt.plot(data[s1].gexp[s2][:,0], 's', label = 'experimental values')\n", + "plt.errorbar(x, data[s1].gexp[s2][:,0], data[s1].gexp[s2][:,1], fmt = ' ', color = 'tab:orange', capsize = 5, lw = 2)\n", + "\n", + "# xlabels = [data[s1].names[s2][i,0] + data[s1].names[s2][i,1] for i in range(len(v1))]\n", + "# plt.xticks(x, xlabels)\n", + "\n", + "plt.legend()\n", + "plt.grid()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Include also quantities computed through a **forward model**." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Besides previously defined **infos**:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "for name in system_names:\n", + " # include experimental values also for 3J scalar couplings\n", + " infos[name]['g_exp'] = ['backbone1_gamma_3J', 'backbone2_beta_epsilon_3J', 'sugar_3J', 'NOEs']#, ('uNOEs','<')]\n", + "\n", + " # include quantities required to compute observables through the forward model\n", + " # they must correspond to 'file_name'.npy in DATA/system_name/forward_qs/\n", + " infos[name]['forward_qs'] = ['backbone1_gamma','backbone2_beta_epsilon','sugar']\n", + "\n", + "# starting values of the forward model coefficients: specify the file name inside DATA/\n", + "infos['global']['forward_coeffs'] = 'original_fm_coeffs' # string" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now, define the **forward_model**.\n", + "\n", + "In our case-study, the forward model is given by the **Karplus equations**:\n", + "\n", + "$^3 J_\\gamma = A_\\gamma \\, cos^2\\gamma \\, - \\, B_\\gamma \\, cos\\gamma \\, + \\, C_\\gamma$\n", + "\n", + "with empirical coefficients $A_\\gamma,\\,B_\\gamma,\\,C_\\gamma$ ($\\gamma$ dihedral angles), and analogously for $^3 J_{\\beta/\\epsilon}$ (same coefficients both for $\\beta$ and $\\epsilon$ dihedral angles) and $^3J_\\nu$ (sugar dihedral angles)." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**WARNING**: keys of **forward_qs_out** must correspond to associated g_exp, as specified in infos" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "def forward_model_fun(fm_coeffs, forward_qs, selected_obs = None):\n", + "\n", + " # 1. compute the cosine (which is the quantity you need in the forward model;\n", + " # you could do this just once before loading data)\n", + " forward_qs_cos = {}\n", + "\n", + " for type_name in forward_qs.keys():\n", + " forward_qs_cos[type_name] = np.cos(forward_qs[type_name])\n", + "\n", + " # if you have selected_obs, compute only the corresponding observables\n", + " if selected_obs is not None:\n", + " for type_name in forward_qs.keys():\n", + " forward_qs_cos[type_name] = forward_qs_cos[type_name][:,selected_obs[type_name+'_3J']]\n", + "\n", + " # 2. compute observables (forward_qs_out) through forward model\n", + " forward_qs_out = {\n", + " 'backbone1_gamma_3J': fm_coeffs[0]*forward_qs_cos['backbone1_gamma']**2-fm_coeffs[1]*forward_qs_cos['backbone1_gamma']+fm_coeffs[2],\n", + " 'backbone2_beta_epsilon_3J': fm_coeffs[3]*forward_qs_cos['backbone2_beta_epsilon']**2-fm_coeffs[4]*forward_qs_cos['backbone2_beta_epsilon']+fm_coeffs[5],\n", + " 'sugar_3J': fm_coeffs[6]*forward_qs_cos['sugar']**2-fm_coeffs[7]*forward_qs_cos['sugar']+fm_coeffs[8] }\n", + "\n", + " return forward_qs_out" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "same forward-model function for each system, so put it in infos['global']" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "infos['global']['forward_model'] = forward_model_fun" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "loading data from directory...\n", + "loading AAAA\n", + "loading CAAU\n", + "done\n" + ] + } + ], + "source": [ + "data = load_data(infos, stride = stride)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now, data['global'] contains also **forward_coeffs_0**, namely, the initial guess of coefficients for the forward model, used to compute the corresponding observables inserted in **g**; by default, they are in path_directory+'original_coeffs'." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'system_names': ['AAAA', 'CAAU'], 'forward_coeffs_0': A_gamma 9.70\n", + "B_gamma -1.80\n", + "C_gamma 0.00\n", + "A_beta 15.30\n", + "B_beta -6.10\n", + "C_beta 1.60\n", + "A_sugar 9.67\n", + "B_sugar -2.03\n", + "C_sugar 0.00\n", + "Name: 0, dtype: float64, 'tot_n_experiments': .tot_n_experiments at 0x7f3e98e059d8>}\n", + "tot. n. of experiments: 130\n" + ] + } + ], + "source": [ + "print(vars(data['global']))\n", + "\n", + "print('tot. n. of experiments: ', data['global'].tot_n_experiments(data))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "While data[name_sys] contains also:\n", + "- **forward_model** and **forward_qs**, respectively, function and input values employed to compute observables through forward model;\n", + "- **g_exp** and **g** with values corresponding to observables computed through forward model." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "dict_keys(['temperature', 'gexp', 'names', 'ref', 'g', 'forward_model', 'forward_qs', 'weights', 'n_experiments', 'n_frames'])" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "vars(data['AAAA']).keys()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## b. RNA molecules with methylated adenosine\n", + "\n", + "*Molecular dynamics simulations of chemically modified ribonucleotides* - Valerio Piomponi, Mattia Bernetti, Giovanni Bussi" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Download from Zenodo" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let's download data from Zenodo https://zenodo.org/records/6498021 into folder **DATA_alchemical_Zenodo**. There are some data also in **github_data**.\n", + "\n", + "Then, there are some staffs to do preliminarly in order to get the following structure of folder **DATA_alchemical**, which will be loaded directly through **load_data**." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In the folder **DATA_alchemical** you are going to have:\n", + "- a folder **alchemical** which includes **DDGs** (experimental values), **logZs** and **temperature.txt** files;\n", + "- several subfolders, each of them corresponding to a different molecular system; in each subfolder you will have (some of) the following:\n", + " - **weights.npy** (weights of each frame);\n", + " - **ff_terms.npy** (force-field correction terms).\n", + "\n", + "In principle, you may have also other observables beyond $\\Delta\\Delta G$." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "import os\n", + "import panedr\n", + "from bussilab import wham" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "mkdir: impossibile creare la directory \"DATA_alchemical\": File già esistente\n", + "mkdir: impossibile creare la directory \"DATA_alchemical/alchemical\": File già esistente\n" + ] + }, + { + "ename": "CalledProcessError", + "evalue": "Command 'b'\\nmkdir DATA_alchemical\\nmkdir DATA_alchemical/alchemical\\n'' returned non-zero exit status 1.", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m\n", + "\u001b[0;31mCalledProcessError\u001b[0m Traceback (most recent call last)\n", + "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n", + "\u001b[0;32m----> 1\u001b[0;31m \u001b[0mget_ipython\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mrun_cell_magic\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'bash'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m''\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m'\\nmkdir DATA_alchemical\\nmkdir DATA_alchemical/alchemical\\n'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0m\n", + "\u001b[0;32m~/.local/lib/python3.6/site-packages/IPython/core/interactiveshell.py\u001b[0m in \u001b[0;36mrun_cell_magic\u001b[0;34m(self, magic_name, line, cell)\u001b[0m\n", + "\u001b[1;32m 2369\u001b[0m \u001b[0;32mwith\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mbuiltin_trap\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[1;32m 2370\u001b[0m \u001b[0margs\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0mmagic_arg_s\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcell\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m-> 2371\u001b[0;31m \u001b[0mresult\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mfn\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0m\u001b[1;32m 2372\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mresult\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[1;32m 2373\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", + "\n", + "\u001b[0;32m~/.local/lib/python3.6/site-packages/IPython/core/magics/script.py\u001b[0m in \u001b[0;36mnamed_script_magic\u001b[0;34m(line, cell)\u001b[0m\n", + "\u001b[1;32m 140\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[1;32m 141\u001b[0m \u001b[0mline\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mscript\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m--> 142\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mshebang\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mline\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcell\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0m\u001b[1;32m 143\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[1;32m 144\u001b[0m \u001b[0;31m# write a basic docstring:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\n", + "\u001b[0;32m\u001b[0m in \u001b[0;36mshebang\u001b[0;34m(self, line, cell)\u001b[0m\n", + "\n", + "\u001b[0;32m~/.local/lib/python3.6/site-packages/IPython/core/magic.py\u001b[0m in \u001b[0;36m\u001b[0;34m(f, *a, **k)\u001b[0m\n", + "\u001b[1;32m 185\u001b[0m \u001b[0;31m# but it's overkill for just that one bit of state.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[1;32m 186\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mmagic_deco\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0marg\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m--> 187\u001b[0;31m \u001b[0mcall\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;32mlambda\u001b[0m \u001b[0mf\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m*\u001b[0m\u001b[0ma\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mk\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mf\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0ma\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mk\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0m\u001b[1;32m 188\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[1;32m 189\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mcallable\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0marg\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\n", + "\u001b[0;32m~/.local/lib/python3.6/site-packages/IPython/core/magics/script.py\u001b[0m in \u001b[0;36mshebang\u001b[0;34m(self, line, cell)\u001b[0m\n", + "\u001b[1;32m 243\u001b[0m \u001b[0msys\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mstderr\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mflush\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[1;32m 244\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0margs\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mraise_error\u001b[0m \u001b[0;32mand\u001b[0m \u001b[0mp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mreturncode\u001b[0m\u001b[0;34m!=\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m--> 245\u001b[0;31m \u001b[0;32mraise\u001b[0m \u001b[0mCalledProcessError\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mreturncode\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcell\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0moutput\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mout\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mstderr\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0merr\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0m\u001b[1;32m 246\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[1;32m 247\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m_run_script\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mp\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcell\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mto_close\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\n", + "\u001b[0;31mCalledProcessError\u001b[0m: Command 'b'\\nmkdir DATA_alchemical\\nmkdir DATA_alchemical/alchemical\\n'' returned non-zero exit status 1." + ] + } + ], + "source": [ + "%%bash\n", + "\n", + "mkdir DATA_alchemical\n", + "mkdir DATA_alchemical/alchemical" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "experimental values" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "%%bash\n", + "\n", + "mv github_DATA/alchemical/DDGs DATA_alchemical/DDGs" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "temperature" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "temperature = 2.476 # 2.476 kJ/mol, namely 298 K" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "%%bash\n", + "\n", + "mv github_DATA/alchemical/temperature.txt DATA_alchemical/temperature.txt" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "weights and logZs" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "weights = {}\n", + "dE = {}\n", + "logZ = {}\n", + "DeltaG = {}" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "cycle_names = ['A1']\n", + "names = ['anti_Aduri','syn_Aduri']\n", + "\n", + "# cycle_names = ['A2','A3']\n", + "# names = ['ss_Aduri','dup_anti_Aduri','dup_syn_Aduri']\n", + "\n", + "# cycle_names = ['A4','A5']\n", + "# names = ['ss_Aduri','dup_Aduri']\n", + "\n", + "# cycle_names = ['B1','B2','B3','B4','B5']\n", + "# names = ['ss_Aduri','dup_Aduri']\n", + "\n", + "N = 16\n", + "\n", + "for cycle_name in cycle_names:\n", + " for s in names:\n", + " print(cycle_name,s)\n", + "\n", + " # 1. import energies\n", + "\n", + " em = 'DATA_alchemical_Zenodo/' + cycle_name + '/' + cycle_name + '_' + s + '/lam%s/ener_trj_conc.edr'\n", + "\n", + " Ene2d = []\n", + "\n", + " for i in range(N):\n", + " df = panedr.edr_to_df(em % str(i))\n", + " Ene2d.append(np.array(df[u'Potential']))\n", + " print(i + 1, '/', N)\n", + "\n", + " Ene2d = np.array(Ene2d).T\n", + " Ene2d-= np.min(Ene2d)\n", + "\n", + " # 2. do WHAM\n", + "\n", + " bias = (Ene2d.T-Ene2d[:,0]).T\n", + " a = wham.wham(bias = bias, T = temperature, maxiter = 10000)\n", + "\n", + " # 3. append weights, dE, logZ\n", + "\n", + " # 'D' for the duplex structure (for A2, A3, the most common is the anti), 'S' for single-stranded\n", + " # for A1 (methylated adenosine), let's use 'D' for anti and 'S' for syn\n", + " if (s == 'dup_Aduri') or (s == 'dup_anti_Aduri') or (s == 'anti_Aduri'): s1 = 'D'\n", + " elif (s == 'ss_Aduri') or (s == 'syn_Aduri'): s1 = 'S'\n", + " else: s1 = s\n", + "\n", + " w = np.exp(a['logW'])\n", + " w = w/np.sum(w)\n", + "\n", + " weights['%s_A%s' % (cycle_name,s1)] = w # A (wild type)\n", + "\n", + " dE['%s_%s' % (cycle_name,s1)] = bias[:,-1]\n", + "\n", + " temp = w*np.exp(-dE['%s_%s' % (cycle_name,s1)]/temperature)\n", + " logZ['%s_M%s' % (cycle_name,s1)] = np.log(np.sum(temp)) # logZ for methylated structure\n", + "\n", + " temp = temp/np.sum(temp)\n", + " weights['%s_M%s' % (cycle_name,s1)] = temp # weights for methylated structure\n", + "\n", + " # 4. append DeltaG\n", + "\n", + " # DeltaG = -temperature*(a[u'logZ'][N-1]-a[u'logZ'][0])\n", + " \n", + " # or equivalently:\n", + " DeltaG['%s_%s' % (cycle_name,s1)] = -temperature*logZ['%s_M%s' % (cycle_name,s1)]\n", + "\n", + " # or equivalently: \n", + " # DeltaG['%s_%s' % (cycle_name,s1)] = -temperature*np.log(np.sum(weights['%s_A%s' % (cycle_name,s1)]*np.exp(-dE['%s_%s' % (cycle_name,s1)]/temperature)))\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "for k in weights.keys():\n", + " os.mkdir('DATA_alchemical/' + k)\n", + " np.save('DATA_alchemical/' + k +'/weights.npy', weights[k])" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "f = open('DATA_alchemical/alchemical/logZs', 'a+')\n", + "for k in logZ.keys(): f.write(k + ',' + str(logZ[k]) + '\\n')\n", + "f.close()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "force-field corrections:\n", + "\n", + "load matrix of charges: $\\Delta Q_1,\\, \\Delta Q_1^2,\\, \\Delta Q_2,\\, \\Delta Q_2^2,\\,....,\\,\\Delta Q_5^2,\\,\\Delta Q_1\\cdot \\Delta Q_2,\\, ... ,\\,\\Delta Q_1\\cdot \\Delta Q_5,\\, ...,\\,\\Delta Q_4\\cdot \\Delta Q_5$\n", + "for 20 (random) choices of charges $\\Delta Q_1 ,\\,...,\\,\\Delta Q_5$\n", + "\n", + "Q1: N6; Q2: H61; Q3: N1; Q4: C10; Q5: H101/2/3" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "DQs = np.load('github_DATA/alchemical/DQs.npy')" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "A1 anti_Aduri\n" + ] + }, + { + "ename": "FileNotFoundError", + "evalue": "[Errno 2] No such file or directory: 'DATA_alchemical_Zenodo/A1/A1_anti_Aduri/rerun1_lam15.edr'", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mFileNotFoundError\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[1;32m 23\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mi\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mrange\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;36m20\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 24\u001b[0m \u001b[0mem\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mmy_path\u001b[0m \u001b[0;34m+\u001b[0m\u001b[0;34m'rerun%i_lam15.edr'\u001b[0m \u001b[0;34m%\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0mi\u001b[0m\u001b[0;34m+\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 25\u001b[0;31m \u001b[0mdf\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mpanedr\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0medr_to_df\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mem\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 26\u001b[0m \u001b[0mME\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mappend\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0marray\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdf\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34mu'Potential'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 27\u001b[0m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mi\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/.local/lib/python3.6/site-packages/panedr/panedr.py\u001b[0m in \u001b[0;36medr_to_df\u001b[0;34m(path, verbose)\u001b[0m\n\u001b[1;32m 61\u001b[0m \u001b[0mthe\u001b[0m \u001b[0mEDR\u001b[0m \u001b[0mfile\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 62\u001b[0m \"\"\"\n\u001b[0;32m---> 63\u001b[0;31m \u001b[0mall_energies\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mall_names\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtimes\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mread_edr\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mpath\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mverbose\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mverbose\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 64\u001b[0m \u001b[0mdf\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mpd\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mDataFrame\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mall_energies\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcolumns\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mall_names\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mindex\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mtimes\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 65\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mdf\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/.local/lib/python3.6/site-packages/pyedr/pyedr.py\u001b[0m in \u001b[0;36mread_edr\u001b[0;34m(path, verbose)\u001b[0m\n\u001b[1;32m 440\u001b[0m \u001b[0mA\u001b[0m \u001b[0mlist\u001b[0m \u001b[0mcontaining\u001b[0m \u001b[0mthe\u001b[0m \u001b[0mtime\u001b[0m \u001b[0mof\u001b[0m \u001b[0meach\u001b[0m \u001b[0mstep\u001b[0m\u001b[0;34m/\u001b[0m\u001b[0mframe\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 441\u001b[0m \"\"\"\n\u001b[0;32m--> 442\u001b[0;31m \u001b[0medr_file\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mEDRFile\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mstr\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mpath\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 443\u001b[0m \u001b[0mall_energies\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m[\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 444\u001b[0m \u001b[0mall_names\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m[\u001b[0m\u001b[0;34mu'Time'\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m+\u001b[0m \u001b[0;34m[\u001b[0m\u001b[0mnm\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mname\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mnm\u001b[0m \u001b[0;32min\u001b[0m \u001b[0medr_file\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mnms\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/.local/lib/python3.6/site-packages/pyedr/pyedr.py\u001b[0m in \u001b[0;36m__init__\u001b[0;34m(self, path)\u001b[0m\n\u001b[1;32m 85\u001b[0m \u001b[0;32mclass\u001b[0m \u001b[0mEDRFile\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mobject\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 86\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m__init__\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mpath\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 87\u001b[0;31m \u001b[0;32mwith\u001b[0m \u001b[0mopen\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mpath\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m'rb'\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0minfile\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 88\u001b[0m \u001b[0mcontent\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0minfile\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mread\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 89\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdata\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mGMX_Unpacker\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mcontent\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;31mFileNotFoundError\u001b[0m: [Errno 2] No such file or directory: 'DATA_alchemical_Zenodo/A1/A1_anti_Aduri/rerun1_lam15.edr'" + ] + } + ], + "source": [ + "cycle_names = ['A1']\n", + "names = ['anti_Aduri','syn_Aduri']\n", + "\n", + "# cycle_names = ['A2','A3']\n", + "# names = ['ss_Aduri','dup_anti_Aduri','dup_syn_Aduri']\n", + "\n", + "# cycle_names = ['A4','A5']\n", + "# names = ['ss_Aduri','dup_Aduri']\n", + "\n", + "# cycle_names = ['B1','B2','B3','B4','B5']\n", + "# names = ['ss_Aduri','dup_Aduri']\n", + "\n", + "Tr = {}\n", + "\n", + "for cycle_name in cycle_names:\n", + " for s in names:\n", + " print(cycle_name,s)\n", + "\n", + " my_path = 'DATA_alchemical_Zenodo/%s/%s_%s/' % (cycle_name, cycle_name, s)\n", + "\n", + " # step 1: read energies corresponding to different choices of charges\n", + " ME = []\n", + " for i in range(20):\n", + " em = my_path +'rerun%i_lam15.edr' % (i+1)\n", + " df = panedr.edr_to_df(em)\n", + " ME.append(np.array(df[u'Potential']))\n", + " print(i)\n", + " ME = np.array(ME)\n", + "\n", + " # step 2: read E0\n", + " em = my_path + 'lam15/ener_trj_conc.edr'\n", + " df = panedr.edr_to_df(em)\n", + " E0 = np.array(df[u'Potential'])\n", + "\n", + " # step 3: from dE, dQ to force-field correction terms\n", + " # dE_i = Q_vec_ij * f_j (matrix product)\n", + " \n", + " TrM = []\n", + " inv_mat = np.linalg.inv(np.transpose(DQs))\n", + "\n", + " for i in range(len(E0)):\n", + " dE = ME[:,i] - E0[i]\n", + " x = inv_mat.dot(dE)\n", + " TrM.append(x)\n", + "\n", + " # 'D' for the duplex structure (for A2, A3, the most common is the anti), 'S' for single-stranded\n", + " # for A1 (methylated adenosine), let's use 'D' for anti and 'S' for syn\n", + " if (s == 'dup_Aduri') or (s == 'dup_anti_Aduri') or (s == 'anti_Aduri'): s1 = 'D'\n", + " elif (s == 'ss_Aduri') or (s == 'syn_Aduri'): s1 = 'S'\n", + " else: s1 = s\n", + "\n", + " Tr['%s_M%s' % (cycle_name, s1)] = np.array(TrM)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "for k in Tr.keys():\n", + " np.save('DATA_alchemical/' + k + '/ff_terms.npy', Tr[k])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$\\eta$ angles are in github_DATA (not on Zenodo); append them to ff_terms computed from Zenodo data (related to charges)" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [], + "source": [ + "cycle_names = ['A1']# ['A1','A2','A3','A4','A5','B1','B2','B3','B4','B5']\n", + "\n", + "for cycle_name in cycle_names:\n", + " for s in ['D','S']:\n", + " vec = np.load('DATA_alchemical/%s_M%s/ff_terms.npy' % (cycle_name, s))\n", + " cos_eta = np.load('github_DATA/alchemical/cos_etas/cos_eta_%s_M%s.npy' % (cycle_name, s))\n", + " vec = np.hstack((vec, cos_eta[:,None]))\n", + " np.save('DATA_alchemical/%s_M%s/ff_terms.npy' % (cycle_name, s), vec)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Load data" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": {}, + "outputs": [], + "source": [ + "infos = {}\n", + "\n", + "infos['global'] = {}\n", + "infos['global']['temperature'] = 2.476 # temperature\n", + "infos['global']['path_directory'] = 'DATA_alchemical'\n", + "\n", + "# for alchemical calculations, we have both system_names (names of each molecular system) and cycle_names (names of\n", + "# the thermodynamic cycles); each cycle is composed by 4 systems; system_names with corresponding thermodynamic\n", + "# cycle must be defined as 'cycle_name'+'_'+s for s in ['AS','AD','MS','MD'] (A for adenosine, M for methylated;\n", + "# S for single, D for double strand). The experimental DG is between (AS, AD) and (MS, MD), the simulated one is\n", + "# between (AS, MS) and (AD, MD).\n", + "\n", + "infos['global']['cycle_names'] = ['A1']#,'A2','A3','A4','A5']#,'B1','B2','B3','B4','B5']\n", + "\n", + "system_names = []\n", + "for name in infos['global']['cycle_names']:\n", + " for string in ['AS','AD','MS','MD']:\n", + " system_names.append(name+'_'+string)\n", + "\n", + "infos['global']['system_names'] = system_names\n", + "\n", + "# force-field correction terms\n", + "\n", + "n_charges = 5\n", + "\n", + "infos['global']['names_ff_pars'] = ['DQ %i' % (i+1) for i in range(n_charges)] + ['cos eta']\n", + "\n", + "columns = []\n", + "for i in range(n_charges):\n", + " columns.append('DQ %i' % (i+1))\n", + " columns.append('DQ %i%i' % (i+1,i+1))\n", + "for i in range(n_charges):\n", + " for j in range(i+1,n_charges):\n", + " columns.append('DQ %i%i' % (i+1,j+1))\n", + "columns.append('cos eta')\n", + "\n", + "# only methylated (M) systems have a force-field correction\n", + "\n", + "for name in system_names: infos[name] = {}\n", + "\n", + "for name in infos['global']['cycle_names']:\n", + " for s in ['D','S']:\n", + " infos[name + '_M' + s]['ff_terms'] = columns" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "define the force-field correction:\n", + "- use jax.numpy rather than numpy in order to do automatic differentiation\n", + "- phi is: ['DQ %i' for i in range(n_charges)] + ['cos eta']\n", + "- phi_vector is\n", + "\n", + "['DQ 1', 'DQ 11', 'DQ 2', 'DQ 22', 'DQ 3', 'DQ 33', 'DQ 4', 'DQ 44', 'DQ 5', 'DQ 55', 'DQ 12', 'DQ 13', 'DQ 14', 'DQ 15', 'DQ 23', 'DQ 24', 'DQ 25', 'DQ 34', 'DQ 35', 'DQ 45', 'cos eta']\n", + "\n", + "where 2 numbers (such as 'DQ 11' or 'DQ 23') mean the product 'DQ 1 * DQ 1' or 'DQ 2 * DQ 3'.\n", + "\n", + "WARNING: this must agree with columns of ff_terms.npy." + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": {}, + "outputs": [], + "source": [ + "import jax.numpy as jnp" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": {}, + "outputs": [], + "source": [ + "def ff_correction(phi, ff_terms):\n", + "\n", + " n_charges = 5\n", + "\n", + " phi_vector = []\n", + " for i in range(n_charges):\n", + " phi_vector.extend([phi[i], phi[i]**2])\n", + " for i in range(n_charges):\n", + " for j in range(i+1,n_charges):\n", + " phi_vector.append(phi[i]*phi[j])\n", + " phi_vector.append(phi[-1])\n", + " phi_vector = jnp.array(phi_vector)\n", + "\n", + " correction = jnp.matmul(ff_terms, phi_vector)\n", + "\n", + " return correction" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "metadata": {}, + "outputs": [], + "source": [ + "for k in system_names:\n", + " if k[-2] == 'M': \n", + " infos[k]['ff_correction'] = ff_correction" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "WARNING:absl:No GPU/TPU found, falling back to CPU. (Set TF_CPP_MIN_LOG_LEVEL=0 and rerun for more info.)\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "loading data from directory...\n", + "loading A1_AS\n", + "loading A1_AD\n", + "loading A1_MS\n", + "loading A1_MD\n", + "done\n" + ] + } + ], + "source": [ + "data = load_data(infos)" + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'system_names': ['A1_AS', 'A1_AD', 'A1_MS', 'A1_MD'],\n", + " 'cycle_names': ['A1'],\n", + " 'tot_n_experiments': .tot_n_experiments(data)>,\n", + " 'names_ff_pars': ['DQ 1', 'DQ 2', 'DQ 3', 'DQ 4', 'DQ 5', 'cos eta']}" + ] + }, + "execution_count": 30, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "vars(data['global'])" + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'temperature': 2.476,\n", + " 'weights': DeviceArray([0.00000000e+000, 0.00000000e+000, 1.33713526e-108, ...,\n", + " 3.49185156e-015, 1.78055044e-099, 9.85168166e-021], dtype=float64),\n", + " 'ff_correction': ,\n", + " 'f': array([[-4.96519100e+01, -1.38151792e-01, -1.51406786e+02, ...,\n", + " 2.67895059e+02, -1.20937458e+03, 9.84882318e-01],\n", + " [-3.98867112e+01, -4.83881329e-01, -1.61957292e+02, ...,\n", + " 2.79517133e+02, -1.22971574e+03, 9.93828308e-01],\n", + " [ 1.28829748e+01, -6.39883624e-02, -9.58745191e+01, ...,\n", + " 3.03679715e+02, -1.19964908e+03, 9.94782328e-01],\n", + " ...,\n", + " [-1.17374935e+01, 1.90374608e-01, -8.50660721e+01, ...,\n", + " 2.30174596e+02, -1.19839557e+03, 9.78575987e-01],\n", + " [-2.92366135e+00, -4.74383497e-02, -1.21207678e+02, ...,\n", + " 1.77031228e+02, -1.19014274e+03, 9.99784955e-01],\n", + " [ 2.72489060e+00, 1.42248795e-02, -1.08586519e+02, ...,\n", + " 1.38584548e+02, -1.14012649e+03, 9.35214130e-01]]),\n", + " 'logZ': -104.29787801171473,\n", + " 'n_experiments': {},\n", + " 'n_frames': 160016}" + ] + }, + "execution_count": 31, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "vars(data['A1_MS'])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "force-field correction terms: the following order is implied in ff_terms.npy" + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "['DQ 1', 'DQ 11', 'DQ 2', 'DQ 22', 'DQ 3', 'DQ 33', 'DQ 4', 'DQ 44', 'DQ 5', 'DQ 55', 'DQ 12', 'DQ 13', 'DQ 14', 'DQ 15', 'DQ 23', 'DQ 24', 'DQ 25', 'DQ 34', 'DQ 35', 'DQ 45', 'cos eta']\n" + ] + } + ], + "source": [ + "n_charges = 5\n", + "columns = []\n", + "for i in range(n_charges):\n", + " columns.append('DQ %i' % (i+1))\n", + " columns.append('DQ %i%i' % (i+1,i+1))\n", + "for i in range(n_charges):\n", + " for j in range(i+1,n_charges):\n", + " columns.append('DQ %i%i' % (i+1,j+1))\n", + "columns.append('cos eta')\n", + "\n", + "print(columns)" + ] + }, + { + "cell_type": "code", + "execution_count": 37, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
DQ 1DQ 11DQ 2DQ 22DQ 3DQ 33DQ 4DQ 44DQ 5DQ 55...DQ 13DQ 14DQ 15DQ 23DQ 24DQ 25DQ 34DQ 35DQ 45cos eta
0-64.971763-0.369189-193.036466-0.860319372.2544880.021453-402.717426-0.456240-483.793322-3591.759502...0.204762-0.755635-1198.668219461.637943-0.856726132.493415314.638583-179.944450-1199.190803-0.989419
1-36.8616800.112033-228.2669660.379891367.954737-0.245896-426.504955-0.395169-544.641296-3618.004971...-0.170276-0.114986-1203.227681514.610128-0.075963125.894241335.859019-154.576077-1206.216901-0.994984
2-9.741237-0.102778-151.728121-0.174974368.018225-0.116965-485.212113-0.401636-298.747327-3565.775323...0.056460-0.358373-1188.091939493.126934-0.324271153.834757324.601722-155.636396-1189.654161-0.999074
3-23.380554-0.134656-140.835976-0.305287366.440820-0.119104-334.751580-0.43118722.737697-3414.551457...0.106140-0.426060-1138.018041479.168234-0.416399160.577397311.159928-149.720741-1139.511416-0.999357
4-5.937648-0.206319-95.041680-0.482795366.137959-0.064504-304.141108-0.376703-137.692347-3639.757275...0.136286-0.458487-1213.749330497.276130-0.467213121.361258326.301992-168.805522-1214.630600-0.991914
..................................................................
160011-20.1999580.328535-156.3642180.137758349.173404-0.080967-277.607596-0.317463-176.108445-3489.019615...0.6160350.291780-1164.185146481.8826790.165014139.388203316.704516-154.931042-1164.882082-0.998520
160012-21.959617-0.088238-126.747990-0.054939343.385236-0.150294-368.198603-0.375910-209.163393-3593.929224...0.000384-0.358410-1197.157860499.693335-0.225965123.566694325.621083-161.098741-1198.873484-0.918453
160013-39.445614-0.250645-135.277098-0.501048360.982347-0.089520-400.860409-0.368149-242.404747-3821.104001...0.055932-0.545325-1274.240752503.545013-0.492402117.097418331.612984-196.135128-1274.925486-0.998902
160014-44.557677-0.056004-203.929256-0.226455415.988721-0.075614-446.763277-0.388657-538.419943-3568.494427...0.141293-0.280380-1189.091135509.670895-0.351320130.930304323.340100-159.907965-1190.786733-0.972010
160015-48.594758-0.023020-168.190621-0.066177366.757857-0.153349-373.774541-0.385406-219.386280-3575.574968...0.048962-0.254819-1190.602605442.905125-0.281941136.482030315.389685-183.716438-1192.660687-0.983538
\n", + "

160016 rows × 21 columns

\n", + "
" + ], + "text/plain": [ + " DQ 1 DQ 11 DQ 2 DQ 22 DQ 3 DQ 33 \\\n", + "0 -64.971763 -0.369189 -193.036466 -0.860319 372.254488 0.021453 \n", + "1 -36.861680 0.112033 -228.266966 0.379891 367.954737 -0.245896 \n", + "2 -9.741237 -0.102778 -151.728121 -0.174974 368.018225 -0.116965 \n", + "3 -23.380554 -0.134656 -140.835976 -0.305287 366.440820 -0.119104 \n", + "4 -5.937648 -0.206319 -95.041680 -0.482795 366.137959 -0.064504 \n", + "... ... ... ... ... ... ... \n", + "160011 -20.199958 0.328535 -156.364218 0.137758 349.173404 -0.080967 \n", + "160012 -21.959617 -0.088238 -126.747990 -0.054939 343.385236 -0.150294 \n", + "160013 -39.445614 -0.250645 -135.277098 -0.501048 360.982347 -0.089520 \n", + "160014 -44.557677 -0.056004 -203.929256 -0.226455 415.988721 -0.075614 \n", + "160015 -48.594758 -0.023020 -168.190621 -0.066177 366.757857 -0.153349 \n", + "\n", + " DQ 4 DQ 44 DQ 5 DQ 55 ... DQ 13 \\\n", + "0 -402.717426 -0.456240 -483.793322 -3591.759502 ... 0.204762 \n", + "1 -426.504955 -0.395169 -544.641296 -3618.004971 ... -0.170276 \n", + "2 -485.212113 -0.401636 -298.747327 -3565.775323 ... 0.056460 \n", + "3 -334.751580 -0.431187 22.737697 -3414.551457 ... 0.106140 \n", + "4 -304.141108 -0.376703 -137.692347 -3639.757275 ... 0.136286 \n", + "... ... ... ... ... ... ... \n", + "160011 -277.607596 -0.317463 -176.108445 -3489.019615 ... 0.616035 \n", + "160012 -368.198603 -0.375910 -209.163393 -3593.929224 ... 0.000384 \n", + "160013 -400.860409 -0.368149 -242.404747 -3821.104001 ... 0.055932 \n", + "160014 -446.763277 -0.388657 -538.419943 -3568.494427 ... 0.141293 \n", + "160015 -373.774541 -0.385406 -219.386280 -3575.574968 ... 0.048962 \n", + "\n", + " DQ 14 DQ 15 DQ 23 DQ 24 DQ 25 DQ 34 \\\n", + "0 -0.755635 -1198.668219 461.637943 -0.856726 132.493415 314.638583 \n", + "1 -0.114986 -1203.227681 514.610128 -0.075963 125.894241 335.859019 \n", + "2 -0.358373 -1188.091939 493.126934 -0.324271 153.834757 324.601722 \n", + "3 -0.426060 -1138.018041 479.168234 -0.416399 160.577397 311.159928 \n", + "4 -0.458487 -1213.749330 497.276130 -0.467213 121.361258 326.301992 \n", + "... ... ... ... ... ... ... \n", + "160011 0.291780 -1164.185146 481.882679 0.165014 139.388203 316.704516 \n", + "160012 -0.358410 -1197.157860 499.693335 -0.225965 123.566694 325.621083 \n", + "160013 -0.545325 -1274.240752 503.545013 -0.492402 117.097418 331.612984 \n", + "160014 -0.280380 -1189.091135 509.670895 -0.351320 130.930304 323.340100 \n", + "160015 -0.254819 -1190.602605 442.905125 -0.281941 136.482030 315.389685 \n", + "\n", + " DQ 35 DQ 45 cos eta \n", + "0 -179.944450 -1199.190803 -0.989419 \n", + "1 -154.576077 -1206.216901 -0.994984 \n", + "2 -155.636396 -1189.654161 -0.999074 \n", + "3 -149.720741 -1139.511416 -0.999357 \n", + "4 -168.805522 -1214.630600 -0.991914 \n", + "... ... ... ... \n", + "160011 -154.931042 -1164.882082 -0.998520 \n", + "160012 -161.098741 -1198.873484 -0.918453 \n", + "160013 -196.135128 -1274.925486 -0.998902 \n", + "160014 -159.907965 -1190.786733 -0.972010 \n", + "160015 -183.716438 -1192.660687 -0.983538 \n", + "\n", + "[160016 rows x 21 columns]" + ] + }, + "execution_count": 37, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "pandas.DataFrame(data['A1_MD'].f, columns = columns)" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3.6.8 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.6.8" + }, + "orig_nbformat": 4, + "vscode": { + "interpreter": { + "hash": "916dbcbb3f70747c44a77c7bcd40155683ae19c65e1c03b4aa3499c5328201f1" + } + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/Examples/readme b/Examples/readme new file mode 100644 index 0000000..1e107f5 --- /dev/null +++ b/Examples/readme @@ -0,0 +1 @@ +examples diff --git a/MDRefine/Functions.py b/MDRefine/Functions.py new file mode 100644 index 0000000..54ec9f9 --- /dev/null +++ b/MDRefine/Functions.py @@ -0,0 +1,2267 @@ +""" Tools to perform reweighting by using the fully combined approach. + It includes also optimization of the hyperparameters through minimization of chi2 on test set. """ + +import os +import copy +import time +import pandas +# import sys + +from scipy.optimize import minimize +import numpy.random as random + +# if_jax = int(sys.argv[1]) +# if_jax = True + +# ''' if if_jax, compute derivatives through autodiff (jax.grad and similar) ''' + +# if if_jax: +# print("let's use JAX!") + +import jax +import numpy # L-BFGS-B requires numpy arrays rather than jax.numpy for the gradient of gamma_function +import jax.numpy as np +from jax.config import config +config.update("jax_enable_x64", True) +# import jax.random as random +# else: +# print("do not use JAX") + +# import numpy as np +# import numpy.random as random + +# %% A. Functions to load data: +# %% A1. check_and_skip + +''' +This function (check_and_skip) modifies input data: +- add observables computed through forward models (if any) to data.g; +- if hasattr(data,'selected_obs'): remove non-selected observables from data.forward_qs; +- make the stride; +- define data[name_sys].n_frames and data[name_sys].n_experiments. +''' + + +def check_and_skip(data, *, stride=1): + + output_data = {} + output_data['global'] = data['global'] + + system_names = data['global'].system_names # [k for k in data.keys() if k is not 'global'] + + for name_sys in system_names: + + my_data = data[name_sys] + + # 1. compute observables from data.forward_qs through forward model + # include them in data.g + + if hasattr(my_data, 'forward_model') and (my_data.forward_model is not None): + if not hasattr(my_data, 'g'): + my_data.g = {} + + if hasattr(my_data, 'selected_obs'): + for type_name in my_data.forward_qs.keys(): + my_data.forward_qs[type_name] = my_data.forward_qs[type_name] # [:,data.selected_obs[name][type_name]] + + if hasattr(my_data, 'selected_obs'): + selected_obs = my_data.selected_obs + else: + selected_obs = None + + out = my_data.forward_model(np.array(data['global'].forward_coeffs_0), my_data.forward_qs, selected_obs) + if type(out) is tuple: + out = out[0] # if there are derivatives, take only forward_qs values + + if not hasattr(my_data, 'g'): my_data.g = {} + for name in out.keys(): + my_data.g[name] = out[name] + + # 2. check match obs,forward_qs_out with g_exp + + b = 0 + + if not hasattr(my_data,'g'): + + if not hasattr(data[name_sys[:-3]], 'gexp_DDG'): + print('error: missing MD data for system' % name_sys) + b = 1 + if b == 1: return + + # for name_sys in system_names: + # if not (name_sys in data.g.keys()) and not DDGs['if_DDGs']: + # print('error: missing MD data for system %s' % name_sys) + # b=1 + # elif (name_sys in data.g.keys()) and not set(data.gexp[name_sys].keys()) == set(data.g[name_sys].keys()): + # print('error: mismatch of MD data with experimental data') + # print('MD data: ',set(data.g[name_sys].keys()),' experimental data: ',set(data.gexp[name_sys].keys())) + # b = 1 + # if b == 1: return + + # 3. count number of systems and number of experimental data + # check: same number of frames for all the systems + + # if not len(data.gexp) == n_systems: print('error: different number of systems for experimental values'); return data, None, None + # if not len(data.g) == n_systems: print('error: different number of systems for observables'); return data, None, None + # if not len(data.forward_qs) == n_systems: print('error: different number of systems for forward quantities'); return data, None, None + # if not len(data.weights) == n_systems: print('error: different number of systems for weights'); return data, None, None + #if (not data.f == {}) and (not len(data.f) == n_systems): print('error: different number of systems for force field terms'); return + + my_data.n_experiments = {} + + b_error = 0 + + if hasattr(my_data,'gexp'): + my_data.n_experiments = {} + for kind in my_data.gexp.keys(): + my_data.n_experiments[kind] = np.shape(my_data.gexp[kind])[0] + + # check same number of observables as in data.gexp + + if hasattr(my_data,'g'): + for kind in my_data.g.keys(): + if my_data.ref[kind] == '><': + if not np.shape(my_data.gexp[kind+' LOWER'])[0] == np.shape(my_data.g[kind])[1]: + print('error: different number of observables for (system, kind) = (%s,%s)' % (name_sys,kind)); b_error=1 + if not np.shape(my_data.gexp[kind+' UPPER'])[0] == np.shape(my_data.g[kind])[1]: + print('error: different number of observables for (system, kind) = (%s,%s)' % (name_sys,kind)); b_error=1 + else: + if not np.shape(my_data.gexp[kind])[0] == np.shape(my_data.g[kind])[1]: + print('error: different number of observables for (system, kind) = (%s,%s)' % (name_sys,kind)); b_error=1 + + # check number of frames + + n_frames = np.shape(my_data.weights)[0] + + if not (hasattr(my_data,'g') or hasattr(my_data,'forward_qs') or hasattr(data[name_sys[:-3]],'gexp_DDG')): + print('error: missing MD data') + else: + + if hasattr(my_data,'g'): + for kind in my_data.g.keys(): + if not np.shape(my_data.g[kind])[0] == n_frames: + print('error: different number of frames for observable (system,kind) = (%s,%s)' % (name_sys,kind)); b_error=1 + + if hasattr(my_data,'forward_qs'): + for kind in my_data.forward_qs.keys(): + if not np.shape(my_data.forward_qs[kind])[0] == n_frames: + print('error: different number of frames for forward_qs (system,kind) = (%s,%s)' % (name_sys,kind)); b_error=1 + + if hasattr(my_data,'f') and not (len(my_data.f) == n_frames): + print('error: different number of frames for force field terms of system %s' % name_sys) + b_error = 1 + + if b_error == 1: return + + # 4. do you want to skip frames? select stride (stride = 1 by default) + + if not stride == 1: + if hasattr(my_data,'f'): my_data.f = my_data.f[::stride] + my_data.weights = my_data.weights[::stride] + my_data.weights = my_data.weights/np.sum(my_data.weights) + + if hasattr(my_data,'g'): + for name in my_data.g.keys(): + my_data.g[name] = my_data.g[name][::stride] + + if hasattr(my_data,'forward_qs'): + for name in my_data.forward_qs.keys(): + my_data.forward_qs[name] = my_data.forward_qs[name][::stride] + + # 5. count number of frames + + my_data.n_frames = np.shape(my_data.weights)[0] + + output_data[name_sys] = my_data + del my_data + + if hasattr(data['global'], 'cycle_names'): + for name in data['global'].cycle_names: + output_data[name] = data[name] + + # 6. sort n_experiments: this is needed to preserve the correct order when you will deconvolve lambdas + # in the end of lossf_nested + # BE CAREFUL: data.g are sorted differently due to forward model + + # for name_sys in data.gexp.keys(): + # my_dict = {} + # for k in data.gexp[name_sys].keys(): + # my_dict[k] = n_experiments[name_sys][k] + # n_experiments[name_sys] = my_dict + # del my_dict + # + # data.n_experiments = n_experiments + + return output_data + +# %% A2. load_data + +''' WARNING: jax.numpy does not have loadtxt ''' + +def load_data(infos, *, stride = 1): + + print('loading data from directory...') + + data = {} + + system_names = infos['global']['system_names'] + # system_names = [k for k in infos.keys() if not k == 'global'] + # system_names = set(infos.keys())-set(['global']) ## this would sort infos.keys(), modifying its order!! + + ''' original forward-model coefficients is a global data ''' + + class data_global_class: + def __init__(self, info_global, path_directory): + + self.system_names = info_global['system_names'] + + #if not all(v is None for v in types['forward_qs'].values()): + # if you have forward quantities, you have also forward coefficients + if 'forward_coeffs' in info_global.keys(): + temp = pandas.read_csv(path_directory+'%s' % info_global['forward_coeffs'], index_col = 0) + if temp.shape[0] == 1: data['global'].forward_coeffs_0 = temp.iloc[:,0] + else: self.forward_coeffs_0 = temp.squeeze() + + path_directory = infos['global']['path_directory'] + '/' + data['global'] = data_global_class(infos['global'], path_directory) + + ''' then, separately for each system: ''' + + class data_class: + def __init__(self, info, path_directory, name_sys): + + # 0. temperature (for simplicity, up to now same temperature for all the systems) + + if 'temperature' in info.keys(): self.temperature = info['temperature'] + else: self.temperature = 1.0 + + # 1. gexp (experimental values) and names of the observables + + if 'g_exp' in info.keys(): + + self.gexp = {} + self.names = {} + self.ref = {} # if data.gexp are boundary or puntual values + + if info['g_exp'] == None: + if info['DDGs']['if_DDGs'] == False: print('error, some experimental data is missing') + else: + if info['g_exp'] == []: info['g_exp'] = [f[:-4] for f in os.listdir(path_directory+'%s/g_exp' % name_sys)] + + for name in info['g_exp']: + if type(name) is tuple: + if len(name) == 5: + for i in range(2): + if name[2*i+2] == '>': s = ' LOWER' + elif name[2*i+2] == '<': s = ' UPPER' + else: print('error in the sign of gexp'); return + + try: self.gexp[name[0]+s] = np.load(path_directory+'%s/g_exp/%s%s.npy' % (name_sys,name[0],name[2*i+1])) + except: self.gexp[name[0]+s] = np.loadtxt(path_directory+'%s/g_exp/%s%s' % (name_sys,name[0],name[2*i+1])) + + self.ref[name[0]] = '><' + # if name[1] == '><': + # data.gexp[name_sys][name[0]+' LOWER'] = np.load(path_directory+'g_exp/%s/%s.npy' % (name_sys,name[0]))[:,:2] + # data.ref[name_sys][name[0]+' LOWER'] = '>' + # data.gexp[name_sys][name[0]+' UPPER'] = np.load(path_directory+'g_exp/%s/%s.npy' % (name_sys,name[0]))[:,2:] + # data.ref[name_sys][name[0]+ ' UPPER'] = '<' + # elif name[1] == '<>': + # data.gexp[name_sys][name[0]+' LOWER'] = np.load(path_directory+'g_exp/%s/%s.npy' % (name_sys,name[0]))[:,:2] + # data.ref[name_sys][name[0]+' LOWER'] = '<' + # data.gexp[name_sys][name[0]+' UPPER'] = np.load(path_directory+'g_exp/%s/%s.npy' % (name_sys,name[0]))[:,2:] + # data.ref[name_sys][name[0]+ ' UPPER'] = '>' + elif name[1] == '=' or name[1] == '>' or name[1] == '<': + try: self.gexp[name[0]] = np.load(path_directory+'%s/g_exp/%s.npy' % (name_sys,name[0])) + except: self.gexp[name[0]] = np.loadtxt(path_directory+'%s/g_exp/%s' % (name_sys,name[0])) + self.ref[name[0]] = name[1] + else: print('error on specified sign of gexp'); return + else: + try: self.gexp[name] = np.load(path_directory+'%s/g_exp/%s.npy' % (name_sys,name)) + except: self.gexp[name] = np.loadtxt(path_directory+'%s/g_exp/%s' % (name_sys,name)) + self.ref[name] = '=' + + if type(name) is tuple: name = name[0] + if os.path.isfile(path_directory+'%s/names/%s.npy' % (name_sys,name)): + self.names[name] = np.load(path_directory+'%s/names/%s.npy' % (name_sys,name)) + elif os.path.isfile(path_directory+'%s/names/%s' % (name_sys,name)): + self.names[name] = np.loadtxt(path_directory+'%s/names/%s' % (name_sys,name)) + + # 2. g (observables) + + if 'obs' in info.keys(): + + self.g = {} + + if info['obs'] is not None: + if info['obs'] == []: info['obs'] = [f[:-4] for f in os.listdir(path_directory+'%s/observables' % name_sys)] + for name in info['obs']: + # if name not in data.dupl[name_sys]: + # data.g[name_sys][name] = np.load(path_directory+'observables/%s/%s.npy' % (name_sys,name),mmap_mode='r') + # else: + # data.g[name_sys][name+'_LOWER'] = np.load(path_directory+'observables/%s/%s.npy' % (name_sys,name),mmap_mode='r') + # data.g[name_sys][name+ '_UPPER'] = np.load(path_directory+'observables/%s/%s.npy' % (name_sys,name),mmap_mode='r') + try: self.g[name] = np.load(path_directory+'%s/observables/%s.npy' % (name_sys,name), mmap_mode = 'r') + except: self.g[name] = np.loadtxt(path_directory+'%s/observables/%s' % (name_sys,name)) + + # 3. forward_qs (quantities for the forward model) and forward_model + + if 'forward_qs' in info.keys(): + + self.forward_model = info['forward_model'] + + self.forward_qs = {} + + for name in info['forward_qs']: + if info['forward_qs'] is not None: + if info['forward_qs'] == []: info['forward_qs'] = [f[:-4] for f in os.listdir(path_directory+'%s/forward_qs' % name_sys)] + for name in info['forward_qs']: + try: self.forward_qs[name] = np.load(path_directory+'%s/forward_qs/%s.npy' % (name_sys,name), mmap_mode = 'r') + except: self.forward_qs[name] = np.loadtxt(path_directory+'%s/forward_qs/%s' % (name_sys,name)) + + # 4. weights (normalized) + + if os.path.isfile(path_directory+'%s/weights.npy' % name_sys): + try: self.weights = np.load(path_directory+'%s/weights.npy' % name_sys) + except: self.weights = np.loadtxt(path_directory+'%s/weights' % name_sys) + else: + if ('obs' in info.keys()) and not (info['obs'] is None): + name = list(self.g.keys())[0] + self.weights = np.ones(len(self.g[name])) + elif ('forward_qs' in info.keys()) and not (info['forward_qs'] is None): + name = list(self.forward_qs.keys())[0] + self.weights = np.ones(len(self.forward_qs[info['forward_qs'][0]])) + else: print('error: missing MD data for %s!' % name_sys) + + self.weights = self.weights/np.sum(self.weights) + + # 5. f (force field correction terms) and function + + if ('ff_correction' in info.keys()) and (info['ff_correction'] is not None): + + self.ff_correction = info['ff_correction'] + self.f = {} + + ff_path = path_directory + '%s/ff_terms' % name_sys + + # if info['ff_terms'] is not None: + + self.f = np.load(ff_path + '.npy') + # ff_terms = pandas.read_csv(ff_path, memory_map = True) + # cols = ff_terms.columns + # lista = [] + + # for name_ff in info['ff_terms']: # select columns (force field correction terms) + # if name_ff in cols: # if name_ff is exactly a column of data.f + # lista.append(ff_terms[name_ff]) + # else: # else, sum data.f columns starting with name_ff + # filter_col = [col for col in ff_terms.columns if col.startswith(name_ff)] + # lista.append(np.sum(np.array(ff_terms[filter_col]), axis = 1)) + + # self.f = pandas.DataFrame(data = np.array(lista).T, columns = info['ff_terms']) + # self.f = np.array(lista).T + + for name_sys in system_names: + print('loading ', name_sys) + if name_sys in infos.keys(): info = {**infos[name_sys], **infos['global']} + else: info = infos['global'] + data[name_sys] = data_class(info, path_directory, name_sys) + + # 6. quantities from alchemical calculations + + class data_cycle_class: + def __init__(self, cycle_name, DDGs_exp, info): + + self.gexp_DDG = [DDGs_exp.loc[:,cycle_name].iloc[0],DDGs_exp.loc[:,cycle_name].iloc[1]] + + if 'temperature' in info.keys(): self.temperature = info['temperature'] + else: self.temperature = 1.0 + + # # DeltaE + # # if types['DeltaE'][name_sys] is not None: + # # data.DeltaE[name_sys] = np.load(path_directory+'DeltaE/DeltaE_%s.npy' % name_sys) + + if 'cycle_names' in infos['global'].keys(): + + data['global'].cycle_names = infos['global']['cycle_names'] + + logZs = pandas.read_csv(path_directory+'alchemical/logZs',index_col=0) + + for name in infos['global']['cycle_names']: + for s in ['MD','MS','AD','AS']: + key = name+'_'+s + if key in logZs.index: data[key].logZ = logZs.loc[key][0] + else: data[key].logZ = 0.0 + + DDGs_exp = pandas.read_csv(path_directory+'alchemical/DDGs',index_col=0) + + for name in infos['global']['cycle_names']: + if name in infos.keys(): info = {**infos[name], **infos['global']} + else: info = infos['global'] + + data[name] = data_cycle_class(name, DDGs_exp, info) + + # 7. check and skip frames with stride + + data = check_and_skip(data, stride = stride) + + def tot_n_experiments(data): + tot = 0 + for k in system_names: + for item in data[k].n_experiments.values(): tot += item + return tot + + data['global'].system_names = system_names + data['global'].tot_n_experiments = tot_n_experiments + + if hasattr(data['global'], 'ff_correction') and (data['global'].ff_correction == 'linear'): + list_names_ff_pars = [] + for k in data['global'].system_names: + if hasattr(data[k], 'f'): + [list_names_ff_pars.append(x) for x in data[k].f.keys() if x not in list_names_ff_pars] + data['global'].names_ff_pars = list_names_ff_pars + + elif 'names_ff_pars' in infos['global'].keys(): + data['global'].names_ff_pars = infos['global']['names_ff_pars'] + + print('done') + + return data + +# %% B. Functions to compute Gamma (they act on numpy arrays): +#%% B1. compute_js +''' +This function (compute_js) computes the indices (cumulative sums) for lambda corresponding to different systems and +types of observables. BE CAREFUL TO follow always the same order: let's choose it as that of data.n_experiments. +''' + +def compute_js(n_experiments): + + js = [] + + for i_sys,name_sys in enumerate(n_experiments.keys()): + js.append([]) + for name in n_experiments[name_sys].keys(): + js[i_sys].append(n_experiments[name_sys][name]) + js[i_sys] = [0] + np.cumsum(np.array(js[i_sys])).tolist() + + js[0] = np.array(js[0]) + + if len(n_experiments.keys())>1: + for i_sys in range(1,len(n_experiments.keys())): + js[i_sys] = np.array(js[i_sys]) + js[i_sys-1][-1] + + return js + +# %% B2. compute_new_weights +# to reweight given original weights and correction + +''' +This function (compute_new_weights) compute the new_weights as weights*exp(-correction). +It MODIFIES input weights and correction: +- weights are normalized; +- correction is shifted by correction-= shift, shift = np.min(correction). +''' + +def compute_new_weights(weights, correction): + + correction = np.array(correction) + weights = weights/np.sum(weights) + + ''' shift is such that the physical Z is = Z/np.exp(shift) ''' + shift = np.min(correction) + correction -= shift + + new_weights = np.exp(-correction)*weights + + # if np.isnan(newweights).any(): + # print('Warning: new_weights contains none') + # wh = np.argwhere(np.isnan(newweights)) + # newweights[wh] = 0 + + logZ = np.log(np.sum(new_weights))-shift + new_weights = new_weights/np.sum(new_weights) + + return new_weights, logZ + +# %% B3. gamma_function + +''' +This function (gamma_function) compute gamma function and (if if_gradient) its derivatives. +It works directly with numpy arrays, so make sure lambdas follow the same order as g, gexp +(let's use that of data.n_experiments). +''' + +def gamma_function(lambdas, g, gexp, weights, alpha, if_gradient = False): + + correction_lambdas = np.matmul(g,lambdas) + newweights,logZlambda = compute_new_weights(weights,correction_lambdas) + + gammaf = np.matmul(lambdas,gexp[:,0]) + 1/2*alpha*np.matmul(lambdas**2,gexp[:,1]**2) + logZlambda + + if if_gradient: + av_g = np.einsum('i,ij',newweights,g) + grad = -(av_g-gexp[:,0]-alpha*lambdas*gexp[:,1]**2) + grad = numpy.array(grad) + return gammaf, grad, av_g + else: + return gammaf + +# %% B4. normalize_observables + +''' Since experimental observables have different units, it is better to normalize them, in order that + varying any lambda by a fixed value epsilon would result in comparable effects to the ensemble. + This could result useful in the minimization of gamma_function. ''' + +def normalize_observables(gexp, g, weights = None): + + norm_g = {} + norm_gexp = {} + norm_gmean = {} + norm_gstd = {} + + for name in g.keys(): + if weights is None: + norm_gmean[name] = np.mean(g[name], axis = 0) + norm_gstd[name] = np.std(g[name], axis = 0) + else: + norm_gmean[name] = np.average(g[name], axis = 0, weights = weights) + norm_gstd[name] = np.sqrt(np.average(g[name]**2, axis = 0, weights = weights))-norm_gmean[name]**2 + + norm_gexp[name] = np.vstack([(gexp[name][:,0]-norm_gmean[name])/norm_gstd[name], gexp[name][:,1]/norm_gstd[name]]).T + norm_g[name] = (g[name]-norm_gmean[name])/norm_gstd[name] + + return norm_g, norm_gexp, norm_gmean, norm_gstd + +# %% C. Functions to compute and minimize lossf_nested: +# %% C1. compute_ff_correction + +''' This functions computes the force-field correction; names_ff_pars specifies the order of parameters in array pars. + BE CAREFUL to correctly match force-field correction terms to corresponding force-field parameters (through names_ff_pars). ''' + +def compute_ff_correction(ff_correction, f, pars):#, names_ff_pars): + + if ff_correction == 'linear': + + correction_ff = np.matmul(f, pars) + + # correction_ff = np.zeros(len(f)) + # indices = [names_ff_pars.index(x) for x in f.keys()] + + # for i in indices: + # correction_ff += pars[i]*np.array(f[names_ff_pars[i]]) + # except: correction_ff = correction_ff.add(pars[i]*f[names_ff_pars[i]]) + + else: + + correction_ff = ff_correction(pars,f)#,False) + + return correction_ff + +# %% C2. compute_D_KL + +''' This function computes Kullback-Leibler divergence. ''' + +def compute_D_KL(weights_P, correction_ff, temperature, logZ_P):#, derivatives_ff = None, *, weighted_forces = None, av_forces = None): + + weighted_ff = weights_P*np.array(correction_ff) + av_ff = np.nansum(weighted_ff,axis=0) + # av_ff = np.sum(weights_P[i_sys]*np.log(weights_P[i_sys]/data.weights[i_sys])) + + D_KL = -(av_ff/temperature + logZ_P) + + # if derivatives_ff is not None: + # # if name_sys in derivatives_ff.keys(): + # weighted_forces = weights_P[:,None]*np.array(derivatives_ff).T + # av_forces = np.sum(weighted_forces,axis=0) + + # #dav_f=-np.matmul(np.transpose(weighted_f),np.array(data.f[i_sys]))+np.outer(av_f,av_f) + # derivative = (np.matmul(weighted_ff,np.array(derivatives_ff).T)-av_ff*av_forces)/temperature**2 + + # return D_KL, derivative + + return D_KL + +# %% C3. l2_regularization + +''' This function computes the l2 regularization specified by choice, which includes: + - 'plain l2' (plain l2 regularization); + - for alchemical calculations with charges, pars[:-1] are the charges and pars[-1] is V_eta, + you have constraint on charges, and there are 3 pars[4] charges: + - 'constraint 1'; + - 'constraint 2' (with l2 regularization also on V_eta). ''' + +def l2_regularization(pars, choice = 'plain l2'): + + lossf_reg = None + gradient = None + + if choice == 'plain l2': + lossf_reg = np.sum(pars**2) + gradient = 2*pars + map = np.arange(len(pars)) + + elif choice == 'constraint 1': + lossf_reg = np.sum(pars[:-1]**2)+(np.sum(pars[:-1])+2*pars[4])**2 + n = np.array([1,1,1,1,3]) + gradient = 2*(pars[:-1]+(np.sum(pars[:-1])+2*pars[4])*n) + + map = np.arange(len(pars)-1) + + elif choice == 'constraint 2': + lossf_reg = np.sum(pars**2)+(np.sum(pars[:-1])+2*pars[4])**2 + n = np.array([1,1,1,1,3,0]) + gradient = 2*(pars+(np.sum(pars[:-1])+2*pars[4])*n) + + map = np.arange(len(pars)) + + return lossf_reg, gradient, map + + +# %% C4. compute_chi2 + +''' This function computes the chi2 (for a given system). It returns: av_g (average values), + rel_diffs (relative differences), chi2 (for each kind of observable), tot_chi2 (total chi2 for that system). + If if_separate, you are distinguishing between LOWER and UPPER bounds, needed for minimizations with double bounds. ''' + +def compute_chi2(ref, weights, g, gexp, if_separate = False): + + av_g = {} + rel_diffs = {} + chi2 = {} + tot_chi2 = 0 + + for name_type in gexp.keys(): + + if ref[name_type] == '><': + # av_g UPPER is equal to av_g LOWER but (if if_separate) you have to distinguish them + if if_separate: + av_g[name_type+' LOWER'] = np.einsum('i,ij',weights,g[name_type+' LOWER']) + av_g[name_type+' UPPER'] = av_g[name_type+' LOWER'] + + rel_diffs[name_type+' UPPER'] = np.maximum(av_g[name_type+' UPPER']-gexp[name_type+' UPPER'][:,0],np.zeros(len(av_g[name_type+' UPPER'])))/gexp[name_type+' UPPER'][:,1] + rel_diffs[name_type+' LOWER'] = np.minimum(av_g[name_type+' LOWER']-gexp[name_type+' LOWER'][:,0],np.zeros(len(av_g[name_type+' LOWER'])))/gexp[name_type+' LOWER'][:,1] + + else: + av_g[name_type] = np.einsum('i,ij',weights,g[name_type]) + + rel_diffs[name_type+' UPPER'] = np.maximum(av_g[name_type]-gexp[name_type+' UPPER'][:,0],np.zeros(len(av_g[name_type])))/gexp[name_type+' UPPER'][:,1] + rel_diffs[name_type+' LOWER'] = np.minimum(av_g[name_type]-gexp[name_type+' LOWER'][:,0],np.zeros(len(av_g[name_type])))/gexp[name_type+' LOWER'][:,1] + + # either one of the two is zero and the other non-zero + rel_diffs[name_type] = rel_diffs[name_type+' LOWER']+rel_diffs[name_type+' UPPER'] + del rel_diffs[name_type+' LOWER'], rel_diffs[name_type+' UPPER'] + + elif ref[name_type] == '=': + av_g[name_type] = np.einsum('i,ij',weights,g[name_type]) + rel_diffs[name_type] = (av_g[name_type]-gexp[name_type][:,0])/gexp[name_type][:,1] + + elif ref[name_type] == '<': + av_g[name_type] = np.einsum('i,ij',weights,g[name_type]) + rel_diffs[name_type] = np.maximum(av_g[name_type]-gexp[name_type][:,0],np.zeros(len(av_g[name_type])))/gexp[name_type][:,1] + + elif ref[name_type] == '>': + av_g[name_type] = np.einsum('i,ij',weights,g[name_type]) + rel_diffs[name_type] = np.minimum(av_g[name_type]-gexp[name_type][:,0],np.zeros(len(av_g[name_type])))/gexp[name_type][:,1] + + else: + print('error') + + for k in rel_diffs.keys(): + chi2[k] = np.sum(rel_diffs[k]**2) + tot_chi2 += chi2[k] + + return av_g, chi2, rel_diffs, tot_chi2 + +# %% C5. compute_DeltaDeltaG_terms + +''' data['global'] has attributes: cycle_names (list of cycle names); + for s in cycle_names: data[s] has attributes temperature of the cycle, gexp_DDG; + for s in cycle_names: data[s+k] for k in '_MD', '_MS', '_AD', '_AS' ''' + +def compute_DeltaDeltaG_terms(data, logZ_P):#,weights_P,if_gradient=False,derivatives_ff=None,map_ff=None,nffs=None): + + cycle_names = data['global'].cycle_names#list(data.gexp_DDG.keys()) + + new_av_DG = {} + chi2 = {} + loss = 0 + # if if_gradient: gradient = np.zeros(nffs) + + for cycle_name in cycle_names: + for s in ['_MD','_MS','_AD','_AS']: + if (cycle_name+s in logZ_P.keys()) and (not logZ_P[cycle_name+s] == 0):# and cycle_name+s in data.logZ.keys(): + # correction only on MD + new_av_DG[cycle_name+s] = -data[cycle_name+s].temperature*(logZ_P[cycle_name+s]+data[cycle_name+s].logZ) + if cycle_name+s not in logZ_P: logZ_P[cycle_name+s] = 0 + + DeltaDeltaG = -(logZ_P[cycle_name+'_MD']+data[cycle_name+'_MD'].logZ-logZ_P[cycle_name+'_AD']-data[cycle_name+'_AD'].logZ) + DeltaDeltaG += logZ_P[cycle_name+'_MS']+data[cycle_name+'_MS'].logZ-logZ_P[cycle_name+'_AS']-data[cycle_name+'_AS'].logZ + DeltaDeltaG = DeltaDeltaG*data[cycle_name].temperature + + chi2[cycle_name] = ((DeltaDeltaG - data[cycle_name].gexp_DDG[0])/data[cycle_name].gexp_DDG[1])**2 + loss += 1/2*chi2[cycle_name] + + # if if_gradient: + + # vec = (DeltaDeltaG-data.gexp_DDG[cycle_name][0])/(data.gexp_DDG[cycle_name][1]**2) + + # s = cycle_name+'_MS' # minus + # if s in derivatives_ff.keys(): + # if s in weights_P.keys(): w = weights_P[s] + # else: w = data.weights[s] + + # av = np.matmul(w,derivatives_ff[s].T) + # try: gradient[map_ff[s]]-= vec*av + # except: gradient = gradient.at[np.array(map_ff[s])].add(-vec*av) + + # s = cycle_name+'_MD' # plus + # if s in derivatives_ff.keys(): + # if s in weights_P.keys(): w = weights_P[s] + # else: w = data.weights[s] + + # av = np.matmul(w,derivatives_ff[s].T) + # try: gradient[map_ff[s]]+= vec*av + # except: gradient = gradient.at[np.array(map_ff[s])].add(vec*av) + + # s = cycle_name+'_AS' # plus + # if s in derivatives_ff.keys(): + # if s in weights_P.keys(): w = weights_P[s] + # else: w = data.weights[s] + + # av = np.matmul(weights_P[s],derivatives_ff[s].T) + # try: gradient[map_ff[s]]+= vec*av + # except: gradient = gradient.at[np.array(map_ff[s])].add(vec*av) + + # s = cycle_name+'_AD' # minus + # if s in derivatives_ff.keys(): + # if s in weights_P.keys(): w = weights_P[s] + # else: w = data.weights[s] + + # av = np.matmul(weights_P[s],derivatives_ff[s].T) + # try: gradient[map_ff[s]]-= vec*av + # except: gradient = gradient.at[np.array(map_ff[s])].add(-vec*av) + + # if if_gradient: + # return loss,gradient,new_av_DG + return new_av_DG, chi2, loss + +# %% C6. compute_details_ER + +''' This function computes the contribution to the loss function due to Ensemble Refinement explicitely + (namely, 1/2*chi2 + alpha*D_KL) and compare this value with -alpha*Gamma, which must be equal (used to check). + Its inputs are: the weights on which Ensemble Refinement acts (weights_P, those with force-field correction + in the fully combined refinement); the observables g (with updated forward-model coefficients); original data; + lambdas; alpha. It cycles over different systems. + It is used to get detailed values in the end of the minimization of loss_function (not for the minimization itself, + since we exploit the Gamma function). + Be careful to use either: normalized values for lambdas and g (if hasattr(data,'normg_mean')) or non-normalized + (if not hasattr(data,'normg_mean')). ''' + +def compute_details_ER(weights_P, g, data, lambdas, alpha): + + if hasattr(data, 'normg_mean'): + print('WARNING: you are using normalized observables!') + # return + # if_normalized = True + # else: if_normalized = False + + class Details_class: + def __init__(self): + self.loss_explicit = 0 # loss function computed explicitly as 1/2*chi2 + alpha*D_KL (rather than with Gamma function) + self.weights_new = {} + self.logZ_new = {} + self.av_g = {} + self.chi2 = {} + self.D_KL_alpha = {} + self.abs_difference = {} + + Details = Details_class() + + system_names = data['global'].system_names#[k for k in data.keys() if k is not 'global'] + + for name_sys in system_names: + + flatten_g = np.hstack([g[name_sys][k] for k in data[name_sys].n_experiments.keys()]) + flatten_gexp = np.vstack([data[name_sys].gexp[k] for k in data[name_sys].n_experiments.keys()]) + correction = np.einsum('ij,j', flatten_g, lambdas[name_sys]) + + out = compute_new_weights(weights_P[name_sys], correction) + Details.weights_new[name_sys] = out[0] + Details.logZ_new[name_sys] = out[1] + + out = compute_chi2(data[name_sys].ref, Details.weights_new[name_sys], g[name_sys], data[name_sys].gexp) + Details.av_g[name_sys] = out[0] + Details.chi2[name_sys] = out[1] + loss1 = 1/2*out[3] + + Details.D_KL_alpha[name_sys] = compute_D_KL(Details.weights_new[name_sys], correction, 1, Details.logZ_new[name_sys]) + loss1 += alpha*Details.D_KL_alpha[name_sys] + Details.loss_explicit += loss1 + + ''' You could also use lambdas to evaluate immediately chi2 and D_KL (if lambdas are determined from the given frames) ''' + loss2 = -alpha*gamma_function(lambdas[name_sys], flatten_g, flatten_gexp, weights_P[name_sys], alpha) + + Details.abs_difference[name_sys] = np.abs(loss2-loss1) + + return Details + +# %% C7. loss_function + +''' This function computes the fully-combined loss function to minimize, taking advantage of the inner minimization + with Gamma function. + If not np.isinf(alpha): if fixed_lambdas == None, then do the inner minimization of Gamma (in this case, you have + global variable lambdas, corresponding to starting point of the minimization; it is a numpy array sorted correctly - see below); + else lambdas is fixed (fixed_lambdas) and the Gamma function is evaluated at this value of lambda, which should + correspond to its point of minimum, otherwise mismatch between Gamma function and Ensemble Refinement loss). + If if_save: you are going to save the detailed results in the class Details. + The input data will not be modified by the loss_function (neither explicitely by loss_function + nor by inner functions: BE SURE of that if you are going to modify loss_function): for forward-model updating, + you are going to define a variable g (through copy.deepcopy). + The order followed for lambdas is the one of data.n_experiments, which is not modified in any step. + The order followed for pars_ff_fm is: first force-field correction (ff), then forward model (fm); order for ff _ff: + names_ff_pars = [] + for k in system_names: [names_ff_pars.append(x) for x in data[k].f.keys() if x not in names_ff_pars]; + order for par_fm: data.forward_coeffs_0. ''' + +def loss_function(pars_ff_fm, data, regularization, alpha = np.inf, beta = np.inf, gamma = np.inf, fixed_lambdas = None, gtol_inn = 1e-3, if_save = False, method = 'BFGS', bounds = None): + + system_names = data['global'].system_names#[k for k in data.keys() if k is not 'global'] + + if_fixed_lambdas = None # to avoid error in Pylint + if not np.isinf(alpha): + if (fixed_lambdas is None): + global lambdas + if_fixed_lambdas = False + if 'lambdas' not in globals(): + lambdas = np.zeros(data['global'].tot_n_experiments(data)) + else: + lambdas = fixed_lambdas + if_fixed_lambdas = True + + if not np.isinf(beta): + names_ff_pars = data['global'].names_ff_pars + pars_ff = pars_ff_fm[:len(names_ff_pars)] + + pars_fm = None # to avoid error in Pylint + if not np.isinf(gamma): + if np.isinf(beta): pars_fm = pars_ff_fm + else: pars_fm = pars_ff_fm[len(names_ff_pars):] + # if names_ff_pars == []: del names_ff_pars + + loss = 0 + + weights_P = {} + + if not np.isinf(beta): + + correction_ff = {} + logZ_P = {} + + g = {} + + for name_sys in system_names: + + ''' 1a. compute force-field corrections and corresponding re-weights ''' + + if not np.isinf(beta): + if hasattr(data[name_sys], 'ff_correction'): + correction_ff[name_sys] = compute_ff_correction(data[name_sys].ff_correction, data[name_sys].f, pars_ff)#, names_ff_pars) + weights_P[name_sys], logZ_P[name_sys] = compute_new_weights(data[name_sys].weights, correction_ff[name_sys]/data[name_sys].temperature) + + else: # if beta is not infinite, but there are systems without force-field corrections: + weights_P[name_sys] = data[name_sys].weights + logZ_P[name_sys] = 0 + else: + weights_P[name_sys] = data[name_sys].weights + + ''' 1b. if np.isinf(gamma): g is re-computed observables data.g through updated forward model + (notice you also have some observables directly as data.g without updating of forward model); + else: g is data.g (initial data.g[name_sys] if gamma == np.inf). ''' + + if np.isinf(gamma): + if hasattr(data[name_sys], 'g'): g[name_sys] = copy.deepcopy(data[name_sys].g) + else: + + if hasattr(data[name_sys], 'g'): g[name_sys] = copy.deepcopy(data[name_sys].g) + else: g[name_sys] = {} + + if hasattr(data[name_sys], 'selected_obs'): selected_obs = data[name_sys].selected_obs + else: selected_obs = None + + fm_observables = data[name_sys].forward_model(pars_fm, data[name_sys].forward_qs, selected_obs) + + for name in fm_observables.keys(): + + g[name_sys][name] = fm_observables[name] + if hasattr(data[name_sys], 'normg_mean'): g[name_sys][name] = (g[name_sys][name]-data[name_sys].normg_mean[name])/data[name_sys].normg_std[name] + + del fm_observables + + if (np.isinf(gamma) and hasattr(data[name_sys], 'g')) or not np.isinf(gamma): + for name in data[name_sys].ref.keys(): + if data[name_sys].ref[name] == '><': + g[name_sys][name+' LOWER'] = g[name_sys][name] + g[name_sys][name+' UPPER'] = g[name_sys][name] + del g[name_sys][name] + + ''' 2. compute chi2 (if np.isinf(alpha)) or Gamma function (otherwise) ''' + + if np.isinf(alpha): + + av_g = {} + chi2 = {} + + if hasattr(data['global'], 'cycle_names'): + out = compute_DeltaDeltaG_terms(data, logZ_P) + av_g = out[0] + chi2 = out[1] + loss += out[2] + + for name_sys in system_names: + if hasattr(data[name_sys],'g'): + out = compute_chi2(data[name_sys].ref, weights_P[name_sys], g[name_sys], data[name_sys].gexp, True) + av_g[name_sys] = out[0] + chi2[name_sys] = out[1] + loss += 1/2*out[3] + + else: + + my_dict = {} + for k in system_names: my_dict[k] = data[k].n_experiments + js = compute_js(my_dict) + + x0 = {} + flatten_g = {} + flatten_gexp = {} + + for i_sys,name_sys in enumerate(system_names): + + x0[name_sys] = np.array(lambdas[js[i_sys][0]:js[i_sys][-1]]) + # x0 = np.concatenate([lambdas[name_sys][k] for k in data.n_experiments[name_sys].keys()]) + flatten_g[name_sys] = np.hstack([g[name_sys][k] for k in data[name_sys].n_experiments.keys()]) + flatten_gexp[name_sys] = np.vstack([data[name_sys].gexp[k] for k in data[name_sys].n_experiments.keys()]) + # normg_std = np.hstack([data.normg_std[name_sys][k] for k in data.n_experiments[name_sys].keys()]) + + gamma_value = 0 + + if if_fixed_lambdas: + for name_sys in system_names: + gamma_value += gamma_function(x0[name_sys], flatten_g[name_sys], flatten_gexp[name_sys], weights_P[name_sys], alpha) + else: + + global minis + minis = {} + mini_x = [] + + for name_sys in system_names: + + if bounds is not None: boundaries = bounds[name_sys] + else: boundaries = None + + options = {'gtol': gtol_inn} + if method == 'L-BFGS-B': options['ftol'] = 0 + + mini = minimize(gamma_function, x0[name_sys], args = (flatten_g[name_sys], flatten_gexp[name_sys], weights_P[name_sys], alpha, True), + method = method, bounds = boundaries, jac = True, options = options) + + minis[name_sys] = mini + mini_x.append(mini.x) + gamma_value += mini.fun + + lambdas = np.concatenate(mini_x) + + loss -= alpha*gamma_value + + ''' 3. add regularization of force-field correction ''' + + if not (np.isinf(beta) or beta == 0): + if not isinstance(regularization['force_field_reg'], str): + reg_ff = regularization['force_field_reg'](pars_ff) + loss += beta*reg_ff + elif not regularization['force_field_reg'] == 'KL divergence': + reg_ff = l2_regularization(pars_ff,regularization['force_field_reg'])[0] + loss += beta*reg_ff + else: + reg_ff = {} + for name_sys in correction_ff.keys(): + reg_ff[name_sys] = compute_D_KL(weights_P[name_sys], correction_ff[name_sys], data[name_sys].temperature, logZ_P[name_sys]) + loss += beta*reg_ff[name_sys] + + ''' 4. add regularization of forward-model coefficients ''' + if not (np.isinf(gamma) or gamma == 0): + reg_fm = regularization['forward_model_reg'](pars_fm, data['global'].forward_coeffs_0) + loss += gamma*reg_fm + + # print('loss function: ', loss) + + ''' 5. if if_save, save values (in detail) ''' + if if_save: + class Details_class: pass + Details = Details_class() + + Details.loss = loss + + if not np.isinf(alpha) and not if_fixed_lambdas: + Details.minis = minis + + if not np.isinf(beta): + Details.weights_P = weights_P + Details.logZ_P = logZ_P + Details.reg_ff = reg_ff + + # just with correction to the force field and to the forward model (not to the ensemble) + if np.isinf(alpha): + Details.av_g = av_g + Details.chi2 = chi2 + + if not np.isinf(gamma): Details.reg_fm = reg_fm + + if not hasattr(Details, 'loss_explicit'): Details.loss_explicit = None # for pylint + + if not np.isinf(alpha): + + ''' Details_ER has attributes with names different from those of Details, as defined up to now ''' + dict_lambdas = {} + for i_sys,name_sys in enumerate(system_names): + dict_lambdas[name_sys] = np.array(lambdas[js[i_sys][0]:js[i_sys][-1]]) + + Details_ER = compute_details_ER(weights_P, g, data, dict_lambdas, alpha) + + my_keys = [x for x in dir(Details_ER) if not x.startswith('__')] + for k in my_keys: setattr(Details, k, getattr(Details_ER, k)) + del Details_ER + + if hasattr(Details, 'loss_explicit'): + if not np.isinf(beta): + for name_sys in system_names: Details.loss_explicit += beta*reg_ff[name_sys] + if not np.isinf(gamma): Details.loss_explicit += gamma*reg_fm + else: print('error in loss_explicit') + + ''' just to improve the readability of the output: ''' + if np.isinf(alpha): + if np.isinf(beta) and np.isinf(gamma): + print('all the hyperparameters are infinite')#, namely, return original ensembles') + elif not np.isinf(beta): + Details.weights_new = Details.weights_P + Details.logZ_new = Details.logZ_P + del Details.weights_P, Details.logZ_P + + if np.isinf(alpha) and np.isinf(beta) and not np.isinf(gamma): + Details.weights_new = {} + for name_sys in system_names: Details.weights_new[name_sys] = data[name_sys].weights + print('new weights are equal to original weights') + + if Details.loss_explicit is None: del Details.loss_explicit # for pylint + + return Details + + return loss + +# %% C8. loss_function_and_grad + +''' This function evaluates loss_function and its gradient; the gradient function is computed by Jax and + passed as input. + Equivalently, you can modify the code in order to compute the gradient by hand inside loss_function + and then return values of loss_function value its gradient. + If not np.isinf(alpha), it appends also loss and lambdas to intermediates.loss and intermediates.lambdas. ''' + +def loss_function_and_grad(pars, data, regularization, alpha, beta, gamma, gtol_inn, method, boundaries, gradient_fun): + + # print('New evaluation:') + + loss = loss_function(pars, data, regularization, alpha, beta, gamma, None, gtol_inn, False, method, boundaries) + + # print('loss: ', loss) + + global intermediates + intermediates.loss.append(loss) + intermediates.pars.append(pars) + + if not np.isinf(alpha): + try: + intermediates.lambdas.append(lambdas) + intermediates.minis.append(minis) + except: None + + ''' now evaluate the gradient w.r.t. pars at lambdas fixed (you are in the minimum: its contribute to the derivative is zero) ''' + gradient = gradient_fun(pars, data, regularization, alpha = alpha, beta = beta, gamma = gamma, fixed_lambdas = lambdas) + + # print('gradient: ', gradient, '\n') + + return loss, gradient + +# %% C9. deconvolve_lambdas + +''' If hasattr(data[name_sys],'normg_std'): also lambdas are computed with normalized data, so (if if_denormalize) + you go back to corresponding lambdas for non-normalized data. ''' + +def deconvolve_lambdas(data, lambdas, if_denormalize = True): + + dict_lambdas = {} + # list_lambdas = [] + + ns = 0 + + system_names = data['global'].system_names#[k for k in data.keys() if k is not 'global'] + + for name_sys in system_names: + + dict_lambdas[name_sys] = {} + + for name in data[name_sys].n_experiments.keys(): + dict_lambdas[name_sys][name] = lambdas[ns:(ns+data[name_sys].n_experiments[name])] + ns += data[name_sys].n_experiments[name] + + if if_denormalize: + if hasattr(data[name_sys], 'normg_std'): + for name in data[name_sys].ref.keys(): + if data[name_sys].ref[name] == '><': + # you can sum since one of the two is zero + dict_lambdas[name_sys][name] = dict_lambdas[name_sys][name+' LOWER']/data[name_sys].normg_std[name+' LOWER'] + dict_lambdas[name_sys][name] += dict_lambdas[name_sys][name+' UPPER']/data[name_sys].normg_std[name+' UPPER'] + del dict_lambdas[name_sys][name+' LOWER'], dict_lambdas[name_sys][name+' UPPER'] + else: + dict_lambdas[name_sys][name] = dict_lambdas[name_sys][name]/data[name_sys].normg_std[name] + # list_lambdas = list_lambdas + dict_lambdas[name_sys][name] + else: + print('missing normalized std values!') + return + else: + for name in data[name_sys].ref.keys(): + if data[name_sys].ref[name] == '><': + dict_lambdas[name_sys][name] = dict_lambdas[name_sys][name+' LOWER'] + dict_lambdas[name_sys][name+' UPPER'] + del dict_lambdas[name_sys][name+' LOWER'], dict_lambdas[name_sys][name+' UPPER'] + # list_lambdas = list_lambdas + dict_lambdas[name_sys][name] + + return dict_lambdas#, list_lambdas + +# %% C10. minimizer + +''' This function minimizes loss_function'''# and do validation, + # both for the full data set and the selected training/test set. ''' + +def minimizer(original_data, *, regularization = None, alpha = np.inf, beta = np.inf, gamma = np.inf, gtol = 1e-3, gtol_inn = 1e-3, data_test = None, starting_pars = None): + + time1 = time.time() + + system_names = original_data['global'].system_names + + ''' copy original_data and act only on the copy, preserving original_data ''' + + # data = copy.deepcopy(original_data) ## it does not work! + + data = {} + for k1 in original_data.keys(): + class my_new_class: pass + my_keys = [x for x in dir(original_data[k1]) if not x.startswith('__')] + for k2 in my_keys: setattr(my_new_class,k2,copy.deepcopy(getattr(original_data[k1],k2))) + data[k1] = my_new_class + + ''' normalize observables ''' + for name_sys in system_names: + if hasattr(data[name_sys], 'g'): + out = normalize_observables(data[name_sys].gexp, data[name_sys].g, data[name_sys].weights) + data[name_sys].g = out[0] + data[name_sys].gexp = out[1] + data[name_sys].normg_mean = out[2] + data[name_sys].normg_std = out[3] + + ''' starting point for lambdas ''' + if not np.isinf(alpha): + + global lambdas + + tot_n_exp = 0 + + for name in system_names: + for item in data[name].n_experiments.values(): tot_n_exp += item + + lambdas = np.zeros(tot_n_exp) + + ''' here you could duplicate lambdas for observables with both lower/upper limits ''' + + else: + lambdas = None + + ''' if needed, define boundaries for minimization over lambdas ''' + + if not alpha == np.inf: + + my_list = [] + for k in data['global'].system_names: my_list = my_list + list(data[k].ref.values()) + + if ('>' in my_list) or ('<' in my_list) or ('><' in my_list): + + method = 'L-BFGS-B' # 'BFGS' by default + + bounds = {} + + for name_sys in data['global'].system_names: + bounds[name_sys] = [] + for name_type in data[name_sys].n_experiments.keys(): + if name_type in data[name_sys].ref.keys(): + if data[name_sys].ref[name_type] == '=': + bounds[name_sys] = bounds[name_sys] + [(-np.inf,+np.inf)]*data[name_sys].g[name_type].shape[1] + elif data[name_sys].ref[name_type] == '<': + bounds[name_sys] = bounds[name_sys] + [(0,+np.inf)]*data[name_sys].g[name_type].shape[1] + elif data[name_sys].ref[name_type] == '>': + bounds[name_sys] = bounds[name_sys] + [(-np.inf,0)]*data[name_sys].g[name_type].shape[1] + elif data[name_sys].ref[name_type[:-6]] == '><': + bounds[name_sys] = bounds[name_sys] + [(-np.inf,0)]*data[name_sys].g[name_type].shape[1] + # bounds = bounds + [[0,+np.inf]]*data.g[name_sys][name_type+' LOWER'].shape[1] + else: + method = 'BFGS' + bounds = None + else: + method = 'BFGS' + bounds = None + + ''' minimization ''' + + class intermediates_class: + def __init__(self, alpha): + self.loss = [] + self.pars = [] + if not np.isinf(alpha): + self.lambdas = [] + self.minis = [] + + global intermediates + intermediates = intermediates_class(alpha) + global minis + + if (np.isinf(beta) and np.isinf(gamma)): + + class Result_class: pass + Result = Result_class() + + pars_ff_fm = None + + Result.loss = loss_function(pars_ff_fm, data, regularization, alpha, beta, gamma, None, gtol_inn, False, method, bounds) + + # since lambdas is global, it is updated inside loss_function with optimal value + min_lambdas = lambdas + Result.min_lambdas = deconvolve_lambdas(data, min_lambdas) + Result.minis = minis + + else:#if not (np.isinf(beta) and np.isinf(gamma)): + + ''' starting point for the inner minimization ''' + + if starting_pars is None: + pars_ff_fm_0 = [] + if not np.isinf(beta): + names_ff_pars = data['global'].names_ff_pars + pars_ff_fm_0 = pars_ff_fm_0 + list(np.zeros(len(names_ff_pars))) + + if not np.isinf(gamma): pars_ff_fm_0 = pars_ff_fm_0 + list(data['global'].forward_coeffs_0) + pars_ff_fm_0 = np.array(pars_ff_fm_0) + else: + pars_ff_fm_0 = starting_pars + + ''' minimize ''' + gradient_fun = jax.grad(loss_function, argnums = 0) + + mini = minimize(loss_function_and_grad, pars_ff_fm_0, args = (data, regularization, alpha, beta, gamma, gtol_inn, method, bounds, gradient_fun), method = 'BFGS', jac = True, options = {'gtol': gtol}) + + pars_ff_fm = mini.x + + class Result_class: + def __init__(self, mini): + self.loss = mini.fun + self.pars = pars_ff_fm + self.mini = mini + + Result = Result_class(mini) + + intermediates.loss = np.array(intermediates.loss) + intermediates.pars = np.array(intermediates.pars) + + if not np.isinf(alpha): + ''' get optimal lambdas ''' + + i_min = np.argmin(intermediates.loss) + min_lambdas = intermediates.lambdas[i_min] + minis = intermediates.minis[i_min] + + ''' denormalize and deconvolve lambdas ''' + Result.min_lambdas = deconvolve_lambdas(data, min_lambdas) + Result.minis = minis + + intermediates.lambdas = np.array(intermediates.lambdas) + + Result.intermediates = intermediates + + ''' return output values ''' + + time2 = time.time() + + Result.time = time2-time1 + + ''' use non-normalized data and non-normalized lambdas ''' + if not np.isinf(alpha): + flatten_lambda = [] + for name_sys in system_names: + flatten_lambda = flatten_lambda + list(np.hstack(Result.min_lambdas[name_sys][k] for k in data[name_sys].n_experiments.keys())) + flatten_lambda = np.array(flatten_lambda) + else: flatten_lambda = None + + Details = loss_function(pars_ff_fm, original_data, regularization, alpha, beta, gamma, flatten_lambda, gtol_inn, True, method, bounds) + if not np.isinf(alpha): del Details.loss_explicit + + for k in vars(Details).keys(): setattr(Result, k, getattr(Details,k)) + del Details + + if data_test is not None: + Details_test = validation(pars_ff_fm, flatten_lambda, data_test, regularization = regularization, alpha = alpha, beta = beta, gamma = gamma, which_return = 'details') + + if not np.isinf(alpha): + Details_test.loss = Details_test.loss_explicit + del Details_test.loss_explicit + # del Details_test.minis + + for k in vars(Details_test).keys(): + if not (k[-7:] == 'new_obs'): k1 = k + '_test' + else: k1 = k + setattr(Result, k1, getattr(Details_test,k)) + del Details_test + + return Result + +# %% C11. select_traintest + +''' This function split the data set into training and test set. In particular, +given: +- the **data** set; +- (required if data has attribute forward_model) **forward_model_selected**: definition of the forward model for selected observables (both train or test), which has to be defined by the user; +- (optionally) the fraction of frames for test set **test_frames_size** and the fraction of observables for test set **test_obs_size**; each of them is a number in $(0,1)$ (same fraction for every system and for every kind of observable), by default 0.2; the **random_state** (namely, the seed, just to make same choice for different hyperparameters, otherwise it is randomly taken); if you want to specify differently, then you can insert directly the dictionaries **test_obs** and/or **test_frames**; +- (optionally) **if_all_frames** = False by default (if True then...) +it returns: +- the splitting into **data_train** and **data_test**; data_test refers to: trained observables and non-trained frames (where non-specified "new"); non-trained (new) observables and non-trained/all frames (where specified "new"); +- the observables and frames (or replicas) selected for the test set **test_obs** and **test_frames** (replicas **test_rep** rather than frames if pos_replicas is not None). + +''' + +def select_traintest(data, *, test_frames_size = 0.2, test_obs_size = 0.2, random_state = None, test_frames = None, test_obs = None, if_all_frames = False, pos_replicas = None): + + ##### PART 1: IF NONE, SELECT TEST OBSERVABLES AND TEST FRAMES + + system_names = data['global'].system_names#[k for k in data.keys() if k is not 'global'] + rng = None + + if (test_frames is None) or (test_obs is None): + + if random_state is None: + try: random_state = random.randint(1000) + except: print('error: Jax requires to specify random state'); return + print('random_state: ',random_state) + + rng = random.default_rng(seed = random_state) + # except: key = random.PRNGKey(random_state) + + if not (test_obs_size > 0 and test_obs_size < 1): print('error on test_obs_size'); return + if not (test_frames_size > 0 and test_frames_size < 1): print('error on test_frames_size'); return + # check_consistency(test_obs_size,data.n_experiments,0,data.g) + # check_consistency(test_frames_size,data.n_frames,1,data.g) + + if test_frames is not None: print('Input random_state employed only for test_obs since test_frames are given') + elif test_obs is not None: print('Input random_state employed only for test_frames since test_obs are given') + else: print('Input random_state employed both for test_obs and test_frames') + + elif random_state is not None: print('Input random_state not employed, since both test_frames and test_obs are given') + + ### 1B. FRAMES TEST + + if test_frames is None: + + test_frames = {} + + # if you have demuxed trajectories, select replicas and the corresponding frames + + if pos_replicas is not None: + + n_replicas = {} + n_replicas_test = {} + test_rep = {} + + for name_sys in system_names: + n_replicas[name_sys] = len(pos_replicas[name_sys]) + n_replicas_test[name_sys] = np.int16(np.round(test_frames_size*n_replicas)) + + test_rep[name_sys] = np.sort(rng.choice(n_replicas[name_sys],n_replicas_test[name_sys],replace = False)) + # except: test_rep[name_sys] = random.choice(key, n_replicas[name_sys], (n_replicas_test[name_sys],), replace = False) + + fin = [] + for i in range(n_replicas_test[name_sys]): + fin = np.concatenate((fin,pos_replicas[name_sys][test_rep[name_sys][i]].flatten()),axis = 0) + test_frames[name_sys] = np.array(fin).astype(int) + del fin + + else: + + n_frames_test = {} + + for name_sys in system_names: + n_frames_test[name_sys] = np.int16(np.round(test_frames_size*data[name_sys].n_frames)) + test_frames[name_sys] = np.sort(rng.choice(data[name_sys].n_frames,n_frames_test[name_sys],replace = False)) + # except: test_frames[name_sys] = random.choice(key, data[name_sys].n_frames,(n_frames_test[name_sys],),replace = False) + + ### 1C. OBSERVABLES TEST + + if test_obs is None: + + n_obs_test = {} + test_obs = {} + + ''' here you select with the same fraction for each type of observable''' + # for name_sys in data.weights.keys(): + # n_obs_test[name_sys] = {} + # test_obs[name_sys] = {} + + # for name_type in data.g[name_sys].keys(): + # n_obs_test[name_sys][name_type] = np.int16(np.round(test_obs_size*data.n_experiments[name_sys][name_type])) + # test_obs[name_sys][name_type] = np.sort(rng.choice(data.n_experiments[name_sys][name_type],n_obs_test[name_sys][name_type],replace = False)) + + ''' here instead you select the same fraction for each system and then take the corresponding observables (in this way, no issue for types of observables with only 1 observable ''' + for name_sys in system_names: + + n_obs_test[name_sys] = {} + test_obs[name_sys] = {} + + n = np.sum(np.array(list(data[name_sys].n_experiments.values()))) + vec = np.sort(rng.choice(n,np.int16(np.round(n*test_obs_size)), replace = False)) + # except: vec = np.sort(jax.random.choice(key, n, (np.int16(np.round(n*test_obs_size)),), replace = False)) + + sum = 0 + for name_type in data[name_sys].n_experiments.keys(): + + test_obs[name_sys][name_type] = vec[(vec >= sum) & (vec < sum + data[name_sys].n_experiments[name_type])] - sum + n_obs_test[name_sys][name_type] = len(test_obs[name_sys][name_type]) + + sum += data[name_sys].n_experiments[name_type] + + del sum, n, vec + + ##### PART 2: GIVEN test_frames and test_obs, RETURN data_test AND data_train + # train, test1 ('non-trained' obs, all or 'non-used' frames), test2 ('trained' obs, 'non-used' frames) + + data_train = {} + data_test = {} + + # # global properties: + + # class my_class: pass + + # my_class.forward_coeffs_0 = data['global'].forward_coeffs_0 + + # data_train['global'] = my_class + # data_test['global'] = my_class + + # del my_class # to be sure data_train['global'] and data_test['global'] will not be modified later! + + data_train['global'] = data['global'] + data_test['global'] = data['global'] + + # for over different systems: + + for name_sys in system_names: + + class class_test: pass + class class_train: pass + + ### 2A. SPLIT WEIGHTS + + try: w = data[name_sys].weights[test_frames[name_sys]] + except: w = data[name_sys].weights[list(test_frames[name_sys])] + class_test.logZ = np.log(np.sum(w)) + class_test.weights = w/np.sum(w) + class_test.n_frames = np.shape(w)[0] + + w = np.delete(data[name_sys].weights,test_frames[name_sys]) + class_train.logZ = np.log(np.sum(w)) + class_train.weights = w/np.sum(w) + class_train.n_frames = np.shape(w)[0] + + ### 2B. SPLIT FORCE-FIELD TERMS F + + if hasattr(data[name_sys],'f'): + + class_test.ff_correction = data[name_sys].ff_correction + class_train.ff_correction = data[name_sys].ff_correction + + # class_test.f = data[name_sys].f.iloc[test_frames[name_sys]] + class_test.f = data[name_sys].f[test_frames[name_sys]] + + # train_frames = list(set(np.arange(data[name_sys].f.shape[0]))-set(test_frames[name_sys])) + # class_train.f = data[name_sys].f.iloc[train_frames] + class_train.f = np.delete(data[name_sys].f, test_frames[name_sys], axis = 0) + + ### 2C. SPLIT EXPERIMENTAL VALUES GEXP, NORMG_MEAN AND NORMG_STD, OBSERVABLES G + + if hasattr(data[name_sys],'gexp'): + + class_test.gexp_new = {} + class_train.gexp = {} + class_train.n_experiments = {} + class_test.n_experiments_new = {} + + for name_type in data[name_sys].gexp.keys(): + + try: class_test.gexp_new[name_type] = data[name_sys].gexp[name_type][list(test_obs[name_sys][name_type])] + except: class_test.gexp_new[name_type] = data[name_sys].gexp[name_type][test_obs[name_sys][name_type]] + class_test.n_experiments_new[name_type] = len(test_obs[name_sys][name_type]) + + class_train.gexp[name_type] = np.delete(data[name_sys].gexp[name_type],test_obs[name_sys][name_type],axis=0) + class_train.n_experiments[name_type] = np.shape(class_train.gexp[name_type])[0] + + if hasattr(data[name_sys],'names'): + + class_test.names_new = {} + class_train.names = {} + + for name_type in data[name_sys].names.keys(): + class_test.names_new[name_type] = data[name_sys].names[name_type][list(test_obs[name_sys][name_type])] + train_obs = list(set(np.arange(data[name_sys].names[name_type].shape[0]))-set(test_obs[name_sys][name_type])) + class_train.names[name_type] = data[name_sys].names[name_type][train_obs] + + if hasattr(data[name_sys],'g'): + + class_test.g_new = {} + if if_all_frames: class_test.g_new_old = {} + class_test.g = {} + class_train.g = {} + + for name_type in data[name_sys].g.keys(): + + # split g into: train, test1 (non-trained obs, all frames or only non-used ones), test2 (trained obs, non-used frames) + # if not test_obs[name_sys][name_type] == []: + class_test.g_new[name_type] = (data[name_sys].g[name_type][test_frames[name_sys],:].T)[test_obs[name_sys][name_type],:].T + + if if_all_frames == True: # new observables on trained frames + class_test.g_new_old[name_type] = np.delete(data[name_sys].g[name_type],test_frames[name_sys],axis=0)[:,list(test_obs[name_sys][name_type])] + + g3 = np.delete(data[name_sys].g[name_type],test_obs[name_sys][name_type],axis=1) + class_test.g[name_type] = g3[test_frames[name_sys],:] + + train_g = np.delete(data[name_sys].g[name_type],test_frames[name_sys],axis=0) + class_train.g[name_type] = np.delete(train_g,test_obs[name_sys][name_type],axis=1) + + if hasattr(data[name_sys],'forward_qs'): + + class_test.forward_qs = {} + class_train.forward_qs = {} + + for name_type in data[name_sys].forward_qs.keys(): + class_test.forward_qs[name_type] = data[name_sys].forward_qs[name_type][list(test_frames[name_sys]),:] + class_train.forward_qs[name_type] = np.delete(data[name_sys].forward_qs[name_type],test_frames[name_sys],axis=0) + + if if_all_frames: + class_test.forward_qs_trained = class_train.forward_qs + + if hasattr(data[name_sys],'forward_model'): + class_test.forward_model = data[name_sys].forward_model + class_train.forward_model = data[name_sys].forward_model + + class_train.ref = data[name_sys].ref + class_test.ref = data[name_sys].ref + + train_obs = {} + for s in data[name_sys].n_experiments.keys(): + train_obs[s] = list(set(np.arange(data[name_sys].n_experiments[s]))-set(test_obs[name_sys][s])) + class_train.selected_obs = train_obs + class_test.selected_obs = train_obs # same observables as in training + class_test.selected_obs_new = test_obs[name_sys] # test observables + + # same as data_train + class_test.gexp = class_train.gexp + class_test.n_experiments = class_train.n_experiments + class_test.temperature = data[name_sys].temperature + class_train.temperature = data[name_sys].temperature + + # class_train.normg_std = data[name_sys].normg_std + # class_train.normg_mean = data[name_sys].normg_mean + + # class_test.normg_std = data[name_sys].normg_std + # class_test.normg_mean = data[name_sys].normg_mean + + data_train[name_sys] = class_train + data_test[name_sys] = class_test + + del class_train, class_test + + # ''' if some type of observables are not included in test observables, delete them to avoid empty items ''' + # for name_sys in system_names: + # for name_type in test_obs[name_sys].keys(): + # if len(test_obs[name_sys][name_type]) == 0: + # del data_test[name_sys].gexp_new[name_type] + # if name_type in data_test[name_sys].g_new.keys(): + # del data_test[name_sys].g_new[name_type] + # if if_all_frames: del data_test[name_sys].g_new_old[name_type] + + for s1 in test_obs.keys(): + my_list1 = [] + my_list2 = [] + + for s2 in test_obs[s1].keys(): + if len(test_obs[s1][s2]) == 0: my_list1.append(s2) + elif len(test_obs[s1][s2]) == data[s1].n_experiments[s2]: my_list2.append(s2) + + for s2 in my_list1: + ''' no test observables of this kind ''' + del data_test[s1].gexp_new[s2], data_test[s1].g_new[s2], data_test[s1].n_experiments_new[s2] + del data_test[s1].selected_obs_new[s2]#, data_test[s1].names_new[s2] + + for s2 in my_list2: + ''' no training observables of this kind''' + del data_test[s1].gexp[s2], data_test[s1].g[s2], data_test[s1].n_experiments[s2] + del data_test[s1].selected_obs[s2]#, data_test[s1].names[s2] + del data_train[s1].gexp[s2], data_train[s1].g[s2], data_train[s1].n_experiments[s2] + del data_train[s1].selected_obs[s2]#, data_train[s1].names[s2] + + for s2 in my_list1: test_obs[s1][s2] = np.int64(np.array([])) + + if pos_replicas is None: return data_train, data_test, test_obs, test_frames + else: return data_train, data_test, test_obs, test_rep + +# %% C12. validation + +''' This function computes the chi2 on new observables, starting from original data set and optimal parameters + (in this way you can compute the full derivative with Jax); if hasattr(data_test, 'forward_qs_trained') and + you have passed also data_train, it includes also training frames. If which_return == 'validation chi2' then + it returns chi2 on validation data set (same observables, new frames), used to compute the derivative with Jax; + elif which_return == 'test chi2' then it returns chi2 on test data set (new observables), used to compute the + derivative with Jax; elif which_return == 'details' then it returns a class with all the computed values. + The splitting of pars_ff_fm into ff and fm is determined by data_test[name_sys].f, which has the same columns + as data_train[name_sys].f. ''' + +def validation(pars_ff_fm, lambdas, data_test, *, regularization = None, alpha = np.inf, beta = np.inf, gamma = np.inf, data_train = None, which_return = 'details'): + + system_names = data_test['global'].system_names#[k for k in data_test.keys() if k is not 'global'] + names_ff_pars = [] + + if not np.isinf(beta): + names_ff_pars = data_test['global'].names_ff_pars + # pars_ff = pars_ff_fm[:len(names_ff_pars)] + + pars_fm = None # to avoid error in pylint + if not np.isinf(gamma): pars_fm = pars_ff_fm[len(names_ff_pars):] + if names_ff_pars == []: del names_ff_pars + + # class data_test: pass + # my_keys = [x for x in dir(original_data_test) if not x.startswith('__')] + # for k in my_keys: setattr(data_test, k, copy.deepcopy(getattr(original_data_test, k))) + + # def Validation_class(): pass + + ''' Compute loss_function in detail for validating set (same observables as in training, new frames). ''' + Validation_values = loss_function(pars_ff_fm, data_test, regularization, alpha, beta, gamma, lambdas, if_save = True) + + if which_return == 'chi2 validation': + tot_chi2 = 0 + for s1 in Validation_values.chi2.keys(): + for item in Validation_values.chi2[s1].values(): tot_chi2 += item + return tot_chi2 + + # my_keys = [x for x in dir(Details) if not x.startswith('__')] + + # s = '_test' + # for k in my_keys: setattr(Validation_class,k+s,getattr(Details,k)) + # del Details + + ### data_test1: non-trained observables, all or non-trained frames + + # let's compute firstly the average of non-trained (validating) observables on new frames + + Validation_values.avg_new_obs = {} + Validation_values.chi2_new_obs = {} + + # if hasattr(data_test,'selected_obs'): + # for name in data_test.forward_qs.keys(): + # for type_name in data_test.forward_qs[name].keys(): + # data_test.forward_qs[name][type_name] = data_test.forward_qs[name][type_name]#[:,data_test.selected_obs[name][type_name]] + + g = {} + + for name_sys in system_names: + + if np.isinf(gamma): + if hasattr(data_test[name_sys], 'g_new'): g[name_sys] = copy.deepcopy(data_test[name_sys].g_new) + else: + if hasattr(data_test[name_sys], 'g_new'): g[name_sys] = copy.deepcopy(data_test[name_sys].g_new) + else: g[name_sys] = {} + + if hasattr(data_test[name_sys], 'selected_obs'): selected_obs = data_test[name_sys].selected_obs_new + else: selected_obs = None + + fm_observables = data_test[name_sys].forward_model(pars_fm, data_test[name_sys].forward_qs, selected_obs) + + for name in fm_observables.keys(): + + g[name_sys][name] = fm_observables[name] + if hasattr(data_test[name_sys], 'normg_mean'): g[name_sys][name] = (g[name_sys][name]-data_test[name_sys].normg_mean[name])/data_test[name_sys].normg_std[name] + + del fm_observables + + for name_sys in system_names: + + out = compute_chi2(data_test[name_sys].ref, Validation_values.weights_new[name_sys], g[name_sys], data_test[name_sys].gexp_new) + + Validation_values.avg_new_obs[name_sys] = out[0] + + if not hasattr(data_test, 'forward_qs_trained'): + Validation_values.chi2_new_obs[name_sys] = out[2] + + # then, if you want to include also trained frames for validating observables: + + if hasattr(data_test, 'forward_qs_trained') and (data_train is not None): # forward qs on trained frames + + Details_train = loss_function(pars_ff_fm, data_train, regularization, alpha, beta, gamma, lambdas, if_save = True) + + g = {} + + for name_sys in system_names: + if np.isinf(gamma): + if hasattr(data_test[name_sys], 'g_new_old'): g[name_sys] = copy.deepcopy(data_test[name_sys].g_new_old) + else: + if hasattr(data_test[name_sys], 'g_new_old'): g[name_sys] = copy.deepcopy(data_test[name_sys].g_new_old) + else: g[name_sys] = {} + + if hasattr(data_test[name_sys], 'selected_obs'): selected_obs = data_test[name_sys].selected_obs + else: selected_obs = None + + fm_observables = data_test[name_sys].forward_model(pars_fm, data_test[name_sys].forward_qs, selected_obs) + + for name in fm_observables.keys(): + + g[name_sys][name] = fm_observables[name] + if hasattr(data_test[name_sys], 'normg_mean'): g[name_sys][name] = (g[name_sys][name]-data_test[name_sys].normg_mean[name])/data_test[name_sys].normg_std[name] + + del fm_observables + + Validation_values.chi2_new_obs[name_sys] = {} + + out = compute_chi2(data_test.ref[name_sys], Details_train.weights_new[name_sys], g[name_sys], data_test.gexp_new[name_sys])[0] + + log_fact_Z = data_test.logZ[name_sys] + Validation_values.logZ_new[name_sys] - Details_train.logZ_new[name_sys] - data_train[name_sys].logZ + + if hasattr(Validation_values,'logZ_P'): log_fact_Z += Validation_values.logZ_P_test[name_sys] - Details_train.logZ_P[name_sys] + + for name_type in data_test.n_experiments[name_sys].keys(): + Validation_values.avg_new_obs[name_sys][name_type] = 1/(1+np.exp(log_fact_Z))*out[name_type] + 1/(1+np.exp(-log_fact_Z))*Validation_values.avg_new_obs[name_sys][name_type] + + Validation_values.chi2_new_obs[name_sys][name_type] = np.sum(((Validation_values.avg_new_obs[name_sys][name_type] - data_test.gexp_new[name_sys][name_type][:,0])/data_test.gexp_new[name_sys][name_type][:,1])**2) + + if which_return == 'test chi2': + tot_chi2 = 0 + for s1 in Validation_values.chi2_new_obs.keys(): + for item in Validation_values.chi2_new_obs[s1].values(): tot_chi2 += item + return tot_chi2 + + return Validation_values + +# %% D. (automatic) optimization of the hyper parameters through minimization of chi2 + +''' Use implicit function theorem to compute the derivatives of the pars_ff_fm and lambdas w.r.t. hyper parameters. ''' + +# %% D1. compute "hyper-derivatives", namely, derivatives of parameters w.r.t. hyper-parameters + +def compute_hyperderivatives(pars_ff_fm, lambdas, data, regularization, log10_alpha = np.inf, log10_beta = np.inf, log10_gamma = np.inf, derivatives_funs = None): + + system_names = data['global'].system_names#[k for k in data.keys() if k is not 'global'] + + if np.isinf(log10_beta) and np.isinf(log10_gamma) and not np.isinf(log10_alpha): + + alpha = np.float64(10**log10_alpha) + + data_n_experiments = {} + for k in system_names: data_n_experiments[k] = data[k].n_experiments + js = compute_js(data_n_experiments) + + class derivatives: pass + + derivatives.dlambdas_dlogalpha = {} + + for i_sys, name_sys in enumerate(system_names): + + my_lambdas = lambdas[js[i_sys][0]:js[i_sys][-1]] + g = np.hstack([data[name_sys].g[k] for k in data[name_sys].n_experiments]) + gexp = np.vstack([data[name_sys].gexp[k] for k in data[name_sys].n_experiments]) + + my_args = (my_lambdas, g, gexp, data[name_sys].weights, alpha) + Hess_inv = np.linalg.inv(derivatives_funs.d2gamma_dlambdas2(*my_args)) + derivatives.dlambdas_dlogalpha[name_sys] = -np.matmul(Hess_inv, derivatives_funs.d2gamma_dlambdas_dalpha(*my_args))*alpha*np.log(10) + + elif not (np.isinf(log10_beta) and np.isinf(log10_gamma)): + + pars_ff_fm = np.array(pars_ff_fm) + + class derivatives: pass + + if not np.isinf(log10_alpha): alpha = np.float64(10**log10_alpha) + else: alpha = np.inf + + if not np.isinf(log10_beta): beta = np.float64(10**log10_beta) + else: beta = np.inf + + if not np.isinf(log10_gamma): gamma = np.float64(10**log10_gamma) + else: gamma = np.inf + + args = (pars_ff_fm, data, regularization, alpha, beta, gamma, lambdas) + + if not np.isinf(alpha): + + d2loss_dpars_dlambdas = derivatives_funs.d2loss_dpars_dlambdas(*args) + + data_n_experiments = {} + for k in system_names: data_n_experiments[k] = data[k].n_experiments + js = compute_js(data_n_experiments) + + ''' %%% + Here use Gamma function, in this way you do multiple inversions, rather than a single inversion + of a very big matrix: different systems have uncorrelated Ensemble Refinement + BUT you have to evaluate Gamma at given phi, theta !! + ''' + + derivatives.dlambdas_dlogalpha = {} + derivatives.dlambdas_dpars = {} + + terms = [] # terms to add to get d2loss_dmu2 deriving from lambdas contribution + terms2 = [] + + names_ff_pars = [] + + ''' compute new weights with ff correction phi ''' + if not np.isinf(beta): + + names_ff_pars = data['global'].names_ff_pars + pars_ff = pars_ff_fm[:len(names_ff_pars)] + + correction_ff = {} + weights_P = {} + logZ_P = {} + + for name in system_names: + if hasattr(data[name], 'ff_correction'): + correction_ff[name] = compute_ff_correction(data[name].ff_correction, data[name].f, pars_ff)#, names_ff_pars) + weights_P[name], logZ_P[name] = compute_new_weights(data[name].weights, correction_ff[name]/data[name].temperature) + + else: # if beta is not infinite, but there are systems without force-field corrections: + weights_P[name] = data[name].weights + logZ_P[name] = 0 + else: + weights_P = {} + for name in system_names: weights_P[name] = data[name].weights + + ''' compute forward quantities through (new) forward coefficients theta''' + + pars_fm = pars_ff_fm[len(names_ff_pars):] + + g = {} + + if np.isinf(gamma): + + for name in system_names: + if hasattr(data[name], 'g'): g[name] = copy.deepcopy(data[name].g) + else: + + for name_sys in system_names: + if hasattr(data[name_sys], 'g'): g[name_sys] = copy.deepcopy(data[name_sys].g) + else: g[name_sys] = {} + + if hasattr(data[name_sys], 'selected_obs'): selected_obs = data[name_sys].selected_obs + else: selected_obs = None + + fm_observables = data[name_sys].forward_model(pars_fm, data[name_sys].forward_qs, selected_obs) + + for name in fm_observables.keys(): g[name_sys][name] = fm_observables[name] + + del fm_observables + + ''' use observables in the initial format ''' + # for name_sys in system_names: + # for name in data[name_sys].ref.keys(): + # if data[name_sys].ref[name] == '><': + # g[name_sys][name+' LOWER'] = g[name_sys][name] + # g[name_sys][name+' UPPER'] = g[name_sys][name] + # del g[name_sys][name] + + ''' Compute derivatives and Hessian. ''' + + for i_sys, name_sys in enumerate(system_names): + + my_lambdas = lambdas[js[i_sys][0]:js[i_sys][-1]] + my_g = np.hstack([g[name_sys][k] for k in data[name_sys].n_experiments]) + my_gexp = np.vstack([data[name_sys].gexp[k] for k in data[name_sys].n_experiments]) + + my_args = (my_lambdas, my_g, my_gexp, weights_P[name_sys], alpha) + + Hess_inn_inv = np.linalg.inv(derivatives_funs.d2gamma_dlambdas2(*my_args)) + + derivatives.dlambdas_dlogalpha[name_sys] = -np.matmul(Hess_inn_inv, derivatives_funs.d2gamma_dlambdas_dalpha(*my_args))*alpha*np.log(10) + + matrix = d2loss_dpars_dlambdas[:,js[i_sys][0]:js[i_sys][-1]] + derivatives.dlambdas_dpars[name_sys] = +np.matmul(Hess_inn_inv, matrix.T)/alpha + terms.append(np.einsum('ij,jk,kl->il',matrix,Hess_inn_inv,matrix.T)) + terms2.append(np.matmul(matrix,derivatives.dlambdas_dlogalpha[name_sys])) + + Hess = +np.sum(np.array(terms), axis = 0)/alpha + derivatives_funs.d2loss_dpars2(*args) + terms2 = np.sum(np.array(terms2), axis = 0) + + # terms = [] + + # ''' Here you can use either the derivatives of loss function or those of Gamma; + # in both cases you have to compute ff re-weights and fm-updated observables; + # if you use loss, this is already coded inside it, but it is repeated at any time you evaluate a derivative; + # if you use Gamma, you would have to code it below inside for loop, and it would have computed just once. ''' + + # for i_sys,name_sys in enumerate(system_names): + + # lambdas_inn = np.array(lambdas[js[i_sys][0]:js[i_sys][-1]]) + + # ''' since you are evaluating the derivatives w.r.t. lambdas, you can omit regularization terms, + # which do not depend on lambdas ''' + # my_dict = {name_sys: data[name_sys]} + + # args_inn = (pars_ff_fm, my_dict, None, alpha, 0, 0, lambdas_inn) + + # print(loss_function(*args)) + # print(loss_function(*args_inn)) + + # d2loss_dpars_dlambdas = derivatives_funs.d2loss_dpars_dlambdas(*args_inn) + # inv_inn_Hess = np.linalg.inv(derivatives.d2loss_dlambdas2(*args_inn)) + # terms.append(np.einsum('ij,jk,kl->il', d2loss_dpars_dlambdas, inv_inn_Hess, d2loss_dpars_dlambdas.T)) + + # ''' To compute the 2nd derivative of gamma w.r.t. lambdas, alpha, you can either: + # - compute the 2nd derivative of gamma w.r.t. lambdas, alpha with Jax and then evaluate it at corresponding ff re-weights and fm-updated observables; + # - exploit Gamma = -loss/alpha (loss includes calculation of ff re-weights and fm-updated observables). ''' + # derivatives.dlambdas_dlogalpha[name_sys] = -np.matmul(inv_inn_Hess, derivatives.d2loss_dlambdas_dalpha(*args_inn))*alpha*np.log(10) + # terms2.append(np.matmul(d2loss_dpars_dlambdas,derivatives.dlambdas_dlogalpha[name_sys])) + + # derivatives.dlambdas_dpars[name_sys] = -np.matmul(inv_inn_Hess, d2loss_dpars_dlambdas.T) + + # Hess = np.sum(np.array(terms), axis = 0) + derivatives_funs.d2loss_dpars2(*args) + # terms2 = np.sum(np.array(terms2), axis = 0) + + else: Hess = derivatives_funs.d2loss_dpars2(*args) + + inv_Hess = np.linalg.inv(Hess) + + if not np.isinf(alpha): + d2loss_dpars_dlogalpha = derivatives_funs.d2loss_dpars_dalpha(*args)*alpha*np.log(10) + derivatives.dpars_dlogalpha = -np.matmul(inv_Hess, d2loss_dpars_dlogalpha + terms2) + if not np.isinf(beta): + d2loss_dpars_dbeta = derivatives_funs.d2loss_dpars_dbeta(*args) + derivatives.dpars_dlogbeta = -np.matmul(inv_Hess, d2loss_dpars_dbeta)*beta*np.log(10) + if not np.isinf(gamma): + d2loss_dpars_dgamma = derivatives_funs.d2loss_dpars_dgamma(*args) + derivatives.dpars_dloggamma = -np.matmul(inv_Hess, d2loss_dpars_dgamma)*gamma*np.log(10) + + return derivatives + +# %% D2. compute chi2 tot + +def compute_chi2_tot(pars_ff_fm, lambdas, data, regularization, alpha, beta, gamma, which_set): + + if which_set == 'training' or which_set == 'validation': + tot_chi2 = 0 + + Details = loss_function(pars_ff_fm, data, regularization, alpha, beta, gamma, fixed_lambdas = lambdas, if_save = True) + + for s1 in Details.chi2.keys(): + for item in Details.chi2[s1].values(): tot_chi2 += item + + elif which_set == 'test': + + tot_chi2 = validation(pars_ff_fm, lambdas, data, regularization = regularization, alpha = alpha, beta = beta, gamma = gamma, which_return = 'test chi2') + + return tot_chi2 + +# %% D3. put_together: apply chain rule to get derivatives of chi2 w.r.t hyper-parameters from +# derivatives of chi2 w.r.t. parameters and derivatives of parameters w.r.t. hyper-parameters + +def put_together(dchi2_dpars, dchi2_dlambdas, derivatives): + + class out_class: pass + out = out_class() + + if (dchi2_dpars is None) and (dchi2_dlambdas is not None): + out.dchi2_dlogalpha = np.dot(dchi2_dlambdas, derivatives.dlambdas_dlogalpha) + + elif dchi2_dpars is not None: + + vec = dchi2_dpars + + if dchi2_dlambdas is not None: + + vec += np.einsum('i,ij', dchi2_dlambdas, derivatives.dlambdas_dpars) + temp = np.dot(dchi2_dlambdas, derivatives.dlambdas_dlogalpha) + + out.dchi2_dlogalpha = np.dot(vec, derivatives.dpars_dlogalpha) + temp + + if hasattr(derivatives, 'dpars_dlogbeta'): + out.dchi2_dlogbeta = np.dot(vec, derivatives.dpars_dlogbeta) + if hasattr(derivatives, 'dpars_dloggamma'): + out.dchi2_dloggamma = np.dot(vec, derivatives.dpars_dloggamma) + + return out + +# %% D4. compute_hypergradient + +''' data_train is needed in all cases to compute derivatives of parameters w.r.t. hyper-parameters ''' + +def compute_hypergradient(pars_ff_fm, lambdas, log10_alpha, log10_beta, log10_gamma, data_train, regularization, which_set, data_test, derivatives_funs): + + system_names = data_train['global'].system_names + + ''' compute derivatives of optimal pars w.r.t. hyper parameters ''' + if not np.isinf(log10_alpha): + lambdas_vec = [] + + for name_sys in system_names: + for name in data_train[name_sys].n_experiments.keys(): + lambdas_vec.append(lambdas[name_sys][name]) + lambdas_vec = np.concatenate((lambdas_vec)) + else: lambdas_vec = None + + # use non-normalized data and lambdas + derivatives = compute_hyperderivatives(pars_ff_fm, lambdas_vec, data_train, regularization, log10_alpha, log10_beta, log10_gamma, derivatives_funs) + + ''' compute chi2 and its derivatives w.r.t. pars''' + + # pars_lambdas = {'ff correction': {}, 'forward model': {}} + # for i,k in enumerate(names_ff_pars): pars_lambdas['ff correction'][k] = mini.x[i] + # for i,k in enumerate(my_data['global'].forward_coeffs_0.keys()): pars_lambdas['forward model'][k] = mini.x[i+len(names_ff_pars)] + + if which_set == 'training': my_data = data_train + elif which_set == 'validation' or which_set == 'test': my_data = data_test + else: + print('error on which_set') + return + + my_args = (pars_ff_fm, lambdas_vec, my_data, regularization, 10**(log10_alpha), 10**(log10_beta), 10**(log10_gamma), which_set) + + chi2 = compute_chi2_tot(*my_args) # so, lambdas follows order of system_names of my_data + + if not (np.isinf(log10_beta) and np.isinf(log10_gamma)): dchi2_dpars = derivatives_funs.dchi2_dpars(*my_args) + else: dchi2_dpars = None + if not np.isinf(log10_alpha): dchi2_dlambdas = derivatives_funs.dchi2_dlambdas(*my_args) + else: dchi2_dlambdas = None + + ''' compute derivatives of chi2 w.r.t. hyper parameters (put together the previous two) ''' + + if hasattr(derivatives, 'dlambdas_dlogalpha'): + derivatives.dlambdas_dlogalpha = np.concatenate(([derivatives.dlambdas_dlogalpha[name_sys] for name_sys in system_names])) + if hasattr(derivatives, 'dlambdas_dpars'): + derivatives.dlambdas_dpars = np.concatenate(([derivatives.dlambdas_dpars[name_sys] for name_sys in system_names])) + + gradient = put_together(dchi2_dpars, dchi2_dlambdas, derivatives) + + return chi2,gradient + +# %% D5. hyper_function: minimize loss function, compute chi2 and its gradient w.r.t hyper-parameters +# at given hyper-parameters (alpha, beta, gamma) + +def hyper_function(log10_hyperpars, map_hyperpars, data, regularization, test_obs, test_frames, which_set, derivatives_funs, starting_pars): + + ''' 0. input values ''' + + i = 0 + if 'alpha' in map_hyperpars: + log10_alpha = log10_hyperpars[i] + i += 1 + else: log10_alpha = np.inf + if 'beta' in map_hyperpars: + log10_beta = log10_hyperpars[i] + i += 1 + else: log10_beta = np.inf + if 'gamma' in map_hyperpars: + log10_gamma = log10_hyperpars[i] + else: log10_gamma = np.inf + + print('\nlog10 hyperpars: ', [(map_hyperpars[i], log10_hyperpars[i]) for i in range(len(map_hyperpars))]) + + if not np.isinf(log10_alpha): alpha = np.float64(10**log10_alpha) + else: alpha = np.inf + + names_ff_pars = [] + + if not np.isinf(log10_beta): + beta = np.float64(10**log10_beta) + names_ff_pars = data['global'].names_ff_pars + pars0 = np.zeros(len(names_ff_pars)) + else: + beta = np.inf + pars0 = np.array([]) + + if not np.isinf(log10_gamma): + gamma = np.float64(10**log10_gamma) + pars0 = np.concatenate(([pars0, np.array(data['global'].forward_coeffs_0)])) + else: gamma = np.inf + + ''' for each seed: ''' + + Results = {} + chi2 = [] + gradient = [] # derivatives of chi2 w.r.t. (log10) hyper parameters + + for seed in test_obs.keys(): + + ''' 2. minimize loss function on training set to get optimal parameters ''' + + out = select_traintest(data, test_frames = test_frames[seed], test_obs = test_obs[seed]) + data_train = out[0] + data_test = out[1] + + mini = minimizer(data_train, regularization = regularization, alpha = alpha, beta = beta, gamma = gamma, starting_pars = starting_pars) + + if hasattr(mini, 'pars'): pars_ff_fm = mini.pars + else: pars_ff_fm = None + if hasattr(mini, 'min_lambdas'): lambdas = mini.min_lambdas + else: lambdas = None + + Results[seed] = mini + + # Details_train = loss_function(pars_ff_fm, data_train, regularization, alpha, beta, gamma, lambdas, if_save = True) + # Details_test = loss_function(pars_ff_fm, data_test, regularization, alpha, beta, gamma, lambdas, if_save = True) + + # my_keys = [x for x in dir(Details_train) if not x.startswith('__')] + # for k in my_keys: setattr(Results[seed], k+'_train', getattr(Details_train, k)) + + # my_keys = [x for x in dir(Details_test) if not x.startswith('__')] + # for k in my_keys: setattr(Results[seed], k+'_test', getattr(Details_test, k)) + + out = compute_hypergradient(pars_ff_fm, lambdas, log10_alpha, log10_beta, log10_gamma, data_train, regularization, which_set, data_test, derivatives_funs) + chi2.append(out[0]) + gradient.append(out[1]) + + tot_chi2 = np.sum(np.array(chi2)) + + tot_gradient = [] + if 'alpha' in map_hyperpars: tot_gradient.append(np.sum(np.array([gradient[k].dchi2_dlogalpha for k in range(len(test_obs.keys()))]))) + if 'beta' in map_hyperpars: tot_gradient.append(np.sum(np.array([gradient[k].dchi2_dlogbeta for k in range(len(test_obs.keys()))]))) + if 'gamma' in map_hyperpars: tot_gradient.append(np.sum(np.array([gradient[k].dchi2_dloggamma for k in range(len(test_obs.keys()))]))) + + tot_gradient = np.array(tot_gradient) + + print('tot chi2: ', tot_chi2) + print('tot gradient: ', tot_gradient) + + global hyper_intermediate + hyper_intermediate.tot_chi2.append(tot_chi2) + hyper_intermediate.tot_gradient.append(tot_gradient) + hyper_intermediate.log10_hyperpars.append(log10_hyperpars)#[log10_alpha,log10_beta,log10_gamma]) + + return tot_chi2, tot_gradient, Results + +# %% D6. hyper_minimization: optimize hyper-parameters + +def hyper_minimizer(data, starting_alpha = np.inf, starting_beta = np.inf, starting_gamma = np.inf, regularization = None, random_states = 1, which_set = 'validation', gtol = 0.5, starting_pars = None): + + class hyper_intermediate_class(): + def __init__(self): + self.tot_chi2 = [] + self.tot_gradient = [] + self.log10_hyperpars = [] + + global hyper_intermediate + hyper_intermediate = hyper_intermediate_class() + + if type(random_states) is int: random_states = np.arange(random_states) + + ''' select training and test set (several seeds) ''' + + test_obs = {} + test_frames = {} + + for seed in random_states: + out = select_traintest(data, random_state = seed) + test_obs[seed] = out[2] + test_frames[seed] = out[3] + + ''' derivatives ''' + + class derivatives_funs_class: + def __init__(self, loss_function, gamma_function): + # self.dloss_dpars = gradient_fun + self.dloss_dpars = jax.grad(loss_function, argnums = 0) + self.d2loss_dpars2 = jax.hessian(loss_function, argnums = 0) + self.d2loss_dpars_dalpha = jax.jacfwd(self.dloss_dpars, argnums = 3) + self.d2loss_dpars_dbeta = jax.jacfwd(self.dloss_dpars, argnums = 4) + self.d2loss_dpars_dgamma = jax.jacfwd(self.dloss_dpars, argnums = 5) + + # self.d2loss_dlambdas2 = jax.hessian(loss_function, argnums = 6) + self.d2loss_dpars_dlambdas = jax.jacrev(self.dloss_dpars, argnums = 6) + self.dgamma_dlambdas = jax.grad(gamma_function, argnums = 0) + self.d2gamma_dlambdas_dalpha = jax.jacfwd(self.dgamma_dlambdas, argnums = 4) + self.d2gamma_dlambdas2 = jax.jacrev(self.dgamma_dlambdas, argnums = 0) + + self.dchi2_dpars = jax.grad(compute_chi2_tot, argnums = 0) + self.dchi2_dlambdas = jax.grad(compute_chi2_tot, argnums = 1) + + derivatives_funs = derivatives_funs_class(loss_function, gamma_function) + + log10_hyperpars0 = [] + map_hyperpars = [] + + if not np.isinf(starting_alpha): + log10_hyperpars0.append(np.log10(starting_alpha)) + map_hyperpars.append('alpha') + if not np.isinf(starting_beta): + log10_hyperpars0.append(np.log10(starting_beta)) + map_hyperpars.append('beta') + if not np.isinf(starting_gamma): + log10_hyperpars0.append(np.log10(starting_gamma)) + map_hyperpars.append('gamma') + + # minimize + args = (map_hyperpars, data, regularization, test_obs, test_frames, which_set, derivatives_funs, starting_pars) + + # hyper_function(log10_hyperpars0, map_hyperpars, data, regularization, test_obs, test_frames, which_set, derivatives_funs, starting_pars) + + hyper_mini = minimize(hyper_function, log10_hyperpars0, args = args, method = 'BFGS', jac = True, options = {'gtol': gtol})#, 'maxfev': 20})#, 'ftol': 0.1}) + + hyper_intermediate.tot_chi2 = np.array(hyper_intermediate.tot_chi2) + hyper_intermediate.tot_gradient = np.array(hyper_intermediate.tot_gradient) + hyper_intermediate.log10_hyperpars = np.array(hyper_intermediate.log10_hyperpars) + hyper_mini['intermediate'] = hyper_intermediate + + return hyper_mini + +# %% D7. MDRefinement: do all together + +def MDRefinement(infos, *, regularization = None, stride = 1, starting_alpha = np.inf, starting_beta = np.inf, starting_gamma = np.inf, random_states = 5, which_set = 'validation', gtol = 0.5): + + data = load_data(infos, stride = stride) + + print('\nsearch for optimal hyperparameters ...') + + mini = hyper_minimizer(data, starting_alpha, starting_beta, starting_gamma, regularization, random_states, which_set, gtol) + optimal_log10_hyperpars = mini.x + + i = 0 + s = '' + if not np.isinf(starting_alpha): + optimal_alpha = 10**optimal_log10_hyperpars[i] + s = s + 'alpha: ' + str(optimal_alpha) + ' ' + i += 1 + else: optimal_alpha = starting_alpha + if not np.isinf(starting_beta): + optimal_beta = 10**optimal_log10_hyperpars[i] + s = s + 'beta: ' + str(optimal_beta) + ' ' + i += 1 + else: optimal_beta = starting_beta + if not np.isinf(starting_gamma): + optimal_gamma = 10**optimal_log10_hyperpars[i] + s = s + 'gamma: ' + str(optimal_gamma) + # i += 1 + else: optimal_gamma = starting_gamma + + print('\noptimal hyperparameters: ' + s) + print('\nrefinement with optimal hyperparameters on the full data set') + + # for the minimization with optimal hyper-parameters use full data set + data = load_data(infos) + + Result = minimizer(data, regularization = regularization, alpha = optimal_alpha, beta = optimal_beta, gamma = optimal_gamma) + + return Result \ No newline at end of file