Ошибка Tensorflow from_tensor_slices () при использовании словаря, содержащего массивы различной длины - PullRequest
0 голосов
/ 29 января 2020

В моем коде словарь фрейма данных используется для создания нового набора данных с функцией "from_tensor_slices ()". Фрейм данных содержит свойство «текст», которое содержит массив массивов. Эти подмассивы содержат закодированный текст, который представлен в виде чисел. Я преобразовал тензоры в следующую строку кода:

dataframe["Text"] = dataframe["Text"].apply(lambda text : tf.convert_to_tensor(text, dtype=tf.float32))

И это создание набора данных:

ds = tf.data.Dataset.from_tensor_slices((dict(dataframe), labels))

Данные dict (dataframe) выглядят так:

19    (tf.Tensor(218.0, shape=(), dtype=float32), tf...
6     (tf.Tensor(237.0, shape=(), dtype=float32), tf...
2     (tf.Tensor(33.0, shape=(), dtype=float32), tf....
25    (tf.Tensor(235.0, shape=(), dtype=float32), tf...
18    (tf.Tensor(20.0, shape=(), dtype=float32), tf....
24    (tf.Tensor(214.0, shape=(), dtype=float32), tf...
17    (tf.Tensor(20.0, shape=(), dtype=float32), tf....
7     (tf.Tensor(6.0, shape=(), dtype=float32), tf.T...
10    (tf.Tensor(317.0, shape=(), dtype=float32), tf...
12    (tf.Tensor(317.0, shape=(), dtype=float32), tf...
8     (tf.Tensor(222.0, shape=(), dtype=float32), tf...
5     (tf.Tensor(220.0, shape=(), dtype=float32), tf...
22    (tf.Tensor(213.0, shape=(), dtype=float32), tf...
9     (tf.Tensor(317.0, shape=(), dtype=float32), tf...
26    (tf.Tensor(211.0, shape=(), dtype=float32), tf...
28    (tf.Tensor(317.0, shape=(), dtype=float32), tf...
20    (tf.Tensor(229.0, shape=(), dtype=float32), tf...
Name: Text, dtype: object, 'Intensity': 3     0.946
19    0.875
6     0.917
2     0.958
25    0.854
18    0.920
24    0.938
17    0.938
7     0.917
10    0.979
12    0.938
8     0.917
5     0.917
22    0.854
9     0.979
26    0.854
28    0.833
20    0.875
Name: Intensity, dtype: float64}

Данные меток выглядят так:

17       fear
22      anger
11       fear
4     sadness
27      anger
19      anger
3     sadness
14       fear
0     sadness
16       fear
7     sadness
25      anger
10       fear
20      anger
26      anger
15       fear
2     sadness
Name: Emotion, dtype: object

Когда я пытаюсь выполнить их, возникает следующая ошибка при попытке создать набор данных:

1     (tf.Tensor(33.0, shape=(), dtype=float32), tf....
23    (tf.Tensor(239.0, shape=(), dtype=float32), tf...
27    (tf.Tensor(240.0, shape=(), dtype=float32), tf...
12    (tf.Tensor(317.0, shape=(), dtype=float32), tf...
25    (tf.Tensor(235.0, shape=(), dtype=float32), tf...
0     (tf.Tensor(238.0, shape=(), dtype=float32), tf...
15    (tf.Tensor(317.0, shape=(), dtype=float32), tf...
8     (tf.Tensor(222.0, shape=(), dtype=float32), tf...
14    (tf.Tensor(127.0, shape=(), dtype=float32), tf...
3     (tf.Tensor(20.0, shape=(), dtype=float32), tf....
16    (tf.Tensor(137.0, shape=(), dtype=float32), tf...
9     (tf.Tensor(317.0, shape=(), dtype=float32), tf...
19    (tf.Tensor(218.0, shape=(), dtype=float32), tf...
6     (tf.Tensor(237.0, shape=(), dtype=float32), tf...
24    (tf.Tensor(214.0, shape=(), dtype=float32), tf...
17    (tf.Tensor(20.0, shape=(), dtype=float32), tf....
2     (tf.Tensor(33.0, shape=(), dtype=float32), tf....
Name: Text, dtype: object with type Series

During handling of the above exception, another exception occurred:

Traceback (most recent call last):

  File "C:\Users\User\AppData\Local\Programs\Python\Python37\lib\site-packages\tensorflow_core\python\framework\ops.py", line 906, in __len__
    raise TypeError("Scalar tensor has no `len()`")

TypeError: Scalar tensor has no 'len()'

Я использую Tensorflow 2.0. Любая идея приветствуется.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...