2024-10-01 02:25:12 发布
网友
我已经训练过自动编码器(E1-D1) 现在我想要另一个自动编码器让我们称之为(E2-D2)
因此,模型类似于E1->;E2->;D2->;D1,其中模型仅通过使用D1的输出和E1的输入来优化E2 D2
E1->;5层CNN+1个FC(已训练)
E2->;5层+1层
D2->;5个DeCNN层+1个FC
D1->;5个DeCNN层+1个FC(已训练)
注E1 D1已训练(图中为蓝色)
请看图片
我只想用X(输入)Y(输出)来优化e2d2
在tensorflow中实现这一点的最简单方法是第一列E1和D1(已经完成)。然后提取并存储这些网络的tf.Variables(权重和偏差)的值,然后创建一个包含上述所有自动编码器的全新网络结构,并将提取的权重值注入新网络
tf.Variables
您可以通过对E1和D1网络进行训练,然后在会话中调用tf.get_tensor_by_name,将权重值提取为numpy数组来实现这一点。然后可以使用np.save保存这些文件以备将来使用
使用所有所需图层创建新的完整网络:
5个CNN层+1个FC+5个CNN层+1个FC+5个DeCNN层+1个FC 5个DeCNN层+1个FC
然后可以将E1和D1层中tf.Variables的值初始化为先前保存的值,方法是使用np.load加载先前保存的值,然后将这些值作为<initial-value>参数传递给tf.Variables,如here所述
<initial-value>
您可以将这些恢复的tf.Variables设置为untrainable,以便它们在其余的训练期间保持不变
在tensorflow中实现这一点的最简单方法是第一列E1和D1(已经完成)。然后提取并存储这些网络的
tf.Variables
(权重和偏差)的值,然后创建一个包含上述所有自动编码器的全新网络结构,并将提取的权重值注入新网络您可以通过对E1和D1网络进行训练,然后在会话中调用tf.get_tensor_by_name,将权重值提取为numpy数组来实现这一点。然后可以使用np.save保存这些文件以备将来使用
使用所有所需图层创建新的完整网络:
5个CNN层+1个FC+5个CNN层+1个FC+5个DeCNN层+1个FC 5个DeCNN层+1个FC
然后可以将E1和D1层中tf.Variables的值初始化为先前保存的值,方法是使用np.load加载先前保存的值,然后将这些值作为
<initial-value>
参数传递给tf.Variables,如here所述您可以将这些恢复的tf.Variables设置为untrainable,以便它们在其余的训练期间保持不变
相关问题 更多 >
编程相关推荐