-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
0 parents
commit 5662aa0
Showing
14 changed files
with
55,158 additions
and
0 deletions.
There are no files selected for viewing
Empty file.
Binary file not shown.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,132 @@ | ||
<!doctype html> | ||
<html lang="en"> | ||
<head> | ||
<meta charset="utf-8"> | ||
<meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1"> | ||
<meta name="generator" content="pdoc3 0.11.1"> | ||
<title>MDRefine.MDRefinement API documentation</title> | ||
<meta name="description" content="Main tool: `MDRefinement`. | ||
It refines MD-generated trajectories with customizable refinement."> | ||
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/10up-sanitize.css/13.0.0/sanitize.min.css" integrity="sha512-y1dtMcuvtTMJc1yPgEqF0ZjQbhnc/bFhyvIyVNb9Zk5mIGtqVaAB1Ttl28su8AvFMOY0EwRbAe+HCLqj6W7/KA==" crossorigin> | ||
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/10up-sanitize.css/13.0.0/typography.min.css" integrity="sha512-Y1DYSb995BAfxobCkKepB1BqJJTPrOp3zPL74AWFugHHmmdcvO+C48WLrUOlhGMc0QG7AE3f7gmvvcrmX2fDoA==" crossorigin> | ||
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/styles/default.min.css" crossorigin> | ||
<style>:root{--highlight-color:#fe9}.flex{display:flex !important}body{line-height:1.5em}#content{padding:20px}#sidebar{padding:1.5em;overflow:hidden}#sidebar > *:last-child{margin-bottom:2cm}.http-server-breadcrumbs{font-size:130%;margin:0 0 15px 0}#footer{font-size:.75em;padding:5px 30px;border-top:1px solid #ddd;text-align:right}#footer p{margin:0 0 0 1em;display:inline-block}#footer p:last-child{margin-right:30px}h1,h2,h3,h4,h5{font-weight:300}h1{font-size:2.5em;line-height:1.1em}h2{font-size:1.75em;margin:2em 0 .50em 0}h3{font-size:1.4em;margin:1.6em 0 .7em 0}h4{margin:0;font-size:105%}h1:target,h2:target,h3:target,h4:target,h5:target,h6:target{background:var(--highlight-color);padding:.2em 0}a{color:#058;text-decoration:none;transition:color .2s ease-in-out}a:visited{color:#503}a:hover{color:#b62}.title code{font-weight:bold}h2[id^="header-"]{margin-top:2em}.ident{color:#900;font-weight:bold}pre code{font-size:.8em;line-height:1.4em;padding:1em;display:block}code{background:#f3f3f3;font-family:"DejaVu Sans Mono",monospace;padding:1px 4px;overflow-wrap:break-word}h1 code{background:transparent}pre{border-top:1px solid #ccc;border-bottom:1px solid #ccc;margin:1em 0}#http-server-module-list{display:flex;flex-flow:column}#http-server-module-list div{display:flex}#http-server-module-list dt{min-width:10%}#http-server-module-list p{margin-top:0}.toc ul,#index{list-style-type:none;margin:0;padding:0}#index code{background:transparent}#index h3{border-bottom:1px solid #ddd}#index ul{padding:0}#index h4{margin-top:.6em;font-weight:bold}@media (min-width:200ex){#index .two-column{column-count:2}}@media (min-width:300ex){#index .two-column{column-count:3}}dl{margin-bottom:2em}dl dl:last-child{margin-bottom:4em}dd{margin:0 0 1em 3em}#header-classes + dl > dd{margin-bottom:3em}dd dd{margin-left:2em}dd p{margin:10px 0}.name{background:#eee;font-size:.85em;padding:5px 10px;display:inline-block;min-width:40%}.name:hover{background:#e0e0e0}dt:target .name{background:var(--highlight-color)}.name > span:first-child{white-space:nowrap}.name.class > span:nth-child(2){margin-left:.4em}.inherited{color:#999;border-left:5px solid #eee;padding-left:1em}.inheritance em{font-style:normal;font-weight:bold}.desc h2{font-weight:400;font-size:1.25em}.desc h3{font-size:1em}.desc dt code{background:inherit}.source summary,.git-link-div{color:#666;text-align:right;font-weight:400;font-size:.8em;text-transform:uppercase}.source summary > *{white-space:nowrap;cursor:pointer}.git-link{color:inherit;margin-left:1em}.source pre{max-height:500px;overflow:auto;margin:0}.source pre code{font-size:12px;overflow:visible}.hlist{list-style:none}.hlist li{display:inline}.hlist li:after{content:',\2002'}.hlist li:last-child:after{content:none}.hlist .hlist{display:inline;padding-left:1em}img{max-width:100%}td{padding:0 .5em}.admonition{padding:.1em 1em;margin-bottom:1em}.admonition-title{font-weight:bold}.admonition.note,.admonition.info,.admonition.important{background:#aef}.admonition.todo,.admonition.versionadded,.admonition.tip,.admonition.hint{background:#dfd}.admonition.warning,.admonition.versionchanged,.admonition.deprecated{background:#fd4}.admonition.error,.admonition.danger,.admonition.caution{background:lightpink}</style> | ||
<style media="screen and (min-width: 700px)">@media screen and (min-width:700px){#sidebar{width:30%;height:100vh;overflow:auto;position:sticky;top:0}#content{width:70%;max-width:100ch;padding:3em 4em;border-left:1px solid #ddd}pre code{font-size:1em}.name{font-size:1em}main{display:flex;flex-direction:row-reverse;justify-content:flex-end}.toc ul ul,#index ul ul{padding-left:1em}.toc > ul > li{margin-top:.5em}}</style> | ||
<style media="print">@media print{#sidebar h1{page-break-before:always}.source{display:none}}@media print{*{background:transparent !important;color:#000 !important;box-shadow:none !important;text-shadow:none !important}a[href]:after{content:" (" attr(href) ")";font-size:90%}a[href][title]:after{content:none}abbr[title]:after{content:" (" attr(title) ")"}.ir a:after,a[href^="javascript:"]:after,a[href^="#"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100% !important}@page{margin:0.5cm}p,h2,h3{orphans:3;widows:3}h1,h2,h3,h4,h5,h6{page-break-after:avoid}}</style> | ||
<script defer src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/highlight.min.js" integrity="sha512-D9gUyxqja7hBtkWpPWGt9wfbfaMGVt9gnyCvYa+jojwwPHLCzUm5i8rpk7vD7wNee9bA35eYIjobYPaQuKS1MQ==" crossorigin></script> | ||
<script>window.addEventListener('DOMContentLoaded', () => { | ||
hljs.configure({languages: ['bash', 'css', 'diff', 'graphql', 'ini', 'javascript', 'json', 'plaintext', 'python', 'python-repl', 'rust', 'shell', 'sql', 'typescript', 'xml', 'yaml']}); | ||
hljs.highlightAll(); | ||
})</script> | ||
</head> | ||
<body> | ||
<main> | ||
<article id="content"> | ||
<header> | ||
<h1 class="title">Module <code>MDRefine.MDRefinement</code></h1> | ||
</header> | ||
<section id="section-intro"> | ||
<p>Main tool: <code><a title="MDRefine.MDRefinement.MDRefinement" href="#MDRefine.MDRefinement.MDRefinement">MDRefinement()</a></code>. | ||
It refines MD-generated trajectories with customizable refinement.</p> | ||
</section> | ||
<section> | ||
</section> | ||
<section> | ||
</section> | ||
<section> | ||
<h2 class="section-title" id="header-functions">Functions</h2> | ||
<dl> | ||
<dt id="MDRefine.MDRefinement.MDRefinement"><code class="name flex"> | ||
<span>def <span class="ident">MDRefinement</span></span>(<span>infos: dict, *, regularization: dict = None, stride: int = 1, starting_alpha: float = inf, starting_beta: float = inf, starting_gamma: float = inf, random_states=5, which_set: str = 'validation', gtol: float = 0.5, ftol: float = 0.05, results_folder_name: str = 'results', n_parallel_jobs: int = None)</span> | ||
</code></dt> | ||
<dd> | ||
<div class="desc"><p>This is the main tool of the package: it loads data, searches for the optimal hyperparameters and minimizes the loss function on the whole data set | ||
by using the opimized hyperparameters. The output variables are then saved in a folder; they include <code>input</code> values, <code>min_lambdas</code> (optimal lambda coefficients for Ensemble Refinement, when performed), | ||
<code>result</code>, <code>hyper_search</code> (steps in the search for optimal hyperparameters) (<code>.csv</code> files) and the <code>.npy</code> arrays with the new weights determined in the refinement.</p> | ||
<h2 id="parameters">Parameters</h2> | ||
<dl> | ||
<dt><strong><code>infos</code></strong> : <code>dict</code></dt> | ||
<dd>A dictionary of information used to load data with <code>load_data</code> (see in the Examples directory).</dd> | ||
<dt><strong><code>regularization</code></strong> : <code>dict</code></dt> | ||
<dd>A dictionary which can include two keys: <code>force_field_reg</code> and <code>forward_model_reg</code>, to specify the regularizations to the force-field correction and the forward model, respectively; | ||
the first key is either a string (among <code>plain l2</code>, <code>constraint 1</code>, <code>constraint 2</code>, <code>KL divergence</code>) or a user-defined | ||
function which takes as input <code>pars_ff</code> and returns the regularization term to be multiplied by the hyperparameter <code>beta</code>; | ||
the second key is a user-defined function which takes as input <code>pars_fm</code> and <code>forward_coeffs_0</code> (current and refined forward-model coefficients) and | ||
returns the regularization term to be multiplied by the hyperparameter <code>gamma</code>.</dd> | ||
<dt><strong><code>stride</code></strong> : <code>int</code></dt> | ||
<dd>The stride of the frames used to load data employed in search for optimal hyperparameters | ||
(in order to reduce the computational cost, at the price of a lower representativeness of the ensembles).</dd> | ||
<dt><strong><code>starting_alpha</code></strong>, <strong><code>starting_beta</code></strong>, <strong><code>starting_gamma</code></strong> : <code>floats</code></dt> | ||
<dd>Starting values of the hyperparameters (<code>np.inf</code> by default, namely no refinement in that direction).</dd> | ||
<dt><strong><code>random_states</code></strong> : <code>int</code> or <code>list</code> of <code>integers</code></dt> | ||
<dd>Random states (i.e., seeds) used to split the data set in cross validation (if integer, then <code>random_states = np.arange(random_states)</code>.</dd> | ||
<dt><strong><code>which_set</code></strong> : <code>str</code></dt> | ||
<dd>String chosen among <code>'training'</code>, <code>'validation'</code> or <code>'test'</code>, which specifies how to determine optimal hyperparameters: | ||
if minimizing the (average) chi2 on the training set for <code>'training'</code>, on training observables and test frames for <code>'validation'</code>, | ||
on test observables for <code>'test'</code>.</dd> | ||
<dt><strong><code>gtol</code></strong> : <code>float</code></dt> | ||
<dd>Tolerance <code>gtol</code> (on the gradient) of scipy.optimize.minimize (0.5 by default).</dd> | ||
<dt><strong><code>ftol</code></strong> : <code>float</code></dt> | ||
<dd>Tolerance <code>ftol</code> of scipy.optimize.minimize (0.05 by default).</dd> | ||
<dt><strong><code>results_folder_name</code></strong> : <code>str</code></dt> | ||
<dd>String for the prefix of the folder where to save results; the complete folder name is <code>results_folder_name + '_' + time</code> where <code>time</code> is the current time | ||
when the algorithm has finished, in order to uniquely identify the folder with the results.</dd> | ||
<dt><strong><code>n_parallel_jobs</code></strong> : <code>int</code></dt> | ||
<dd>How many jobs are run in parallel (<code>None</code> by default).</dd> | ||
</dl></div> | ||
</dd> | ||
<dt id="MDRefine.MDRefinement.save_txt"><code class="name flex"> | ||
<span>def <span class="ident">save_txt</span></span>(<span>input_values, Result, coeff_names, folder_name='Result')</span> | ||
</code></dt> | ||
<dd> | ||
<div class="desc"><p>This is an internal tool of <code><a title="MDRefine.MDRefinement.MDRefinement" href="#MDRefine.MDRefinement.MDRefinement">MDRefinement()</a></code> used to save <code>input_values</code> and output <code>Result</code> as <code>csv</code> and <code>npy</code> files in a folder whose name is | ||
<code>folder_name + '_' + date</code> where date is the current time when the computation ended (it uses <code>date_time</code> | ||
to generate unique file name, on the assumption of a single folder name at given time).</p> | ||
<h2 id="parameters">Parameters</h2> | ||
<dl> | ||
<dt><strong><code>input_values</code></strong> : <code>dict</code></dt> | ||
<dd>Dictionary with input values of the refinement, such as stride, starting values of the hyperparameters, random_states, which_set, tolerances (see <code><a title="MDRefine.MDRefinement.MDRefinement" href="#MDRefine.MDRefinement.MDRefinement">MDRefinement()</a></code>).</dd> | ||
<dt><strong><code>Result</code></strong> : <code>class instance</code></dt> | ||
<dd>Class instance with the results of <code>minimizer</code> and the search for the optimal hyperparameters.</dd> | ||
<dt><strong><code>coeff_names</code></strong> : <code>list</code></dt> | ||
<dd>List with the names of the coefficients (force-field and forward-model corrections).</dd> | ||
<dt><strong><code>folder_name</code></strong> : <code>str</code></dt> | ||
<dd>String for the prefix of the folder name (by default, <code>'Result'</code>).</dd> | ||
</dl></div> | ||
</dd> | ||
<dt id="MDRefine.MDRefinement.unwrap_2dict"><code class="name flex"> | ||
<span>def <span class="ident">unwrap_2dict</span></span>(<span>my_2dict)</span> | ||
</code></dt> | ||
<dd> | ||
<div class="desc"><p>Tool to unwrap a 2-layer dictionary <code>my_2dict</code> into list of values and list of keys.</p></div> | ||
</dd> | ||
</dl> | ||
</section> | ||
<section> | ||
</section> | ||
</article> | ||
<nav id="sidebar"> | ||
<div class="toc"> | ||
<ul></ul> | ||
</div> | ||
<ul id="index"> | ||
<li><h3>Super-module</h3> | ||
<ul> | ||
<li><code><a title="MDRefine" href="index.html">MDRefine</a></code></li> | ||
</ul> | ||
</li> | ||
<li><h3><a href="#header-functions">Functions</a></h3> | ||
<ul class=""> | ||
<li><code><a title="MDRefine.MDRefinement.MDRefinement" href="#MDRefine.MDRefinement.MDRefinement">MDRefinement</a></code></li> | ||
<li><code><a title="MDRefine.MDRefinement.save_txt" href="#MDRefine.MDRefinement.save_txt">save_txt</a></code></li> | ||
<li><code><a title="MDRefine.MDRefinement.unwrap_2dict" href="#MDRefine.MDRefinement.unwrap_2dict">unwrap_2dict</a></code></li> | ||
</ul> | ||
</li> | ||
</ul> | ||
</nav> | ||
</main> | ||
<footer id="footer"> | ||
<p>Generated by <a href="https://pdoc3.github.io/pdoc" title="pdoc: Python API documentation generator"><cite>pdoc</cite> 0.11.1</a>.</p> | ||
</footer> | ||
</body> | ||
</html> |
Oops, something went wrong.