Python 如何将数据读入Tensorflow?

Python 如何将数据读入Tensorflow?,python,mongodb,csv,tensorflow,Python,Mongodb,Csv,Tensorflow,我正在尝试将CSV文件中的数据读取到tensorflow 官方文件中的示例代码如下所示: col1, col2, col3, col4, col5 = tf.decode_csv(value, record_defaults=record_defaults) columns = tf.decode_csv(value, record_defaults=record_defaults) features = tf.pack(columns) do_whatever_you_want_to_p

我正在尝试将CSV文件中的数据读取到tensorflow

官方文件中的示例代码如下所示:

col1, col2, col3, col4, col5 = tf.decode_csv(value, record_defaults=record_defaults)

columns = tf.decode_csv(value, record_defaults=record_defaults)
features = tf.pack(columns)
do_whatever_you_want_to_play_with_features(features)
要读取文件,我需要事先知道文件中有多少列和行,如果有1000列,我需要定义1000个变量,如
col1、col2、col3、col4、col5、…、col1000、
,这看起来不是一种有效的读取数据的方法

我的问题

  • 将CSV文件读入Tensorflow的最佳方式是什么

  • 有没有办法在Tensorflow中读取数据库(比如mongoDB)

  • Hi它与tensorflow无关它的简单python不需要定义1000个变量。tf.decode_csv返回一个元组

    不知道如何处理数据库,我想你可以使用python,将数据以数组的形式输入到tensorflow

    希望这是有帮助的

  • 你肯定不需要定义col1,col2,到col1000

    一般来说,您可能会这样做:

    col1, col2, col3, col4, col5 = tf.decode_csv(value, record_defaults=record_defaults)
    
    
    columns = tf.decode_csv(value, record_defaults=record_defaults)
    features = tf.pack(columns)
    do_whatever_you_want_to_play_with_features(features)
    
  • 我不知道任何现成的直接从MongoDB读取数据的方法。也许您可以编写一个简短的脚本,以Tensorflow支持的格式从MongoDB转换数据,我建议使用二进制格式
    TFRecord
    ,它比csv record读取速度快得多。这是一篇关于这个话题的好博客。或者您可以选择自己实现定制的数据读取器,请参见此处


  • 当然,您可以实现直接从mongo读取批处理随机排序训练数据,以馈送到tensorflow。以下是我的方式:

            for step in range(self.steps):
    
    
                pageNum=1;
                while(True):
                    trainArray,trainLabelsArray = loadBatchTrainDataFromMongo(****)
                    if len(trainArray)==0:
                        logging.info("train datas consume up!")
                        break;
                    logging.info("started to train")
                    sess.run([model.train_op],
                             feed_dict={self.input: trainArray,
                                        self.output: np.asarray(trainLabelsArray),
                                        self.keep_prob: params['dropout_rate']})
    
                    pageNum=pageNum+1;
    
    您还需要在mongodb中预处理训练数据,例如:为mongodb中的每个训练数据分配一个随机排序值

    有没有办法在Tensorflow中读取数据库(比如mongoDB)

    < P>尝试一个C++实现的数据流OP,用于TysOracle,允许您连接到MunGdB:< /P>
    pip install tfmongodb
    
    GitHub页面上有一个关于如何读取数据的示例。另见