FAILED_PRECONDITION do Google Cloud ML
Estou tentando usar o Google Cloud ML para hospedar um modelo de fluxo de tensão e obter previsões. Eu tenho um modelo pré-treinado que carreguei na nuvem e criei um modelo e uma versão no meu console do Cloud ML.
Eu segui as instruçõesdaqui para preparar meus dados para solicitar previsões online. Tanto para o método Python quanto para oglcoud
método, recebo o mesmo erro. Para simplificar, vou postar ogcloud
método:
eu corrogcloud ml-engine predict --model spell_correction --json-instances test.json
Ondetest.json
é meu arquivo de dados de entrada (uma matriz JSON denominadainstances
) Eu recebo o seguinte resultado:
ERROR: (gcloud.ml-engine.predict) HTTP request failed. Response: {
"error": {
"code": 400,
"message": "Precondition check failed.",
"status": "FAILED_PRECONDITION"
}
}
Como posso obter mais detalhes sobre isso? O mesmo erro exato acontece quando tento via Python e lá tenho umgoogleapiclient.http.HttpRequest
objeto que contém o erro. Eu só quero saber por que esse erro está acontecendo além desse erro genérico. Alguém sabe como obter mais detalhes através do método Python ou do métodogcloud
método? Estou assumindo que, uma vez que é o mesmo erro, é a mesma causa raiz.
Saída degcloud ml-engine models list
:
NAME DEFAULT_VERSION_NAME
spell_correction testing
Saída degcloud ml-engine versions list --model spell_correction
NAME DEPLOYMENT_URI
testing gs://<my-bucket>/output/1/
test.json
: {"instances": [{"tokens": [[9], [4], [11], [9]], "mask": [[18], [7], [12], [30]], "keep_prob": 1.0, "beam": 64}]}
Minhas entradas para o modelo:
tokens
: tf.placeholder(tf.int32, shape=[None, None])
mask
: tf.placeholder(tf.int32, shape=[None, None])
keep_prob
: tf.placeholder(tf.float32)
beam
: tf.placeholder(tf.int32)
Ao chamar via python, orequest_body
é apenastest.json
como uma corda.