我对tf.contrib.layers.embedding_column中tensorflow中实现的嵌入列的使用有一些疑问。
我为双人游戏(网球,在这种情况下)训练二元分类器。我作为feature_columns传递给DNNClassifier的我的功能如下所示:
deep_columns = [
tf.contrib.layers.embedding_column(player1, dimension=9),
tf.contrib.layers.embedding_column(player2, dimension=9),
tf.contrib.layers.embedding_column(court, dimension=1),
tf.contrib.layers.embedding_column(surface, dimension=1),
p1Rank, p2Rank]
我想知道的是:我现在正在为同一组玩家学习两种不同的嵌入方式吗?如果是这样,有没有办法为两个玩家使用一个嵌入层?或者按照我目前正在做的方式做这件事并没有错?
关于embedding_column的第二个问题:文档提到这个,作为embedding_column的可能参数:
ckpt_to_load_from: (Optional). String representing checkpoint name/pattern to restore the column weights. Required if tensor_name_in_ckpt is not None.
tensor_name_in_ckpt: (Optional). Name of the Tensor in the provided checkpoint from which to restore the column weights. Required if ckpt_to_load_from is not None.
这是否意味着如果没有提供这些,那么在从检查点恢复我的模型时,嵌入层会再次随机初始化?
然后是最后一个问题:court
和surface
的两个嵌入列的维度为1,因为它们只有很少的选项。这是嵌入列的错误用法吗?或者可以这样使用它吗?
提前致谢!