This commit is contained in:
Morten Hjorth-Jensen
2024-11-17 15:55:37 +01:00
parent df2f85227b
commit 3147098147
191 changed files with 20795 additions and 4445 deletions
+69 -30
View File
@@ -34,7 +34,7 @@
<link rel="stylesheet" type="text/css" href="_static/styles/sphinx-book-theme.css?v=a3416100" />
<link rel="stylesheet" type="text/css" href="_static/togglebutton.css?v=13237357" />
<link rel="stylesheet" type="text/css" href="_static/copybutton.css?v=76b2166b" />
<link rel="stylesheet" type="text/css" href="_static/mystnb.4510f1fc1dee50b3e5859aac5469c37c29e427902b24a333a5f9fcb2f0b3ac41.css" />
<link rel="stylesheet" type="text/css" href="_static/mystnb.4510f1fc1dee50b3e5859aac5469c37c29e427902b24a333a5f9fcb2f0b3ac41.css?v=be8a1c11" />
<link rel="stylesheet" type="text/css" href="_static/sphinx-thebe.css?v=4fa983c6" />
<link rel="stylesheet" type="text/css" href="_static/sphinx-design.min.css?v=95c83b7e" />
@@ -254,6 +254,9 @@
<li class="toctree-l1"><a class="reference internal" href="week44.html">Week 44, Convolutional Neural Networks (CNN)</a></li>
<li class="toctree-l1"><a class="reference internal" href="week45.html">Week 45, Convolutional Neural Networks (CCNs) and Recurrent Neural Networks (RNNs)</a></li>
<li class="toctree-l1"><a class="reference internal" href="week46.html">Week 46: Decision Trees, Ensemble methods and Random Forests</a></li>
<li class="toctree-l1"><a class="reference internal" href="week47.html">Week 47: From Decision Trees to Ensemble Methods, Random Forests and Boosting Methods</a></li>
<li class="toctree-l1"><a class="reference internal" href="exercisesweek47.html">Exercise week 47</a></li>
</ul>
<p aria-level="2" class="caption" role="heading"><span class="caption-text">Projects</span></p>
<ul class="nav bd-sidenav">
@@ -1109,35 +1112,6 @@ labels = (n_inputs) = (1797,)
</pre></div>
</div>
</div>
<div class="cell_output docutils container">
<div class="output traceback highlight-ipythontb notranslate"><div class="highlight"><pre><span></span><span class="gt">---------------------------------------------------------------------------</span>
<span class="ne">NotFoundError</span><span class="g g-Whitespace"> </span>Traceback (most recent call last)
<span class="n">Cell</span> <span class="n">In</span><span class="p">[</span><span class="mi">4</span><span class="p">],</span> <span class="n">line</span> <span class="mi">1</span>
<span class="ne">----&gt; </span><span class="mi">1</span> <span class="kn">from</span> <span class="nn">tensorflow.keras</span> <span class="kn">import</span> <span class="n">datasets</span><span class="p">,</span> <span class="n">layers</span><span class="p">,</span> <span class="n">models</span>
<span class="g g-Whitespace"> </span><span class="mi">2</span> <span class="kn">from</span> <span class="nn">tensorflow.keras.layers</span> <span class="kn">import</span> <span class="n">Input</span>
<span class="g g-Whitespace"> </span><span class="mi">3</span> <span class="kn">from</span> <span class="nn">tensorflow.keras.models</span> <span class="kn">import</span> <span class="n">Sequential</span> <span class="c1">#This allows appending layers to existing models</span>
<span class="n">File</span> <span class="o">~/</span><span class="n">miniforge3</span><span class="o">/</span><span class="n">envs</span><span class="o">/</span><span class="n">myenv</span><span class="o">/</span><span class="n">lib</span><span class="o">/</span><span class="n">python3</span><span class="mf">.9</span><span class="o">/</span><span class="n">site</span><span class="o">-</span><span class="n">packages</span><span class="o">/</span><span class="n">tensorflow</span><span class="o">/</span><span class="fm">__init__</span><span class="o">.</span><span class="n">py</span><span class="p">:</span><span class="mi">440</span>
<span class="g g-Whitespace"> </span><span class="mi">438</span> <span class="n">_plugin_dir</span> <span class="o">=</span> <span class="n">_os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">_s</span><span class="p">,</span> <span class="s1">&#39;tensorflow-plugins&#39;</span><span class="p">)</span>
<span class="g g-Whitespace"> </span><span class="mi">439</span> <span class="k">if</span> <span class="n">_os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">exists</span><span class="p">(</span><span class="n">_plugin_dir</span><span class="p">):</span>
<span class="ne">--&gt; </span><span class="mi">440</span> <span class="n">_ll</span><span class="o">.</span><span class="n">load_library</span><span class="p">(</span><span class="n">_plugin_dir</span><span class="p">)</span>
<span class="g g-Whitespace"> </span><span class="mi">441</span> <span class="c1"># Load Pluggable Device Library</span>
<span class="g g-Whitespace"> </span><span class="mi">442</span> <span class="n">_ll</span><span class="o">.</span><span class="n">load_pluggable_device_library</span><span class="p">(</span><span class="n">_plugin_dir</span><span class="p">)</span>
<span class="nn">File ~/miniforge3/envs/myenv/lib/python3.9/site-packages/tensorflow/python/framework/load_library.py:151,</span> in <span class="ni">load_library</span><span class="nt">(library_location)</span>
<span class="g g-Whitespace"> </span><span class="mi">148</span> <span class="n">kernel_libraries</span> <span class="o">=</span> <span class="p">[</span><span class="n">library_location</span><span class="p">]</span>
<span class="g g-Whitespace"> </span><span class="mi">150</span> <span class="k">for</span> <span class="n">lib</span> <span class="ow">in</span> <span class="n">kernel_libraries</span><span class="p">:</span>
<span class="ne">--&gt; </span><span class="mi">151</span> <span class="n">py_tf</span><span class="o">.</span><span class="n">TF_LoadLibrary</span><span class="p">(</span><span class="n">lib</span><span class="p">)</span>
<span class="g g-Whitespace"> </span><span class="mi">153</span> <span class="k">else</span><span class="p">:</span>
<span class="g g-Whitespace"> </span><span class="mi">154</span> <span class="k">raise</span> <span class="ne">OSError</span><span class="p">(</span>
<span class="g g-Whitespace"> </span><span class="mi">155</span> <span class="n">errno</span><span class="o">.</span><span class="n">ENOENT</span><span class="p">,</span>
<span class="g g-Whitespace"> </span><span class="mi">156</span> <span class="s1">&#39;The file or folder to load kernel libraries from does not exist.&#39;</span><span class="p">,</span>
<span class="g g-Whitespace"> </span><span class="mi">157</span> <span class="n">library_location</span><span class="p">)</span>
<span class="ne">NotFoundError</span>: dlopen(/Users/mhjensen/miniforge3/envs/myenv/lib/python3.9/site-packages/tensorflow-plugins/libmetal_plugin.dylib, 0x0006): symbol not found in flat namespace &#39;_TF_GetInputPropertiesList&#39;
</pre></div>
</div>
</div>
</div>
<div class="cell docutils container">
<div class="cell_input docutils container">
@@ -1192,6 +1166,71 @@ labels = (n_inputs) = (1797,)
</pre></div>
</div>
</div>
<div class="cell_output docutils container">
<div class="output stderr highlight-myst-ansi notranslate"><div class="highlight"><pre><span></span>/Users/mhjensen/miniforge3/envs/myenv/lib/python3.9/site-packages/keras/src/layers/convolutional/base_conv.py:107: UserWarning: Do not pass an `input_shape`/`input_dim` argument to a layer. When using Sequential models, prefer using an `Input(shape)` object as the first layer in the model instead.
super().__init__(activity_regularizer=activity_regularizer, **kwargs)
</pre></div>
</div>
<div class="output traceback highlight-ipythontb notranslate"><div class="highlight"><pre><span></span><span class="gt">---------------------------------------------------------------------------</span>
<span class="ne">ValueError</span><span class="g g-Whitespace"> </span>Traceback (most recent call last)
<span class="n">Cell</span> <span class="n">In</span><span class="p">[</span><span class="mi">6</span><span class="p">],</span> <span class="n">line</span> <span class="mi">5</span>
<span class="g g-Whitespace"> </span><span class="mi">3</span> <span class="k">for</span> <span class="n">i</span><span class="p">,</span> <span class="n">eta</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">eta_vals</span><span class="p">):</span>
<span class="g g-Whitespace"> </span><span class="mi">4</span> <span class="k">for</span> <span class="n">j</span><span class="p">,</span> <span class="n">lmbd</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">lmbd_vals</span><span class="p">):</span>
<span class="ne">----&gt; </span><span class="mi">5</span> <span class="n">CNN</span> <span class="o">=</span> <span class="n">create_convolutional_neural_network_keras</span><span class="p">(</span><span class="n">input_shape</span><span class="p">,</span> <span class="n">receptive_field</span><span class="p">,</span>
<span class="g g-Whitespace"> </span><span class="mi">6</span> <span class="n">n_filters</span><span class="p">,</span> <span class="n">n_neurons_connected</span><span class="p">,</span> <span class="n">n_categories</span><span class="p">,</span>
<span class="g g-Whitespace"> </span><span class="mi">7</span> <span class="n">eta</span><span class="p">,</span> <span class="n">lmbd</span><span class="p">)</span>
<span class="g g-Whitespace"> </span><span class="mi">8</span> <span class="n">CNN</span><span class="o">.</span><span class="n">fit</span><span class="p">(</span><span class="n">X_train</span><span class="p">,</span> <span class="n">Y_train</span><span class="p">,</span> <span class="n">epochs</span><span class="o">=</span><span class="n">epochs</span><span class="p">,</span> <span class="n">batch_size</span><span class="o">=</span><span class="n">batch_size</span><span class="p">,</span> <span class="n">verbose</span><span class="o">=</span><span class="mi">0</span><span class="p">)</span>
<span class="g g-Whitespace"> </span><span class="mi">9</span> <span class="n">scores</span> <span class="o">=</span> <span class="n">CNN</span><span class="o">.</span><span class="n">evaluate</span><span class="p">(</span><span class="n">X_test</span><span class="p">,</span> <span class="n">Y_test</span><span class="p">)</span>
<span class="nn">Cell In[5], line 12,</span> in <span class="ni">create_convolutional_neural_network_keras</span><span class="nt">(input_shape, receptive_field, n_filters, n_neurons_connected, n_categories, eta, lmbd)</span>
<span class="g g-Whitespace"> </span><span class="mi">9</span> <span class="n">model</span><span class="o">.</span><span class="n">add</span><span class="p">(</span><span class="n">layers</span><span class="o">.</span><span class="n">Dense</span><span class="p">(</span><span class="n">n_neurons_connected</span><span class="p">,</span> <span class="n">activation</span><span class="o">=</span><span class="s1">&#39;relu&#39;</span><span class="p">,</span> <span class="n">kernel_regularizer</span><span class="o">=</span><span class="n">regularizers</span><span class="o">.</span><span class="n">l2</span><span class="p">(</span><span class="n">lmbd</span><span class="p">)))</span>
<span class="g g-Whitespace"> </span><span class="mi">10</span> <span class="n">model</span><span class="o">.</span><span class="n">add</span><span class="p">(</span><span class="n">layers</span><span class="o">.</span><span class="n">Dense</span><span class="p">(</span><span class="n">n_categories</span><span class="p">,</span> <span class="n">activation</span><span class="o">=</span><span class="s1">&#39;softmax&#39;</span><span class="p">,</span> <span class="n">kernel_regularizer</span><span class="o">=</span><span class="n">regularizers</span><span class="o">.</span><span class="n">l2</span><span class="p">(</span><span class="n">lmbd</span><span class="p">)))</span>
<span class="ne">---&gt; </span><span class="mi">12</span> <span class="n">sgd</span> <span class="o">=</span> <span class="n">optimizers</span><span class="o">.</span><span class="n">SGD</span><span class="p">(</span><span class="n">lr</span><span class="o">=</span><span class="n">eta</span><span class="p">)</span>
<span class="g g-Whitespace"> </span><span class="mi">13</span> <span class="n">model</span><span class="o">.</span><span class="n">compile</span><span class="p">(</span><span class="n">loss</span><span class="o">=</span><span class="s1">&#39;categorical_crossentropy&#39;</span><span class="p">,</span> <span class="n">optimizer</span><span class="o">=</span><span class="n">sgd</span><span class="p">,</span> <span class="n">metrics</span><span class="o">=</span><span class="p">[</span><span class="s1">&#39;accuracy&#39;</span><span class="p">])</span>
<span class="g g-Whitespace"> </span><span class="mi">15</span> <span class="k">return</span> <span class="n">model</span>
<span class="nn">File ~/miniforge3/envs/myenv/lib/python3.9/site-packages/keras/src/optimizers/sgd.py:60,</span> in <span class="ni">SGD.__init__</span><span class="nt">(self, learning_rate, momentum, nesterov, weight_decay, clipnorm, clipvalue, global_clipnorm, use_ema, ema_momentum, ema_overwrite_frequency, loss_scale_factor, gradient_accumulation_steps, name, **kwargs)</span>
<span class="g g-Whitespace"> </span><span class="mi">43</span> <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span>
<span class="g g-Whitespace"> </span><span class="mi">44</span> <span class="bp">self</span><span class="p">,</span>
<span class="g g-Whitespace"> </span><span class="mi">45</span> <span class="n">learning_rate</span><span class="o">=</span><span class="mf">0.01</span><span class="p">,</span>
<span class="p">(</span><span class="o">...</span><span class="p">)</span>
<span class="g g-Whitespace"> </span><span class="mi">58</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">,</span>
<span class="g g-Whitespace"> </span><span class="mi">59</span> <span class="p">):</span>
<span class="ne">---&gt; </span><span class="mi">60</span> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="fm">__init__</span><span class="p">(</span>
<span class="g g-Whitespace"> </span><span class="mi">61</span> <span class="n">learning_rate</span><span class="o">=</span><span class="n">learning_rate</span><span class="p">,</span>
<span class="g g-Whitespace"> </span><span class="mi">62</span> <span class="n">name</span><span class="o">=</span><span class="n">name</span><span class="p">,</span>
<span class="g g-Whitespace"> </span><span class="mi">63</span> <span class="n">weight_decay</span><span class="o">=</span><span class="n">weight_decay</span><span class="p">,</span>
<span class="g g-Whitespace"> </span><span class="mi">64</span> <span class="n">clipnorm</span><span class="o">=</span><span class="n">clipnorm</span><span class="p">,</span>
<span class="g g-Whitespace"> </span><span class="mi">65</span> <span class="n">clipvalue</span><span class="o">=</span><span class="n">clipvalue</span><span class="p">,</span>
<span class="g g-Whitespace"> </span><span class="mi">66</span> <span class="n">global_clipnorm</span><span class="o">=</span><span class="n">global_clipnorm</span><span class="p">,</span>
<span class="g g-Whitespace"> </span><span class="mi">67</span> <span class="n">use_ema</span><span class="o">=</span><span class="n">use_ema</span><span class="p">,</span>
<span class="g g-Whitespace"> </span><span class="mi">68</span> <span class="n">ema_momentum</span><span class="o">=</span><span class="n">ema_momentum</span><span class="p">,</span>
<span class="g g-Whitespace"> </span><span class="mi">69</span> <span class="n">ema_overwrite_frequency</span><span class="o">=</span><span class="n">ema_overwrite_frequency</span><span class="p">,</span>
<span class="g g-Whitespace"> </span><span class="mi">70</span> <span class="n">loss_scale_factor</span><span class="o">=</span><span class="n">loss_scale_factor</span><span class="p">,</span>
<span class="g g-Whitespace"> </span><span class="mi">71</span> <span class="n">gradient_accumulation_steps</span><span class="o">=</span><span class="n">gradient_accumulation_steps</span><span class="p">,</span>
<span class="g g-Whitespace"> </span><span class="mi">72</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">,</span>
<span class="g g-Whitespace"> </span><span class="mi">73</span> <span class="p">)</span>
<span class="g g-Whitespace"> </span><span class="mi">74</span> <span class="k">if</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">momentum</span><span class="p">,</span> <span class="nb">float</span><span class="p">)</span> <span class="ow">or</span> <span class="n">momentum</span> <span class="o">&lt;</span> <span class="mi">0</span> <span class="ow">or</span> <span class="n">momentum</span> <span class="o">&gt;</span> <span class="mi">1</span><span class="p">:</span>
<span class="g g-Whitespace"> </span><span class="mi">75</span> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="s2">&quot;`momentum` must be a float between [0, 1].&quot;</span><span class="p">)</span>
<span class="nn">File ~/miniforge3/envs/myenv/lib/python3.9/site-packages/keras/src/backend/tensorflow/optimizer.py:23,</span> in <span class="ni">TFOptimizer.__init__</span><span class="nt">(self, *args, **kwargs)</span>
<span class="g g-Whitespace"> </span><span class="mi">22</span> <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
<span class="ne">---&gt; </span><span class="mi">23</span> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="fm">__init__</span><span class="p">(</span><span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
<span class="g g-Whitespace"> </span><span class="mi">24</span> <span class="bp">self</span><span class="o">.</span><span class="n">_distribution_strategy</span> <span class="o">=</span> <span class="n">tf</span><span class="o">.</span><span class="n">distribute</span><span class="o">.</span><span class="n">get_strategy</span><span class="p">()</span>
<span class="nn">File ~/miniforge3/envs/myenv/lib/python3.9/site-packages/keras/src/optimizers/base_optimizer.py:90,</span> in <span class="ni">BaseOptimizer.__init__</span><span class="nt">(self, learning_rate, weight_decay, clipnorm, clipvalue, global_clipnorm, use_ema, ema_momentum, ema_overwrite_frequency, loss_scale_factor, gradient_accumulation_steps, name, **kwargs)</span>
<span class="g g-Whitespace"> </span><span class="mi">86</span> <span class="n">warnings</span><span class="o">.</span><span class="n">warn</span><span class="p">(</span>
<span class="g g-Whitespace"> </span><span class="mi">87</span> <span class="s2">&quot;Argument `decay` is no longer supported and will be ignored.&quot;</span>
<span class="g g-Whitespace"> </span><span class="mi">88</span> <span class="p">)</span>
<span class="g g-Whitespace"> </span><span class="mi">89</span> <span class="k">if</span> <span class="n">kwargs</span><span class="p">:</span>
<span class="ne">---&gt; </span><span class="mi">90</span> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;Argument(s) not recognized: </span><span class="si">{</span><span class="n">kwargs</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">)</span>
<span class="g g-Whitespace"> </span><span class="mi">92</span> <span class="k">if</span> <span class="n">name</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
<span class="g g-Whitespace"> </span><span class="mi">93</span> <span class="n">name</span> <span class="o">=</span> <span class="n">auto_name</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="o">.</span><span class="vm">__name__</span><span class="p">)</span>
<span class="ne">ValueError</span>: Argument(s) not recognized: {&#39;lr&#39;: 1e-05}
</pre></div>
</div>
</div>
</div>
<div class="cell docutils container">
<div class="cell_input docutils container">