<p>I think serialization for the ANN code would be great, but I don't know if <a href="https://github.com/zoq" class="user-mention">@zoq</a> has any plans for it already.</p>

<p>To the best of my understanding, you should be able to implement a sparse autoencoder as an FNN just like you said.</p>

<blockquote>
<p>I think it would not be able to do that, I wrote the reasons at here!. Either the layer of ANN need to do some changes and apply type_traits + static_assert to tell the users "this layer is a bad choice" or create a new folder to collect meaningful layer for autoencoder(but this would generate duplicate codes).</p>
</blockquote>

<p>I remember you writing that, I just wanted to make sure that was the only reason.  I think there are a couple ways to go here---type_traits with a static_assert could be a good way to warn users, or, you can provide template typedefs so that the user is generally not building their own autoencoder, but instead just using the pre-existing <code>SparseAutoencoder</code> typedef.  i.e.</p>

<pre><code>using SparseAutoencoder = FNN&lt;...&gt;;
using DenoisingAutoencoder = FNN&lt;...&gt;; // with the FNN class, maybe other types of autoencoders are easy too and can be provided in the future
</code></pre>

<p>Do you think that's a better solution?  This allows regular users the flexibility to do whatever they want by defining their own <code>FNN&lt;...&gt;</code> for a custom autoencoder, and users who just want to use a standard sparse autoencoder can use the <code>SparseAutoencoder</code> typedef (or whatever other types of autoencoders end up being available).</p>

<p style="font-size:small;-webkit-text-size-adjust:none;color:#666;">&mdash;<br>Reply to this email directly or <a href="https://github.com/mlpack/mlpack/pull/451#issuecomment-161982116">view it on GitHub</a>.<img alt="" height="1" src="https://github.com/notifications/beacon/AJ4bFLhksXGas_jiesdFNCOmA5OVH1lbks5pMZzWgaJpZM4GAqt4.gif" width="1" /></p>
<div itemscope itemtype="http://schema.org/EmailMessage">
<div itemprop="action" itemscope itemtype="http://schema.org/ViewAction">
  <link itemprop="url" href="https://github.com/mlpack/mlpack/pull/451#issuecomment-161982116"></link>
  <meta itemprop="name" content="View Pull Request"></meta>
</div>
<meta itemprop="description" content="View this Pull Request on GitHub"></meta>
</div>