Não sei o que estou escrevendo errado no codigo abaixo. Alguém pode me dar um help?!
Não sei o que estou escrevendo errado no codigo abaixo. Alguém pode me dar um help?!
Olá, Natalia, tudo belezinha?
Pelo print, aparentemente está tudo certo com seu código, mas para que eu possa identificar o erro melhor, você poderia mandar um print do erro completo ou colocar o erro aqui, para eu entender melhor a situação?
Analisando parte do print, pode ser que necessite uma atualização do threadpoolctl
, caso seja isso, você pode resolver passando o seguinte comando no terminal:
conda install threadpoolctl
Esse pacote pode estar desatualizado.
De qualquer forma fico no aguardo do erro completo, mas se tiver alguma dúvida, estou por aqui!
Olá Paulo, tudo certo!
Eu fiz a atualização como sugerido mas o erro persiste!
AttributeError Traceback (most recent call last) ~\AppData\Local\Temp/ipykernel_13148/2363751706.py in 1 kmeans_pca = KMeans(n_clusters=5, verbose=True, random_state=SEED) 2 ----> 3 kmeans_pca.fit(projection) 4 5 dados_generos['cluste_pca'] = kmeans_pca.predict(projection)
~\anaconda3\lib\site-packages\sklearn\cluster_kmeans.py in fit(self, X, y, sample_weight) 1413 1414 # run a k-means once -> 1415 labels, inertia, centers, n_iter_ = kmeans_single( 1416 X, 1417 sample_weight,
~\anaconda3\lib\site-packages\sklearn\cluster_kmeans.py in kmeanssingle_lloyd(X, sample_weight, centers_init, max_iter, verbose, x_squared_norms, tol, n_threads) 644 # Threadpoolctl context to limit the number of threads in second level of 645 # nested parallelism (i.e. BLAS) to avoid oversubsciption. --> 646 with threadpool_limits(limits=1, user_api="blas"): 647 for i in range(max_iter): 648 lloyd_iter(
~\anaconda3\lib\site-packages\sklearn\utils\fixes.py in threadpool_limits(limits, user_api) 149 return controller.limit(limits=limits, user_api=user_api) 150 else: --> 151 return threadpoolctl.threadpool_limits(limits=limits, user_api=user_api) 152 153
~\anaconda3\lib\site-packages\threadpoolctl.py in init(self, limits, user_api) 169 self.checkparams(limits, user_api) 170 --> 171 self.originalinfo = self.setthreadpool_limits() 172 173 def enter(self):
~\anaconda3\lib\site-packages\threadpoolctl.py in setthreadpool_limits(self) 266 return None 267 --> 268 modules = ThreadpoolInfo(prefixes=self.prefixes, 269 user_api=self.userapi) 270 for module in modules:
~\anaconda3\lib\site-packages\threadpoolctl.py in init(self, user_api, prefixes, modules) 338 339 self.modules = [] --> 340 self.loadmodules() 341 self.warnif_incompatible_openmp() 342 else:
~\anaconda3\lib\site-packages\threadpoolctl.py in loadmodules(self) 371 self.findmodules_with_dyld() 372 elif sys.platform == "win32": --> 373 self.findmodules_with_enum_process_module_ex() 374 else: 375 self.findmodules_with_dl_iterate_phdr()
~\anaconda3\lib\site-packages\threadpoolctl.py in findmodules_with_enum_process_module_ex(self) 483 484 # Store the module if it is supported and selected --> 485 self.makemodule_from_path(filepath) 486 finally: 487 kernel_32.CloseHandle(h_process)
~\anaconda3\lib\site-packages\threadpoolctl.py in makemodule_from_path(self, filepath) 513 if prefix in self.prefixes or user_api in self.user_api: 514 module_class = globals()[module_class] --> 515 module = module_class(filepath, prefix, user_api, internal_api) 516 self.modules.append(module) 517
~\anaconda3\lib\site-packages\threadpoolctl.py in init(self, filepath, prefix, user_api, internal_api) 604 self.internal_api = internal_api 605 self.dynlib = ctypes.CDLL(filepath, mode=RTLD_NOLOAD) --> 606 self.version = self.get_version() 607 self.num_threads = self.get_num_threads() 608 self.getextra_info()
~\anaconda3\lib\site-packages\threadpoolctl.py in get_version(self) 644 lambda: None) 645 get_config.restype = ctypes.c_char_p --> 646 config = get_config().split() 647 if config[0] == b"OpenBLAS": 648 return config[1].decode("utf-8")
AttributeError: 'NoneType' object has no attribute 'split'
Olá, Natalia!
Com a atualização do threadpoolctl
, esperava ter funcionado. Você pode verificar as versões dos pacotes desse ambiente anaconda e enviar aqui?
Podemos fazer isso executando o seguinte comando no seu notebook:
!conda list
Ou se preferir executar o comando abaixo, para ver somente os pacotes usados no notebook:
import threadpoolctl
import numpy
import sklearn
print('\n'.join(f'{m.__name__}=={m.__version__}' for m in globals().values() if getattr(m, '__version__', None)))
A ideia que o threadpoolctl
esteja na versão 3.1.0 e que o numpy e o sklearn também esteja atualizado
Podemos ter atualizado um outro ambiente ou ter deixado algo passar.
Claro Paulo, segue as versões dos pacotes no ambiente anaconda. O único que não está atualizado é threadpoolctl, eu faço o pip install mas não atualiza a versão.
pandas==1.5.1 seaborn==0.12.1 numpy==1.23.4 threadpoolctl==2.2.0 sklearn==1.1.1
Beleza então, aparentemente mesmo atualizando no terminal o threadpoolctl
não ficou na ultima versão. Então vamos fazer isso acontecer pelo anaconda beleza?
Vamos lá!
1- Abra o terminal e passe o seguinte comando:
conda activate {nome-do-ambiente}
Caso você não saiba o nome do ambiente, você pode abrir o anaconda e ver o nome do mesmo. Ou se preferir, você pode abrir o anaconda e abrir o terminal com já ambiente ativado, desta forma
2- Após isso o terminal do seu ambiente irá abrir, então vamos atualizar o threadpoolctl
para versão atual, passando o seguinte comando:
conda install -c conda-forge threadpoolctl
Agora esperamos que o threadpoolctl
seja atualizado para versão 3.1.0.
Ao finalizar reinicie o kernel do seu notebook e execute novamente, caso o erro persistir, estou por aqui!
Paulo o pacote atualizou e o código funcionou! Mto obrigada pela ajuda!