У меня есть несколько массивов с разными формами и размерами, и мне нужно превратить все это в один тензор тензорного потока в качестве входных данных для нейронной сети.
Я пытаюсь использовать эту сеть для задачи обучения с подкреплением, и на каждом временном шаге ей нужен один тензор. У меня есть шесть массивов numpy, вот их формы: (26,) (7,) (2,) (7,) (2,) (9,7). Я собрал их все в один массив формы (6,), но когда я пытаюсь создать с ними tf.constant, у меня возникают проблемы.
#here are the numpy arrays
in1_ = np.zeros((26,), dtype='int')
in2_ = np.zeros((7,), dtype='int')
in3_ = np.zeros((2,), dtype='int')
in4_ = np.zeros((7,), dtype='int')
in5_ = np.zeros((2,), dtype='int')
in6_ = np.zeros((9,7), dtype='int')
#in practice the arrays would contain data, not just zeros
final_array = np.array([in1_, in2_, in3_, in4_, in5_, in6_])
final_array.shape
>>>(6,)
#so I can create the big array, but I get an error when creating
#a tf.constant
const = tf.constant(final_array)
>>>TypeError: Expected binary or unicode string, got array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0])
Я знаю, что и тензоры, и числовые массивы должны быть прямоугольными, поэтому я подумал, что преобразование массива в тензор будет простым. Я действительно могу заставить его работать, если я использую строки вместо массивов, но для моих целей было бы лучше этого не делать.