Patres
#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
1
  • Najlepsze
  • Wszystkie komentarze
arysto2011
@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.
4
heniek_8
@Patres: bo Google wybrało ten język i publikuje interfejsy i biblioteki
Ale do Java też znajdziesz np tensorflow
3
Patres
@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
3
ly000
@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
2
kamil062
kamil062
@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
2
c.....s
c.....s
@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
1
ly000
@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
1
p.....2
p.....2
@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
1
cisza666
@Patres: c++
0
c.....s
c.....s
@Patres: pracjesz jako programista i gadasz takie głupoty xd?
0
Patres
@cohontes uuu xD a co konkretnie xD
0
morsik
morsik
@Patres: Bo Python jest prostym językiem do algorytmowania i prototypowania.
0
c.....s
c.....s
@ly000: a kto przetwarza te dane na jednym CPU?
0
ly000
@cohontes: no właśnie
0