tf.io.serialize_tensor превышает объем памяти, потому что тензор слишком велик, как изменить мой код с минимальными нарушениями?

#python #numpy #tensorflow #deep-learning #neural-network

Вопрос:

Я новичок в tensorflow, и мне поручено реструктурировать базу кода для работы с другим набором данных.

Как таковой, я еще не полностью понимаю весь код и хотел бы принципиально не менять то, как он работает.

В самом начале я создаю набор данных, и в рамках этого процесса у меня есть эта строка кода:

 feature_list = {  #PROBLEM DEBUG HERE #  'position': _bytes_feature(tf.io.serialize_tensor(positions, tf.float64)),  #PROBLEM DEBUG HERE #  }  

Проблема в том, что positions тензор слишком велик. Это превышает некоторый жестко заданный лимит в 2 ГБ.

Есть ли способ переписать это, чтобы выполнять преобразование пакетами, не изменяя остальную часть кода за пределами этих трех строк?

Я знаю, что могу использовать tf.split для разделения positions , но тогда я не уверен, как объединить конечный результат, чтобы получить эквивалент того, что вычисляется здесь.

Я использую Tensorflow 1.15.