跑步伯特跑步_小队.py从另一个带有子进程的python脚本

2024-05-21 00:24:50 发布

您现在位置:Python中文网/ 问答频道 /正文

团队

我正在尝试调用Bert模块-run_小队.py来自另一个Python代码。我试图通过导入来调用它,但是我无法使它工作。你知道吗

from bert_serving.client import BertClient
import os
import tensorflow as tf

MODEL_DIR = 'C:/Users/arvin_000/source/repos/BERTtrialproject/env/wwm_uncased_L-24_H-1024_A-16/' #@param {type:"string"}
VOCAB_FILE= 'C:/Users/arvin_000/source/repos/BERTtrialproject/env/wwm_uncased_L-24_H-1024_A-16/vocab.txt'
INIT_CHECKPOINT = 'C:/Users/arvin_000/source/repos/BERTtrialproject/env/wwm_uncased_L-24_H-1024_A-16/bert_model.ckpt'
BERT_CONFIG_FILE= 'C:/Users/arvin_000/source/repos/BERTtrialproject/env/wwm_uncased_L-24_H-1024_A-16/bert_config.json'
SQUAD_TRAIN_FILE= 'C:/Users/arvin_000/source/repos/BERTtrialproject/env/SQUAD/train-v2.0.json'
SQUAD_PREDICT_FILE= 'C:/Users/arvin_000/source/repos/BERTtrialproject/env/SQUAD/dev-v2.0.json'
GRAPH_DIR = 'C:/Users/arvin_000/source/repos/BERTtrialproject/env/wwm_uncased_L-24_H-1024_A-16/content/graph/' #@param {type:"string"}
GRAPH_OUT = 'extractor.pbtxt' #@param {type:"string"}
OUTPUT_DIR = 'C:/Users/arvin_000/source/repos/BERTtrialproject/env/SQUAD'
GPU_MFRAC = 0.2 #@param {type:"string"}

#Technique #1 - this also does not work
# Run the RUN_SQUAD Python file from BERT. Bert has been cloned from its github repository
# # https://github.com/google-research/bert.git
#rather than calling this as sub process, use alternate technique of calling run_squad as function 


import bert
from bert import run_squad
run_squad.main(vocab_file=VOCAB_FILE, bert_config_file=BERT_CONFIG_FILE, init_checkpoint = INIT_CHECKPOINT, do_train=True, train_file= SQUAD_TRAIN_FILE, do_predict=True, predict_file= SQUAD_PREDICT_FILE, train_batch_size=24, learning_rate=3e-5,
         num_train_epochs=2.0, use_tpu=False, max_seq_length=384,doc_stride=128, version_2_with_negative=True, output_dir = OUTPUT_DIR)

The output is:

WARNING:tensorflow:From .\bert\optimization.py:87: The name tf.train.Optimizer is deprecated. Please use tf.compat.v1.train.Optimizer instead.

Traceback (most recent call last): File "", line 2, in TypeError: main() got an unexpected keyword argument 'vocab_file'

#Technique #2 - this also does not work
from bert.run_squad import run_squad
run_squad(vocab_file=VOCAB_FILE, bert_config_file=BERT_CONFIG_FILE, init_checkpoint = INIT_CHECKPOINT, do_train=True, train_file= SQUAD_TRAIN_FILE, do_predict=True, predict_file= SQUAD_PREDICT_FILE, train_batch_size=24, learning_rate=3e-5,
         num_train_epochs=2.0, use_tpu=False, max_seq_length=384,doc_stride=128, version_2_with_negative=True, output_dir = OUTPUT_DIR  )

The output is: Traceback (most recent call last): File "", line 2, in TypeError: 'module' object is not callable

现在,我尝试将此作为子进程运行。你知道吗

import subprocess
from subprocess import *

RUN_SQUAD_PYTHON_SCRIPT = ' run_squad.py' + ' --bert_config_file=' + str(BERT_CONFIG_FILE) 
RUN_SQUAD_PYTHON_SCRIPT += ' --vocab_file=' + str(VOCAB_FILE) + ' --init_checkpoint = '+str(INIT_CHECKPOINT) 
RUN_SQUAD_PYTHON_SCRIPT +=  ' --do_train=True --train_file='+ str(SQUAD_TRAIN_FILE) +' --do_predict=True --predict_file= ' + str(SQUAD_PREDICT_FILE)
RUN_SQUAD_PYTHON_SCRIPT +=  ' --train_batch_size=24 --learning_rate=3e-5 --num_train_epochs=2.0 --use_tpu=False --max_seq_length=384 --doc_stride=128 --version_2_with_negative=True --output_dir = ' + str(OUTPUT_DIR)
process=subprocess.Popen(["python",RUN_SQUAD_PYTHON_SCRIPT],stdout=subprocess.PIPE);
print(process.communicate()[0])
print(process.stdout)

The output is:

print(process.communicate()[0]) b'' print(process.stdout) <_io.BufferedReader name=3>

我不知道我错过了什么?你能给个建议吗?你知道吗

敬礼


Tags: runimportenvtruesourcetrainusersrepos