基于 Tensorflow 的栈式自编码器 TFSAE

GPL
Python
跨平台
2017-08-29
CrawlScript

TFSAE 是基于 Tensorflow 的 Stacked AutoEncoder (栈式自编码器)。可用于数据降维、特征融合。下图是 TFSAE 将 iris 数据集中的 4 维特征融合为 2 维特征的示例:

Encoded Iris Data(2 features)Fine Tuned Encoded Iris Data(2 features)
Origin Iris Data (4 features)

TFSAE 不仅实现了基础的 AutoEncoder ,还实现了栈式的 AutoEncoder(Stacked AutoEncoder) ,可通过参数在两种模式之间切换。代码也提供了 Fine-Tuning 的功能,用于学习更好的特征。TFSAE 具有精简的接口,示例代码如下:

#coding = utf-8
from autoencoder import AutoEncoder, DataIterator

# train data
datas = [
            [1,1,1,0,0,0],
            [0,0,0,1,1,1]
        ]

# data wrapper
iterator = DataIterator(datas)

# train autoencoder
# assume the input dimension is input_d
# the network is like input_d -> 4 -> 2 -> 4 -> input_d
autoencoder = AutoEncoder()
autoencoder.fit([4, 2], iterator, stacked = True, learning_rate = 0.1, max_epoch = 5000)
autoencoder.fine_tune(iterator, learning_rate = 0.1, supervised = False)

# after training

# encode data
encoded_datas = autoencoder.encode(datas)
print "encoder ================"
print encoded_datas 

# decode data
decoded_datas = autoencoder.decode(encoded_datas)
print "decoder ================"
print decoded_datas

# reconstruct data (encode and decode data)
reconstructed_datas = autoencoder.reconstruct(datas)
print "reconstruct ================"
print reconstructed_datas

autoencoder.close()
加载中

评论(0)

暂无评论

暂无资讯

暂无问答

暂无博客

返回顶部
顶部