Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

sklearn.manifold.TSNE TypeError: ufunc 'multiply' did not contain a loop with signature matching types (dtype('<U32'), dtype('<U32'))...)

I have run the sklearn.manifold.TSNE example code from the sklearn documentation, but I got the error described in the questions' title.

I have already tried updating my sklearn version to the latest one (by !pip install -U scikit-learn) (scikit-learn=1.0.1). However, the problem is still there.

Does anyone know how to fix it?

  • python = 3.7.12
  • sklearn= 1.0.1

Example code:

import numpy as np
from sklearn.manifold import TSNE
X = np.array([[0, 0, 0], [0, 1, 1], [1, 0, 1], [1, 1, 1]])
X_embedded = TSNE(n_components=2, learning_rate='auto',
              init='random').fit_transform(X)
X_embedded.shape

The error line happened in:

X_embedded = TSNE(n_components=2, learning_rate='auto',
              init='random').fit_transform(X)

Error message:

UFuncTypeError: ufunc 'multiply' did not contain a loop with signature matching types (dtype('<U32'), dtype('<U32')) -> dtype('<U32')
like image 932
wen Avatar asked Sep 08 '25 09:09

wen


2 Answers

Delete learning_rate='auto' solved my problem.

Thanks @FlaviaGiammarino comment!!

like image 68
wen Avatar answered Sep 10 '25 04:09

wen


The solution is to update your version of scikit-learn:

pip install -U scikit-learn

In scikit-learn=1.2.2 this issue is resolved. Hope it helps.

like image 35
ismorphism Avatar answered Sep 10 '25 04:09

ismorphism