相关疑难解决方法(0)

keras将外部可训练变量添加到图形中

我正在进行语言建模,词汇量很大.所以我想使用tensorflow中的sampled_softmax_loss.问题是,samples_softmax_loss函数的参数的权重偏差似乎不可训练(它们的值在训练后不会改变)

所以我想我应该将它们添加到keras Model自动构建的计算图形中,但是我花了很多时间仍然没有找到合适的方法.

所以,再一次.我想在keras计算图中添加外部可训练的tf.Variables.有谁知道这样做的方法?

我的模特(头和尾)

input_sentence = Input(shape=(INPUT_LENGTH,), dtype='int32')
words = Embedding(embedding_matrix.shape[0], embedding_matrix.shape[1],
                  weights=[embedding_matrix], trainable=True)(input_sentence)

...

context = Dense(256, activation='tanh')(context)

model = Model(inputs=input_sentence, outputs=context, name=name)
Run Code Online (Sandbox Code Playgroud)

失利

def softmax_fine_loss(labels, logits, transposed_W=None, b=None):
     res = tf.map_fn(lambda (__labels, __logits): tf.nn.sampled_softmax_loss(transposed_W, b, __labels, __logits, 
                                                                        num_sampled=1000, num_classes=OUTPUT_COUNT+1), 
                (labels, logits), dtype=tf.float32)
     return res

loss = lambda labels, logits: softmax_fine_loss(labels, logits, transposed_W=transposed_W, b=b)

model_truncated.compile(optimizer=optimizer, loss=loss, sample_weight_mode='temporal')
Run Code Online (Sandbox Code Playgroud)

keras tensorflow

4
推荐指数
1
解决办法
2163
查看次数

标签 统计

keras ×1

tensorflow ×1