Add hyperparameter convergence_best

move test libraries to test folder
This commit is contained in:
2024-04-30 00:52:09 +02:00
parent f014928411
commit ae469b8146
721 changed files with 206095 additions and 2496 deletions

View File

@@ -37,7 +37,7 @@
</tr>
<tr>
<td class="headerItem">Test Date:</td>
<td class="headerValue">2024-04-21 17:30:26</td>
<td class="headerValue">2024-04-29 20:48:03</td>
<td></td>
<td class="headerItem">Functions:</td>
<td class="headerCovTableEntryHi">100.0&nbsp;%</td>
@@ -70,38 +70,38 @@
<span id="L8"><span class="lineNum"> 8</span> : #include &quot;bayesnetUtils.h&quot;</span>
<span id="L9"><span class="lineNum"> 9</span> : namespace bayesnet {</span>
<span id="L10"><span class="lineNum"> 10</span> : // Return the indices in descending order</span>
<span id="L11"><span class="lineNum"> 11</span> <span class="tlaGNC tlaBgGNC"> 29 : std::vector&lt;int&gt; argsort(std::vector&lt;double&gt;&amp; nums)</span></span>
<span id="L11"><span class="lineNum"> 11</span> <span class="tlaGNC tlaBgGNC"> 327 : std::vector&lt;int&gt; argsort(std::vector&lt;double&gt;&amp; nums)</span></span>
<span id="L12"><span class="lineNum"> 12</span> : {</span>
<span id="L13"><span class="lineNum"> 13</span> <span class="tlaGNC"> 29 : int n = nums.size();</span></span>
<span id="L14"><span class="lineNum"> 14</span> <span class="tlaGNC"> 29 : std::vector&lt;int&gt; indices(n);</span></span>
<span id="L15"><span class="lineNum"> 15</span> <span class="tlaGNC"> 29 : iota(indices.begin(), indices.end(), 0);</span></span>
<span id="L16"><span class="lineNum"> 16</span> <span class="tlaGNC"> 596 : sort(indices.begin(), indices.end(), [&amp;nums](int i, int j) {return nums[i] &gt; nums[j];});</span></span>
<span id="L17"><span class="lineNum"> 17</span> <span class="tlaGNC"> 29 : return indices;</span></span>
<span id="L13"><span class="lineNum"> 13</span> <span class="tlaGNC"> 327 : int n = nums.size();</span></span>
<span id="L14"><span class="lineNum"> 14</span> <span class="tlaGNC"> 327 : std::vector&lt;int&gt; indices(n);</span></span>
<span id="L15"><span class="lineNum"> 15</span> <span class="tlaGNC"> 327 : iota(indices.begin(), indices.end(), 0);</span></span>
<span id="L16"><span class="lineNum"> 16</span> <span class="tlaGNC"> 9020 : sort(indices.begin(), indices.end(), [&amp;nums](int i, int j) {return nums[i] &gt; nums[j];});</span></span>
<span id="L17"><span class="lineNum"> 17</span> <span class="tlaGNC"> 327 : return indices;</span></span>
<span id="L18"><span class="lineNum"> 18</span> <span class="tlaUNC tlaBgUNC"> 0 : }</span></span>
<span id="L19"><span class="lineNum"> 19</span> <span class="tlaGNC tlaBgGNC"> 7 : std::vector&lt;std::vector&lt;double&gt;&gt; tensorToVectorDouble(torch::Tensor&amp; dtensor)</span></span>
<span id="L19"><span class="lineNum"> 19</span> <span class="tlaGNC tlaBgGNC"> 82 : std::vector&lt;std::vector&lt;double&gt;&gt; tensorToVectorDouble(torch::Tensor&amp; dtensor)</span></span>
<span id="L20"><span class="lineNum"> 20</span> : {</span>
<span id="L21"><span class="lineNum"> 21</span> : // convert mxn tensor to mxn std::vector</span>
<span id="L22"><span class="lineNum"> 22</span> <span class="tlaGNC"> 7 : std::vector&lt;std::vector&lt;double&gt;&gt; result;</span></span>
<span id="L22"><span class="lineNum"> 22</span> <span class="tlaGNC"> 82 : std::vector&lt;std::vector&lt;double&gt;&gt; result;</span></span>
<span id="L23"><span class="lineNum"> 23</span> : // Iterate over cols</span>
<span id="L24"><span class="lineNum"> 24</span> <span class="tlaGNC"> 1803 : for (int i = 0; i &lt; dtensor.size(0); ++i) {</span></span>
<span id="L25"><span class="lineNum"> 25</span> <span class="tlaGNC"> 5388 : auto col_tensor = dtensor.index({ i, &quot;...&quot; });</span></span>
<span id="L26"><span class="lineNum"> 26</span> <span class="tlaGNC"> 1796 : auto col = std::vector&lt;double&gt;(col_tensor.data_ptr&lt;float&gt;(), col_tensor.data_ptr&lt;float&gt;() + dtensor.size(1));</span></span>
<span id="L27"><span class="lineNum"> 27</span> <span class="tlaGNC"> 1796 : result.push_back(col);</span></span>
<span id="L28"><span class="lineNum"> 28</span> <span class="tlaGNC"> 1796 : }</span></span>
<span id="L29"><span class="lineNum"> 29</span> <span class="tlaGNC"> 7 : return result;</span></span>
<span id="L30"><span class="lineNum"> 30</span> <span class="tlaGNC"> 1796 : }</span></span>
<span id="L31"><span class="lineNum"> 31</span> <span class="tlaGNC"> 9 : torch::Tensor vectorToTensor(std::vector&lt;std::vector&lt;int&gt;&gt;&amp; vector, bool transpose)</span></span>
<span id="L24"><span class="lineNum"> 24</span> <span class="tlaGNC"> 22442 : for (int i = 0; i &lt; dtensor.size(0); ++i) {</span></span>
<span id="L25"><span class="lineNum"> 25</span> <span class="tlaGNC"> 67080 : auto col_tensor = dtensor.index({ i, &quot;...&quot; });</span></span>
<span id="L26"><span class="lineNum"> 26</span> <span class="tlaGNC"> 22360 : auto col = std::vector&lt;double&gt;(col_tensor.data_ptr&lt;float&gt;(), col_tensor.data_ptr&lt;float&gt;() + dtensor.size(1));</span></span>
<span id="L27"><span class="lineNum"> 27</span> <span class="tlaGNC"> 22360 : result.push_back(col);</span></span>
<span id="L28"><span class="lineNum"> 28</span> <span class="tlaGNC"> 22360 : }</span></span>
<span id="L29"><span class="lineNum"> 29</span> <span class="tlaGNC"> 82 : return result;</span></span>
<span id="L30"><span class="lineNum"> 30</span> <span class="tlaGNC"> 22360 : }</span></span>
<span id="L31"><span class="lineNum"> 31</span> <span class="tlaGNC"> 104 : torch::Tensor vectorToTensor(std::vector&lt;std::vector&lt;int&gt;&gt;&amp; vector, bool transpose)</span></span>
<span id="L32"><span class="lineNum"> 32</span> : {</span>
<span id="L33"><span class="lineNum"> 33</span> : // convert nxm std::vector to mxn tensor if transpose</span>
<span id="L34"><span class="lineNum"> 34</span> <span class="tlaGNC"> 9 : long int m = transpose ? vector[0].size() : vector.size();</span></span>
<span id="L35"><span class="lineNum"> 35</span> <span class="tlaGNC"> 9 : long int n = transpose ? vector.size() : vector[0].size();</span></span>
<span id="L36"><span class="lineNum"> 36</span> <span class="tlaGNC"> 9 : auto tensor = torch::zeros({ m, n }, torch::kInt32);</span></span>
<span id="L37"><span class="lineNum"> 37</span> <span class="tlaGNC"> 59 : for (int i = 0; i &lt; m; ++i) {</span></span>
<span id="L38"><span class="lineNum"> 38</span> <span class="tlaGNC"> 12481 : for (int j = 0; j &lt; n; ++j) {</span></span>
<span id="L39"><span class="lineNum"> 39</span> <span class="tlaGNC"> 12431 : tensor[i][j] = transpose ? vector[j][i] : vector[i][j];</span></span>
<span id="L34"><span class="lineNum"> 34</span> <span class="tlaGNC"> 104 : long int m = transpose ? vector[0].size() : vector.size();</span></span>
<span id="L35"><span class="lineNum"> 35</span> <span class="tlaGNC"> 104 : long int n = transpose ? vector.size() : vector[0].size();</span></span>
<span id="L36"><span class="lineNum"> 36</span> <span class="tlaGNC"> 104 : auto tensor = torch::zeros({ m, n }, torch::kInt32);</span></span>
<span id="L37"><span class="lineNum"> 37</span> <span class="tlaGNC"> 686 : for (int i = 0; i &lt; m; ++i) {</span></span>
<span id="L38"><span class="lineNum"> 38</span> <span class="tlaGNC"> 156955 : for (int j = 0; j &lt; n; ++j) {</span></span>
<span id="L39"><span class="lineNum"> 39</span> <span class="tlaGNC"> 156373 : tensor[i][j] = transpose ? vector[j][i] : vector[i][j];</span></span>
<span id="L40"><span class="lineNum"> 40</span> : }</span>
<span id="L41"><span class="lineNum"> 41</span> : }</span>
<span id="L42"><span class="lineNum"> 42</span> <span class="tlaGNC"> 9 : return tensor;</span></span>
<span id="L42"><span class="lineNum"> 42</span> <span class="tlaGNC"> 104 : return tensor;</span></span>
<span id="L43"><span class="lineNum"> 43</span> <span class="tlaUNC tlaBgUNC"> 0 : }</span></span>
<span id="L44"><span class="lineNum"> 44</span> : }</span>
</pre>