Wpis z mikrobloga

#siecineuronowe #programowanie #python #ai
Mirki, dlaczego do AI używa się głównie Pythona (a może tak nie jest i tylko powielam mity?). Python do projektów małych, do szuflady jest spoko. Ale nie wyobrażam sobie pisać (i utrzymywać) coś na poważnie. Już nie wspominając, że jest bardzo wolny w porównaniu do innych języków.
Czy chodzi tutaj tylko o to że jest łatwy i bez większej wiedzy z programowania można sobie coś policzyć? To że Python ma pełno bibliotek to wiem, ale czy jest jakiś inny powód niż ten który opisałem dla którego one powstały?

Jako programista #java chciałbym coś porobić w sieciach neuronowych (wyłącznie hobbistyczne) i zastanawiam się czy jest to wielka profanacja robiąc to w Java xD
  • 14
  • Odpowiedz
@Patres: widzę kilka powodów.
- AI jest rozwijane przede wszystkim przez naukowców a nie przez programistów. Python z tzw. scientific stack jest dla nich łatwiejszy do ogarnięcia niż większość innych języków. Większość popularnych języków nie ma tak rozbudowanych tego typu narzędzi.
- Tzw. scientific stack w python jest wzorowane na Matlabie, a Matlab był wzorowany na Fortranie. Natomiast zarówno Matlab jak i Fortran to są narzędzia dobrze znane w środowisku naukowym.
  • Odpowiedz
@Patres: Większość pythonowych bibliotek do MLa i do DS to aplki pisane w C++/C i mają tylko interfejs pythonowy. Pojawiaja się perełki w Rust (biblioteka polars).

I nie. Python nie jest wolny. To stary mit powielany przez ludzi nieznających pythona.
  • Odpowiedz
@Patres: nie tylko do szuflady, nie jest wolny, są duże projekty komerycyjne w pythonie, łatwo sie utrzymuja, wiedza z programowania taka jak w kazdym jezyku praktycznie
  • Odpowiedz
  • 3
@cohontes: Czuję, że to bajt, ale niech będzie xD

nie tylko do szuflady


Nikt tak nie twierdzi: "Python do projektów do szuflady jest spoko" != nie tylko do szuflady

nie jest wolny

Nie wcale, a używanie bibliotek z innych języków (jak C) używa się, żeby spowolnić aplikacje xD Nawet nie mam zamiaru z tym dyskutować, bo wszystkie benchmarki są jednoznaczne (pierwszy link z google - więcej nawet nie chce mi się
  • Odpowiedz
@Patres Bo w Pythonie bardzo szybko tworzy się kod i dochodzi do rezultatów. AI jest taką dziedziną, że tworząc kod trzeba go często zmieniać, testować różne możliwości, itd. więc nie ma czasu na grzebanie się w językach niskopoziomowych.

Poza tym większość obliczeń jest wykonana po stronie GPU więc to czy po stronie CPU użyjesz C++ czy Pythona nie ma znaczenia bo twój kod będzie służył głównie do tego żeby wysłać dane i
  • Odpowiedz
@kamil062: to jest popularny mit, że robiąc AI wykonujesz głównie obliczenia po GPU, więc nie musisz pamiętać o wydajności. Dane zawsze trzeba wstępnie przetworzyć, co się robi na CPU. Często wstępne przetworzenie danych jest bardzo skomplikowane, a gdy jest ich bardzo dużo, to ułomność Pythona daje o sobie znać. Pomijając fakt, że python jest dużo wolniejszy niż wiele innych popularnych języków, to jeszcze ma żenującą wielowątkowość, która niemalże uniemożliwia policzenie czegokolwiek
  • Odpowiedz
@Patres: To jest największa zaleta i największe przekleństwo Pythona jednocześnie. Bardzo łatwo jest w nim wysrać kod który działa, ale to nie znaczy, że to jest dobry kod. Potem trafiasz na takich łepków w robocie, co napisali parę skryptów i mówią, że są conajmniej midami w Pythonie xD Tymczasem Python ma bardzo dużo zaawansowanych konceptów i trzeba poświęcić porównywalną ilość czasu co w innych językach, żeby faktycznie nauczyć się w nim
  • Odpowiedz