2

我正在尝试在我的工作中使用线性链 CRF。我借助了 -- https://github.com/tensorflow/tensorflow/tree/r1.0/tensorflow/contrib/crf中提供的示例使用代码

我的问题是如何在“crf_log_likelihood()”中提供一些“transition_params”的初始值。例如,为了具体示例,我想用标准随机正态分布对其进行初始化。在api doc中,我看到“transition_params”实际上可以作为输入参数传递。在方法内部,我看到如果没有传递“transition_params”,它是通过使用 name =“transitions”执行“vs.get_variable()”来获得的。

那么在创建“crf_log_likelihood”操作之前,我应该做类似的事情吗?类似于 -- transition_params = vs.get_variable("transitions", [num_tags, num_tags], initializer=tf.random_normal_initializer()) -- 然后将 "crf_log_likelihood()" 的调用更改为 "log_likelihood, transition_params = tf.contrib .crf.crf_log_likelihood(unary_scores,y_t,sequence_lengths_t,transition_params)”?

4

1 回答 1

1

如果您自己不提供,内部定义将创建一个新的、随机初始化的变量来表示转换参数get_variable()。如果您不想要默认行为,crf_log_likelihood()您只需要提供一个明确的。transition_params

要了解 的行为get_variable(),请参见此处:

https://www.tensorflow.org/api_docs/python/state_ops/sharing_variables#get_variable

希望有帮助!

于 2017-02-06T15:34:18.943 回答