Как читать данные в Tensorflow?
Я пытаюсь прочитать данные из CSV файлов в tensorflow,
https://www.tensorflow.org/versions/r0.7/how_tos/reading_data/index.html#filenames-shuffling-and-epoch-limits
Пример кода в официальном документе выглядит следующим образом:
col1, col2, col3, col4, col5 = tf.decode_csv(value, record_defaults=record_defaults)
Чтобы прочитать файл, мне нужно знать, сколько столбцов и строк в файле заблаговременно, и если есть 1000 столбцов, мне нужно определить 1000 переменных, таких как col1, col2, col3, col4, col5,..., col1000 ,
, это не похоже на эффективный способ чтения данных.
Мои вопросы
-
Каков наилучший способ чтения CSV файлов в Tensorflow?
-
Есть ли способ читать базу данных (например, mongoDB) в Tensorflow?
Ответы
Ответ 1
-
Вам определенно не нужно определять col1, col2, col1000...
вообще, вы можете делать такие вещи:
columns = tf.decode_csv(value, record_defaults=record_defaults)
features = tf.pack(columns)
do_whatever_you_want_to_play_with_features(features)
-
Я не знаю никаких готовых способов прямого чтения данных из MongoDB. Возможно, вы можете просто написать короткий script для преобразования данных из MongoDB в формате, поддерживаемом Tensorflow, я бы порекомендовал двоичную форму TFRecord
, которая намного быстрее, чем запись csv. Это хорошее сообщение в блоге по этой теме. Или вы можете самостоятельно реализовать индивидуальный считыватель данных, см. официальный документ здесь.
Ответ 2
def func()
return 1,2,3,4
b = func()
print b #(1, 2, 3, 4)
print [num for num in b] # [1, 2, 3, 4]
Привет, он не имеет ничего общего с shadoworflow, его простой python не должен определять 1000 переменных. tf.decode_csv возвращает кортеж.
Не знаю, как работать с базой данных, я думаю, что вы можете использовать python и просто вводить данные в виде массива в тензорный поток.
Надеюсь, что это будет полезно
Ответ 3
конечно, вы можете реализовать прямое чтение данных случайной сортировки случайных данных из mongo для подачи на тензор. ниже мой путь:
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 случайное значение сортировки...
Ответ 4
Есть ли способ прочитать базу данных (например, mongoDB) в Tensorflow?
Попробуйте TFMongoDB, реализованный C++ набор данных для TensorFlow, который позволяет вам подключаться к MongoDB:
pip install tfmongodb
На странице GitHub есть пример того, как читать данные. Смотрите также pypi: TFMongoDB