#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