我在网上寻找了几个样本来构建用于数据降噪的堆叠式自动编码器,但我似乎不了解编码器部分的基本部分:
在示例之后,我构建了如下的自动编码器:
function insert_update_data($data) //Add & Update table with "CSV"
{
$this->db->where('invoice_code',$data['invoice_code']);
$this->db->where('item_code',$data['item_code']);
$q = $this->db->get('po_invoice');
if($q->num_rows() > 0){
$this->db->where('invoice_code',$data['invoice_code']);
$this->db->where('item_code',$data['item_code']);
$this->db->update('po_invoice',$data);
} else {
$this->db->insert_batch('po_invoice',$data);
}
}
在示例中,大多数情况下是带有编码器的模型和带有解码器的单独模型。我总是看到只有解码器模型受过训练。编码器未经培训。但是对于我的用例,我只需要编码器模型即可对数据进行去噪。为什么编码器不需要培训?
答案 0 :(得分:1)
您对编码器-解码器的解释是错误的。编码器将您的输入数据编码为某种抽象的高维表示形式,但是如果您想将其用作进一步预测的功能,则功能非常强大。为确保编码后的输出与实际输入尽可能接近,您需要使用解码器,将解码后的高维输入解码回原始输入。在训练期间,编码器和解码器都参与,即编码器层和解码器层的权重都被更新。如果没有对编码器进行培训,它将如何学习编码机制。在推论期间,您只想使用编码器模块来编码输入。