Загрузчик данных Tensorflow из базы данных

#python #database #tensorflow

Вопрос:

Мой источник данных-a postgresql database . У меня есть несколько таблиц для извлечения данных, и я извлекаю данные в течение фиксированного интервала времени. Раньше я мало работал с нейронными сетями с Tensorflow, раньше я в основном использовал Pytorch, и это также мой первый раз, когда я использую базу данных вместо чтения полного набора данных в память.

Мне интересно, как должен выглядеть общий конвейер для загрузки этих данных.

Я создал API для запроса данных из базы данных и преобразования их в 2 кадра данных, которые я намерен превратить в тензоры. Вот набросок того, как будет выглядеть мой конвейер, если не будет лучшего способа сделать это.

 batchsize = 4
interval = 60
n_batches = 10000
table_names = ['g1','g2','g3',...]
valid_time_starts = np.uniform(0,10)
model = init_model()

Xs = []
ys = []
for _ in range(n_batches):
   tables = np.random.select(table_names, batchsize)
   start_times = valid_time_starts(batch_size)
   for i, (time, tablename) in enumerate(zip(tables, start_times)):
       X, y = myFetchAPI(tablename, time, time interval)
       X, y = tensorfy(X,y)
       Xs[i] = X
       ys[i] = y
   b_X, b_y = tf.concat(Xs), tf.concat(y)
   train(model, b_X, b_y)
 

И train провел бы одну итерацию обучения.

Я нашел эту документацию, но не похоже, что она сможет обрабатывать изменение имен таблиц и интервалов, и для преобразования запроса в правильную структуру данных требуется приличный объем обработки. (Можно было бы вдаваться в подробности, если это имеет значение.)

Есть ли более разумный способ, которым я могу это сделать (в идеале параллельно с ленивой загрузкой), или другие решения не намного лучше этого?

Комментарии:

1. Учебник Tensorflow по чтению базы данных POSTGRESQL из Tensorflow io tensorflow.org/io/tutorials/postgresql