Я хочу создать конвейер данных из генератора, который использует кадры данных Pandas, чтобы найти пути к изображениям на диске и загрузить их в конвейер.Tensorflow не позволит мне сделать это, выдав сообщение Can't convert non-rectangular Python sequence to Tensor.
.
Я попытался использовать .values
в аргументе args
при передаче генератора в tf.data.Dataset.from_generator
, но мне пришлось быПерепишите весь код, который я написал, используя кадры данных, чтобы найти пути к нужным изображениям.
Вот команда для создания набора данных:
train_dataset = tf.data.Dataset.from_generator(make_triplet_dataset, (tf.float32, tf.float32, tf.float32), args = ([train_families, train_positive_relations]))
А вот *Генератор 1014 * (который использует кадры данных pandas в качестве аргументов):
`def make_triplet_dataset (family, positive_relations): '' 'Генератор наборов данных, который возвращает случайный якорь, положительные и отрицательные изображения каждый раз, когда он называется' ''в то время как True:
# generates random triplet
anchor, positive, negative = make_triplet(families, positive_relations)
# builds the path for the randomly chosen images
path_anchor_img = 'train/' + anchor + '/' + random.choice(os.listdir('train/' + anchor))
path_positive_img = 'train/' + positive + '/' + random.choice(os.listdir('train/' + positive))
path_negative_img = 'train/' + negative + '/' + random.choice(os.listdir('train/' + negative))
# loads and preprocess the images to be used in the in the algorithm
anchor_img = preprocess_input(cv2.imread(path_anchor_img)) # preprocess does a (img/127.5) - 1 operation
positive_img = preprocess_input(cv2.imread(path_positive_img))
negative_img = preprocess_input(cv2.imread(path_negative_img))
yield (anchor_img, positive_img, negative_img)`
Функция make_triplet
- это вложенная функция, которая использует панды Dataframes для генерации путей к изображениям.Я хочу иметь возможность генерировать набор данных с тензорным потоком с генераторами, которые могут выдавать изображения в триплетах, используя панды Dataframes, чтобы найти пути к этим изображениям и загрузить их в конвейер.Пожалуйста, если кто-то может помочь, это будет оценено.