2017-02-27 71 views
3

我想在Tensorflow后端的Keras自动编码器模型中的解码器阶段之前保存编码部分。如何在Keras中保存编码输出

例如;

encoding_dim = 210 
input_img = Input(shape=(5184,)) 

encoded = Dense(2592, activation='relu')(input_img) 
encoded1 = Dense(encoding_dim, activation='relu')(encoded) 

decoded = Dense(encoding_dim, activation='relu')(encoded1) 
decoded = Dense(5184, activation='sigmoid')(decoded) 

我想给encoded1以csv文件保存自动编码器训练。假设Dense的输出将是(nb_samples, output_dim)

谢谢

回答

2

尝试:

autoencoder = Model(input_img, decoded) 
encoder = Model(input_img, encoded1) 

autoencoder.compile(loss=my_loss, optimizer=my_optimizer) 
autoencoder.fit(my_data, my_data, .. rest of fit params) 

numpy.savetxt("encoded1.csv", encoder.predict(x), delimiter=",") 

而且 - 我不知道你有什么样的数据做的,但我建议你使用linear激活是最后一层和mse损失函数。

+0

它的工作原理。谢谢 – Nufa

+0

你可以upvote我的答案然后:) –

+0

我不认为这个工程了,因为这将节省编码输出之前,拟合和培训是不是?我需要在autoencoder编译和装配后保存它。 – Nufa