Преобразование 2D-кадра данных в многомерный тензор в Tensorflow (или Tensorly)
Я очень новичок в python и пробую свои силы в методах разложения тензора более высокого измерения. Но сначала мне нужно преобразовать мой фрейм данных из 2D-массива в многомерный тензор, и я как бы застрял в том, как это сделать.
Мой фрейм данных выглядит так:
Subject Cz F7 F8...Pz Diagnosis Test Time
1 # # # # A x 100
1 # # # # A x 200
1 # # # # A y 100
1 # # # # A y 200
2 # # # # B x 100
2 # # # # B x 200
2 # # # # B y 100
2 # # # # B y 200
И я хотел бы преобразовать это в тензор 3-го ранга с помощью:
Dimension 1: Channel (Cz F7 F8...Pz)
Dimension 2: Test (x y)
Dimension 3: Time (100 200)
and also turn Diagnosis into a predictor label
Я не думаю, что смогу просто сделать
label = df.pop('Diagnosis')
из-за способа настройки фрейма данных, верно?
Заранее спасибо!
1 ответ
Легкий и простой способ использовать tf.reshape для преобразования двумерного массива в n-мерный массив.
Пример
import tensorflow as tf
t = [[1, 2],
[4, 5],
[3,4],
[6,7]]
print(tf.shape(t).numpy())
tf.reshape(t, [2, 2, 2])
Выход
[4 2]
<tf.Tensor: shape=(2, 2, 2), dtype=int32, numpy=
array([[[1, 2],
[4, 5]],
[[3, 4],
[6, 7]]], dtype=int32)>