我正在使用新的tf.estimator.WarmStartSettings
从之前的检查点初始化我的网络。我现在想在新数据源上运行相同的网络,其他词汇用于嵌入。
来自documentation page of WarmStartSettings的代码段似乎描述了我的用例:
热启动所有权重,但嵌入参数对应 sc_vocab_file与当前使用的词汇不同 模型:
vocab_info = ws_util.VocabInfo( new_vocab=sc_vocab_file.vocabulary_file, new_vocab_size=sc_vocab_file.vocabulary_size, num_oov_buckets=sc_vocab_file.num_oov_buckets, old_vocab="old_vocab.txt" ) ws = WarmStartSettings( ckpt_to_initialize_from="/tmp", var_name_to_vocab_info={ "input_layer/sc_vocab_file_embedding/embedding_weights": vocab_info })
tf.estimator.VocabInfo
允许指定具有各自大小的新旧词汇。但是,当我尝试使用上面显示的WarmStartSettings和2个不同大小的词汇时,我收到以下错误:
ValueError:变量input_layer / sc_vocab_file_embedding / embedding_weights的形状 ((1887,30))与张量的形状不匹配 来自检查点读者的input_layer / sc_vocab_file_embedding / embedding_weights([537,30])。
为什么VocabInfo允许为词汇提供单独的大小,如果它们的大小必须匹配呢?