【问题标题】:How to save the encoded output in Keras如何在 Keras 中保存编码输出
【发布时间】:2017-02-27 12:37:23
【问题描述】:

我想在带有 Tensorflow 后端的 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)

谢谢

【问题讨论】:

    标签: csv machine-learning tensorflow neural-network keras


    【解决方案1】:

    试试:

    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 损失函数。

    【讨论】:

    • 我认为这不再有效,因为这将在拟合和训练之前保存编码输出,不是吗?我需要在自动编码器编译和拟合后保存它。
    • 。实际上。这可以调用predict 来编译Keras 函数。当然不会安装模型,但我希望您会记住这一点。此外 - 你把sigmoid 作为你的激活,这让我不确定你想使用什么样的损失和优化器。我提供了一个所谓的最小工作示例,其中包含您提供的信息。将来 - 在您不接受答案之前 - 请询问为什么没有写在答案中。我会要求您提供更多信息并完成我的回答
    • 当时我认为它正在工作,但后来,我忘记了它尚未安装,正如我上面所问的那样,没有放置自动编码器代码。感谢您的解释。不知何故,您编辑的代码没有考虑解码部分的其他 2 层。
    • @MarcinMożejko 如何加载回数据?我尝试了“np.genfromtxt('encoded1.csv', delimiter=',')”,但在使用数据时出现错误:“预期的 2D 数组,得到 1D 数组”
    猜你喜欢
    • 1970-01-01
    • 2018-09-06
    • 2021-08-22
    • 2022-01-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-02
    • 2018-05-03
    相关资源
    最近更新 更多