如何在keras模型中使用自定义权重并使用tensorflow对其进行训练?

时间:2019-10-05 10:30:38

标签: tensorflow keras

我使用Keras构建模型,并在“嵌入”层中设置自定义权重,然后使用Tensorflow对其进行训练。但是,自定义权重在代码“ sess.run(tf.global_variables_initializer())”之后更改。完整的代码如下:

sen_input = Input(shape=(maxlen,), name='sen_input')
emb = Embedding(embedding.shape[0], embedding.shape[1], weights=[embedding], trainable=False, name='emb')
pred = Dense(num_classes, activation='softmax', name='pred')(emb(sen_input))

loss = -K.sum(x * K.log(pred + K.epsilon()), axis=-1)
var_list = [v for v in tf.all_variables() if not v.name.startswith('emb')]
train_step = tf.train.AdamOptimizer(0.001).minimize(loss, var_list=var_list)

config = tf.ConfigProto()
config.gpu_options.allow_growth = True
sess = tf.Session(config=config)
init = tf.global_variables_initializer()
sess.run(init)

有解决这个问题的主意吗?

0 个答案:

没有答案