Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/tensorflow/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Tensorflow 如何微调通用句子编码器3嵌入到自己的语料库_Tensorflow_Machine Learning_Nlp_Transfer Learning_Tensorflow Hub - Fatal编程技术网

Tensorflow 如何微调通用句子编码器3嵌入到自己的语料库

Tensorflow 如何微调通用句子编码器3嵌入到自己的语料库,tensorflow,machine-learning,nlp,transfer-learning,tensorflow-hub,Tensorflow,Machine Learning,Nlp,Transfer Learning,Tensorflow Hub,我想将谷歌通用句子编码器large 3()生成的嵌入内容微调到我自己的语料库中。任何关于如何做到这一点的建议都将不胜感激。我目前的想法是将我的语料库中的句子对输入编码器,然后使用额外的一层对它们进行分类,看它们在语义上是否相同。我的问题是,我不知道如何设置它,因为这需要设置两个共享权重的使用模型,我相信它被称为暹罗网络。任何关于如何做到这一点的帮助都将不胜感激 def train_and_evaluate_with_module(hub_module, train_module=False):

我想将谷歌通用句子编码器large 3()生成的嵌入内容微调到我自己的语料库中。任何关于如何做到这一点的建议都将不胜感激。我目前的想法是将我的语料库中的句子对输入编码器,然后使用额外的一层对它们进行分类,看它们在语义上是否相同。我的问题是,我不知道如何设置它,因为这需要设置两个共享权重的使用模型,我相信它被称为暹罗网络。任何关于如何做到这一点的帮助都将不胜感激

def train_and_evaluate_with_module(hub_module, train_module=False):
    embedded_text_feature_column1 = hub.text_embedding_column(
      key="sentence1", module_spec=hub_module, trainable=train_module)

    embedded_text_feature_column2 = hub.text_embedding_column(
      key="sentence2", module_spec=hub_module, trainable=train_module)


    estimator = tf.estimator.DNNClassifier(
      hidden_units=[500, 100],
      feature_columns=[embedded_text_feature_column1,embedded_text_feature_column2],
      n_classes=2,
      optimizer=tf.train.AdagradOptimizer(learning_rate=0.003))

    estimator.train(input_fn=train_input_fn, steps=1000)

    train_eval_result = estimator.evaluate(input_fn=predict_train_input_fn)
    test_eval_result = estimator.evaluate(input_fn=predict_test_input_fn)

    training_set_accuracy = train_eval_result["accuracy"]
    test_set_accuracy = test_eval_result["accuracy"]

    return {
      "Training accuracy": training_set_accuracy,
      "Test accuracy": test_set_accuracy
    }

请参阅:初始化一个
hub.Module(…,trainable=True)
对象并调用它两次。

您能提供到目前为止所做工作的代码吗?我已经添加了一些正在处理的代码。我有几个问题:初始的文本嵌入模型会被视为不同的模型而不是相同的权重吗?如何仅保存模型的微调嵌入部分?