Python "module 'numpy' has no attribute 'int'"

Başlatan Mucit23, 26 Temmuz 2024, 23:30:53

Mucit23

Selamlar

Pythonda deepface yüz değiştirme ile ilgili biraz uğraştım. İnternette birçok video var kurulum ile ilgili. Bende az çok python bilgimle videolar yardımıyla deepfacelive kütüphanesini kurdum. Fakat numpy de bir uyumsuzluk sorunu yaşıyorum.

Uygulama çalışıyor fakat uygulama üzerinde kamera gibi herhangi bir fonksiyonu yaşadığımda aşağıdaki hatayı alıyorum
CameraSource error: module 'numpy' has no attribute 'int'.
`np.int` was a deprecated alias for the builtin `int`. To avoid this error in existing code, use `int` by itself. Doing this will not modify any behavior and is safe. When replacing `np.int`, you may wish to use e.g. `np.int64` or `np.int32` to specify the precision. If you wish to review your current use, check the release note link for additional information.
The aliases was originally deprecated in NumPy 1.20; for more details and guidance see the original release note at:
    https://numpy.org/devdocs/release/1.20.0-notes.html#deprecations Traceback (most recent call last):
  File "C:\DeepFace\DeepFaceLive-master\xlib\mp\csw\CSWBase.py", line 472, in _start_proc
    self.on_start(*worker_start_args, **worker_start_kwargs)
  File "C:\DeepFace\DeepFaceLive-master\apps\DeepFaceLive\backend\CameraSource.py", line 142, in on_start
    cs.fps.set_number(state.fps if state.fps is not None else 0)
  File "C:\DeepFace\DeepFaceLive-master\xlib\mp\csw\Number.py", line 44, in set_number
    if self._set_number(number, block_event=block_event):
       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\DeepFace\DeepFaceLive-master\xlib\mp\csw\Number.py", line 21, in _set_number
    if isinstance(number, (int, np.int, np.int8, np.int16, np.int32, np.int64)):
                                ^^^^^^
  File "C:\Users\ferha\anaconda3\Lib\site-packages\numpy\__init__.py", line 324, in __getattr__
    raise AttributeError(__former_attrs__[attr])
AttributeError: module 'numpy' has no attribute 'int'.
`np.int` was a deprecated alias for the builtin `int`. To avoid this error in existing code, use `int` by itself. Doing this will not modify any behavior and is safe. When replacing `np.int`, you may wish to use e.g. `np.int64` or `np.int32` to specify the precision. If you wish to review your current use, check the release note link for additional information.
The aliases was originally deprecated in NumPy 1.20; for more details and guidance see the original release note at:
    https://numpy.org/devdocs/release/1.20.0-notes.html#deprecations. Did you mean: 'inf'?


AttributeError hatası alıyorum. Kimisi versiyon ile ilgili diyor. Şuanda numpy versiyonu 1.26.4. Versiyon değiştirmeyi denedim ama program çalışmaz oldu. Baştan kurulum yaptım.

Bu hatayı nasıl çözerim bilgisi olan var mı?

elektronikhobi

Kaynak kodunda numpy.int satırlarını numpy.int_ ya da sadece int olarak değiştirmeyi deneyiniz.

Mucit23

#2
@elektronikhobi yaptım. Buradaki arkadaş da aynı sorunu yaşamış.

Burada anlatmış. Aynı sorun. Videodaki arkadaş gibi yaptım.

11:40 dan itibaren anlatıyor

Fakat bu seferde float ile ilgili uyumsuzluk sorunu yaşıyorum.

(base) C:\Windows\System32>cd C:\DeepFace\DeepFaceLive-master

(base) C:\DeepFace\DeepFaceLive-master>phyton main.py run DeepFaceLive --userdata-dir C:\DeepFace\DeepFaceLive-master
'phyton' is not recognized as an internal or external command,
operable program or batch file.

(base) C:\DeepFace\DeepFaceLive-master>python main.py run DeepFaceLive --userdata-dir C:\DeepFace\DeepFaceLive-master
Running DeepFaceLive.
FaceSwapInsight error: module 'numpy' has no attribute 'float'.
`np.float` was a deprecated alias for the builtin `float`. To avoid this error in existing code, use `float` by itself. Doing this will not modify any behavior and is safe. If you specifically wanted the numpy scalar type, use `np.float64` here.
The aliases was originally deprecated in NumPy 1.20; for more details and guidance see the original release note at:
    https://numpy.org/devdocs/release/1.20.0-notes.html#deprecations Traceback (most recent call last):
  File "C:\DeepFace\DeepFaceLive-master\xlib\mp\csw\CSWBase.py", line 472, in _start_proc
    self.on_start(*worker_start_args, **worker_start_kwargs)
  File "C:\DeepFace\DeepFaceLive-master\apps\DeepFaceLive\backend\FaceSwapInsight.py", line 66, in on_start
    cs.device.select(state.device)
  File "C:\DeepFace\DeepFaceLive-master\xlib\mp\csw\DynamicSingleSwitch.py", line 99, in select
    result = self._set_selected_idx(idx_or_choice)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\DeepFace\DeepFaceLive-master\xlib\mp\csw\DynamicSingleSwitch.py", line 33, in _set_selected_idx
    self._on_selected_evl.call(selected_idx, self.get_selected_choice() )
  File "C:\DeepFace\DeepFaceLive-master\xlib\python\EventListener.py", line 24, in call
    func(*args, **kwargs)
  File "C:\DeepFace\DeepFaceLive-master\apps\DeepFaceLive\backend\FaceSwapInsight.py", line 90, in on_cs_device
    cs.adjust_c.set_number(adjust_c)
  File "C:\DeepFace\DeepFaceLive-master\xlib\mp\csw\Number.py", line 44, in set_number
    if self._set_number(number, block_event=block_event):
       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\DeepFace\DeepFaceLive-master\xlib\mp\csw\Number.py", line 23, in _set_number
    elif isinstance(number, (float, np.float, np.float16, np.float32, np.float64)):
                                    ^^^^^^^^
  File "C:\Users\ferha\anaconda3\Lib\site-packages\numpy\__init__.py", line 324, in __getattr__
    raise AttributeError(__former_attrs__[attr])
AttributeError: module 'numpy' has no attribute 'float'.
`np.float` was a deprecated alias for the builtin `float`. To avoid this error in existing code, use `float` by itself. Doing this will not modify any behavior and is safe. If you specifically wanted the numpy scalar type, use `np.float64` here.
The aliases was originally deprecated in NumPy 1.20; for more details and guidance see the original release note at:
    https://numpy.org/devdocs/release/1.20.0-notes.html#deprecations. Did you mean: 'cfloat'?

Bu aldığım hatadaki sorunu düzeltmek için neler yapmalıyım. Sorun yaşanan fonksiyonlar gösterilmiş ama hatayı çok da okuyamadım.

elektronikhobi

Başındaki np. ile başlayan bölümü kaldırıp, örneğin np.float yerine sadece float gelecek şekilde değiştirebilirsiniz.

np.float = float
np.int = int  # int hatası
np.object = object    # object hatası
np.bool = bool

Mucit23

Hocam bu tanımlamaları Number.py dosyası içerisinde tanımlamam yeterli mi? Genel bir uyumsuzluk var gibi.

elektronikhobi

Hata veren tüm kütüklerde düzeltmeyi deneyebilirsiniz.

Ancak bu yol zahmetli olabilir.

Bunun yerine kullandığınız işletim sistemi için Python çalışma ortamı oluşturmayı deneyebilirsiniz.


Mucit23

Hocam anaconda ortamı bunu sağlamıyor mu? Şuan bilgisayarımda anaconda kurulu.

Fakat ben Number.py dosyasında np.float bulunan yerleri kaldırdım. Fakat hala eksikler var. Programı çalıştırdığımda örneğin kamerayı açtığımda program donup kapatılıyor. Ve aşağıdaki hatayı alıyorum.

(base) C:\DeepFace\DeepFaceLive-master>python main.py run DeepFaceLive --userdata-dir C:\DeepFace\DeepFaceLive-master
Running DeepFaceLive.
Traceback (most recent call last):
  File "C:\DeepFace\DeepFaceLive-master\xlib\qt\widgets\QXFixedLayeredImages.py", line 70, in paintEvent
    rect = QRect(0, h_half-ph_fit/2, w, ph_fit )
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: arguments did not match any overloaded call:
  QRect(): too many arguments
  QRect(aleft: int, atop: int, awidth: int, aheight: int): argument 2 has unexpected type 'float'
  QRect(atopLeft: QPoint, abottomRight: QPoint): argument 1 has unexpected type 'int'
  QRect(atopLeft: QPoint, asize: QSize): argument 1 has unexpected type 'int'
  QRect(a0: QRect): argument 1 has unexpected type 'int'

(base) C:\DeepFace\DeepFaceLive-master>Process Process-5:
Traceback (most recent call last):
  File "C:\Users\ferha\anaconda3\Lib\multiprocessing\process.py", line 314, in _bootstrap
    self.run()
  File "C:\Users\ferha\anaconda3\Lib\multiprocessing\process.py", line 108, in run
    self._target(*self._args, **self._kwargs)
  File "C:\DeepFace\DeepFaceLive-master\xlib\mp\csw\CSWBase.py", line 491, in _start_proc
    self.send_msg('_stop', error=error, restart=self._req_restart)
  File "C:\DeepFace\DeepFaceLive-master\xlib\mp\csw\CSWBase.py", line 433, in send_msg
    def send_msg(self, name, *args, **kwargs): self._pmpi.send_msg(name, *args, **kwargs)
                                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\DeepFace\DeepFaceLive-master\xlib\mp\PMPI.py", line 34, in send_msg
    self.pipe.send( (name, args, kwargs) )
  File "C:\Users\ferha\anaconda3\Lib\multiprocessing\connection.py", line 206, in send
    self._send_bytes(_ForkingPickler.dumps(obj))
  File "C:\Users\ferha\anaconda3\Lib\multiprocessing\connection.py", line 289, in _send_bytes
    ov, err = _winapi.WriteFile(self._handle, buf, overlapped=True)
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
BrokenPipeError: [WinError 232] Boru kapatılıyor

Hocam numpy sürümüyle alakalı anladığım kadarıyla. Güncel sürümlerde sorun oluyor. Uyumlu olan sürümü yüklesek olmaz mı acaba? Hangi sürümden sonra bu sorun oluşuyor onuda bilmiyorum.

elektronikhobi

Seçili hata iletisinde işleve geçtiğiniz argümanların uyumlu olmadığını söylüyor.

h_half-ph_fit/2 yerine int(h_half-ph_fit/2) kullanmayı deneyebilirsiniz.

ArcoLinux kullanıyoruz.

Anaconda'yı bilmiyoruz.

Üstteki iletide anlatıldığı gibi Python çalışma ortamı kurmayı deneyebilirsiniz.

Mucit23

Hocam deneyeyim ama sürekli başka sorunlar oluşuyor. Numpy sürümünü değiştirmeyi deneyeceğim.

Ben windows ortamında çalışıyorum. Linüx sıkıntı benim için.


elektronikhobi

Linux kurmanıza gerek yok.

Python öğrenen birisinin ilk öğrenmesi gereken konulardan bir tanesi çalışma ortamı kurulumudur.

Elle bağımlılıklarla uğraşmak yerine çalışma ortamı virtualenv tam olarak bunu yapıyor.

Örneğin çalıştırma ortamı oluşturduktan sonra

pip install -r requirements.txt

ile tüm paket bağımlılıklarını yükleyebilirsiniz.

Konuyu basitleştirmek için :


Mucit23

@elektronikhobi hocam birkaç gündür il dışındaydım yazamadım.

Anladığım kadarıyla temelde aynı kütüphaneyi kullanan bir çok derlenmiş farklı kütüphaneler çalışma ortamları var deepface için. Ben phyton ile sorun yaşayınca alternatif baktım aslında

deepfacelab ile devam ettim. Arayüzü olduğu için aslında nispeten daha kolay birde örnek bir kurulum videosu buldum. Bu arkadaş adım adım anlatmış. Ara ara vakit buldukça bakıyorum.


Deepfake de öğrenme mevzusu olduğunu yeni öğrendim. Bunu anlamaya çalışıyorum. Burada yapmış olan birçok uygulamada iki farklı videodan yüz fotoğrafları alınıyor. Fotoğraflar buradan seçiliyor. Anlamadığım öğrenme aşamasında harici fotoğraflar sisteme eklenebilir mi? Montajı yapılacak olan yüzün sadece birkaç fotosu elimizde var ise bu fotoğraflar ile sistemi eğitebiliyor muyuz.

Birde ciddi Ekran kartı istiyormuş

elektronikhobi

Selam.

Bu konuda bilgim yok.

Yüz tanıma teknolojisinden hoşlanmıyoruz.

Neden?

"Yetkililer, yüz tanıma teknolojisini kullanarak, kişilerin rızası olmadan onları tanımlayabilir ve takip edebilirler. Bu da hükümet gözetiminin artmasına yol açacak ve böylece kişisel gizlilik hakları aşınacaktır."

"Kişiye özgü davranışsal ve fiziksel verilerin toplanması ve kullanımı da bireysel mahremiyet ve güvenlik için bir tehdittir."

Sadece bir Python kütüphanesi olarak düşünürsek yukarıda çalışma ortamı kurulumunu anlattık.

Ticari bir uygulama geliştirmeyi düşünüyorsanız bir yazılım mühendisi ya da programcıdan yardım alabilirsiniz.

Mucit23

Haklısınız hocam. Bende sadece bunu bir Python kütüphanesi olarak soruyorum. Kütüphanenin çalışmasını anladım sayılır. Sadece eğitim mevzusu aklıma takıldı. Burada tek bir fotoğraf ile eğitme ile atıyorum 10 farklı fotoğraf ile eğitmenin farkı nasıl öğrenmeye çalışıyorum.