DSSM 的 classification 模型中 source 和 target CNN 网络是否是 share 的?
Created by: Miopas
我训练了一个 cnn 的 dssm 模型,看文档中 source 和 target 的 cnn 应该是单独的,但是把参数解压出来看发现不太一样。
在 network_conf.py
代码中这样创建卷积层:
conv_3 = create_conv(3, self.dnn_dims[1], 'cnn')
conv_4 = create_conv(4, self.dnn_dims[1], 'cnn')
参数文件中没有区分开 source 和 target 的 cnn 网络。
我尝试这样修改代码:
conv_3 = create_conv(3, self.dnn_dims[1], prefix + '_cnn')
conv_4 = create_conv(4, self.dnn_dims[1], prefix + '_cnn')
然后解压出来的参数是这样(我的模型是三塔模型,有两个 source 和一个 target):
但是神奇的是上面两种做法最后测试起来没有分别。
可能是我对网络结构不太清楚,原始代码里面 source 和 target 的 cnn 是 share 的吗?