Tensorflow读取和写入BigQuery

时间:2017-04-28 22:02:35

标签: tensorflow google-bigquery

我找不到使用Tensorflow向BigQuery写入数据的示例。到目前为止,我得到了以下内容,

import tensorflow as tf
from google.protobuf import json_format
from tensorflow.contrib.cloud.python.ops.bigquery_reader_ops import BigQueryReader


PROJECT=...
DATASET=...
TABLE=...
TIME=0
NUM_PARTITIONS=5


graph = tf.Graph()
sess  = tf.Session(graph=graph)
with graph.as_default():
    features = {"ts": tf.FixedLenFeature([1], tf.float32),
                "v":  tf.FixedLenFeature([5], tf.float32),
                "m":  tf.FixedLenFeature([2, 3], tf.float32)}

    reader = BigQueryReader(project_id=PROJECT,
                            dataset_id=DATASET,
                            table_id=TABLE,
                            timestamp_millis=TIME,
                            num_partitions=NUM_PARTITIONS,
                            features=features)
    queue = tf.FIFOQueue(100, [tf.float32, tf.float32, tf.float32],
                         shapes=[[1], [5], [2,3]])
    key, value = reader.read(queue)
    enq = queue.enqueue([[1.0], [2.0]*5, [[3.0]*3]*2])
    print "Going to run!"
    sess.run(enq)

我不熟悉读者的语法。虽然这不会给我带来错误,但它也不会将数据插入数据库。

请举例说明如何在Tensorflow中使用BigQuery?

2 个答案:

答案 0 :(得分:2)

您正在使用读取来自Bigquery的数据的BigqueryReader,它不会写入数据,也不存在此类作者。

我假设您想要将数据写入Bigquery表,以便您可以将其读出来进行培训,为什么需要在TensorFlow中完成?我想不出你需要从TensorFlow向Bigquery写入数据的用例。

答案 1 :(得分:0)

现在,您可以将TensorFlow保存的模型直接加载到BigQuery中:

CREATE OR REPLACE MODEL advdata.txtclass_tf
OPTIONS (model_type='tensorflow',
         model_path='gs://cloud-training-demos/txtclass/export/exporter/1549825580/*')

然后调用ML.PREDICT进行预测:

SELECT *
FROM ML.PREDICT(MODEL advdata.txtclass_tf, 
               (SELECT * FROM input_data))

有关详情,请参见本文:https://towardsdatascience.com/how-to-do-batch-predictions-of-tensorflow-models-directly-in-bigquery-ffa843ebdba6