Differences

This shows you the differences between two versions of the page.

Link to this comparison view

ps:labs_python_gpt:01 [2025/09/22 15:12]
andrei.gavriliu
ps:labs_python_gpt:01 [2025/10/02 20:16] (current)
andrei.gavriliu
Line 7: Line 7:
 <note important>​Vom folosi versiunea **[[https://​www.python.org/​downloads/​ | Python 3.11]]**</​note>​ <note important>​Vom folosi versiunea **[[https://​www.python.org/​downloads/​ | Python 3.11]]**</​note>​
  
- +Reguli de utilizare a modelelor de AI la laborator și la temă: 
- +  * Studenții **nu pot** folosi ​ChatGPT, Gemini, Copilot etc pentru rezolvarea integrală a laboratorului ​sau a temei 
-De asemenea, încurajăm folosirea ​modelelor de AI precum ​ChatGPT, ​Google ​Gemini sau GitHub ​Copilot, ​dar într-un mod constructiv rezolvării laboratoarelor. Utilizarea lor eficientă își dorește să ofere studentului ​părți din soluție sau ideiatunci când acesta se află în impas și nu soluția completă a laboratorului.+  * Studenții **pot** folosi ChatGPT, Gemini, ​Copilot ​etc pentru generarea de bucăți de codfuncții, sub-task-uri, adică doar părți din problemănu problema integral 
 +  * Studenții trebuie să înțeleagă soluțiile oferite de modelele de AI și să le explice asistentului de laborator, în caz contrar laboratorul fiind notat cu 0 
 +  * Studenții trebuie să fie asumați în utilizarea modelelor precum ChatGPT, Gemini, Copilot etc
  
 <note tip>​**Task:​** Generați și afișati o sinusoidă de frecvență 1 Hz peste 1 secundă.</​note>​ <note tip>​**Task:​** Generați și afișati o sinusoidă de frecvență 1 Hz peste 1 secundă.</​note>​
  
-<note warning>​**Exemplul unui prompt ​pentru o abordare ineficientă:**+<note warning>​**Exemplul unui prompt ​pe care nu îl recomandăm în rezolvarea task-ului:**
   * Generați și afișati o sinusoidă de frecvență 1 Hz peste 1 secundă.   * Generați și afișati o sinusoidă de frecvență 1 Hz peste 1 secundă.
 </​note>​ </​note>​
  
-<note tip>​**Exemplul ​unui prompt ​pentru ​o abordare eficientă:**  +<note tip>​**Exemplul ​unor prompturi pe care le recomandăm ​pentru ​înțelegerea și rezolvarea task-ului:** 
-  * Cum poți defini frecvența?,​ De ce este relevantă pentru o sinusoidă?+
   * Ce funcție din Python pot folosi pentru a genera o sinusoidă?   * Ce funcție din Python pot folosi pentru a genera o sinusoidă?
   * Ce argumente primește?   * Ce argumente primește?
Line 33: Line 34:
   * afișați c   * afișați c
   * afișați a*b   * afișați a*b
-  * afișați a/b apoi a '/'/' ​b+  * afișați a/b apoi a%%//%%b
   * <​nowiki>​afișați (a**b)</​nowiki>​   * <​nowiki>​afișați (a**b)</​nowiki>​
  
-Pentru procesarea semnalelor ne vom folosi de bibliotecile **scipy** și **numpy**. ​Aceastea ​ne vor ajuta să aplicăm o mulțime de operații matematice vectoriale. Putem defini elementele pe care le folosim cel mai des, precum vectorii și matricele, folosindu-ne de aceaste ​biblioteci.+Pentru procesarea semnalelor ne vom folosi de bibliotecile **scipy** și **numpy**. ​Acestea ​ne vor ajuta să aplicăm o mulțime de operații matematice vectoriale. Putem defini elementele pe care le folosim cel mai des, precum vectorii și matricele, folosindu-ne de aceste ​biblioteci.
 <​note>​Va trebui să importați bibliotecile de care aveți nevoie pentru a le folosi <​note>​Va trebui să importați bibliotecile de care aveți nevoie pentru a le folosi
   import numpy as np   import numpy as np
Line 78: Line 79:
  
   * Transpuneți matricea pe care ați creat-o mai devreme.   * Transpuneți matricea pe care ați creat-o mai devreme.
-  * Creați un vector coloană cu elemente de unu, ca la al doilea exercițiu ​și modificând parametrul shape cu un număr de elemente mai mare decât unu pentru prima dimensiune. Printați acest vector.+  * Creați un vector coloană cu elemente de unu, ca la al doilea exercițiumodificând parametrul shape cu un număr de elemente mai mare decât unu pentru prima dimensiune. Printați acest vector.
   * Acum transpuneți acest vector și printați-l din nou. Care este diferența dintre afișări?   * Acum transpuneți acest vector și printați-l din nou. Care este diferența dintre afișări?
  
Line 138: Line 139:
 Ar trebui să obțineți ceva de genul: Ar trebui să obțineți ceva de genul:
 {{:​ps:​labs:​sine2.png?​direct&​200|Figura 2}} {{:​ps:​labs:​sine2.png?​direct&​200|Figura 2}}
 +
 +După rezolvarea task-ului, încercați să confuzați cumva modelul de AI pentru a oferi un răspuns greșit.
 +
 +<note tip> Hint: Modificați cumva graficul obținut la exercițiul precedent sau cel de la exercițiul curent pentru ca mai apoi modelul să ofere un răspuns greșit. (ex. culori, titlu, axe, grid etc)  </​note>​
  
 9. O aplicație ușoară 9. O aplicație ușoară
Line 151: Line 156:
   * scădeți cumva matricele de zgomot   * scădeți cumva matricele de zgomot
   * afișați imaginea după ce ați eliminat zgomotul   * afișați imaginea după ce ați eliminat zgomotul
 +<​note>​
 Rețineți că o matrice imagine conține numai valori de la 0 la 255. Rețineți că o matrice imagine conține numai valori de la 0 la 255.
 +</​note>​
 +10. Înmulțire de matrici
  
-10. Row-major+Task-ul vostru va fi să construiți 2 matrici cu elemente random de dimensiune identică 3x3 și să folosiți cei trei operatori:​ 
 +  * Generați și afișați matricele 
 +  * Înmulțiți matricele element cu element apoi afișați rezultatul 
 +  * Înmulțiți matricele matematic folosind funcția corespunzătoare din numpy apoi afișați rezultatul 
 +  * Înmulțiți matricele matematic folosind operatorul specific apoi afișați rezultatul 
 + 
 +11. Procesarea unui sunet 
 + 
 +Pentru acest exercițiu, task-ul vostru va fi să citiți și să afișați grafic semnalul cu zgomot ({{:​ps:​labs_python:​lab1_noisy_sound.zip|click aici}}) 
 + 
 +  * Folosiți funcția load pentru a încărca semnalul 
 +  * Extrageți informații despre semnal, folosind indexarea 
 + 
 +<​note>​ Indexarea datelor din semnal 
 +  noisy_signal = npz['​noisy_sound'​] 
 +  fs = noisy_signal.shape[0] 
 +</​note>​ 
 + 
 +  * Afișați grafic semnalul asemenea sinusoidelor 
 +  * Afișați frecvența de eșantionare (fs) și lungimea semnalului. Ce observați?​ 
 + 
 + 
 +12. Row-major
  
 În numpy se foloseste convenția de row-major, deci este indicat să se parcurgă întâi dimensiunea cea mai din dreapta (în cazul matricelor, dimensiunea liniilor). De asemenea, mereu când este posibil, este indicat să se folosească operații vectoriale. În numpy se foloseste convenția de row-major, deci este indicat să se parcurgă întâi dimensiunea cea mai din dreapta (în cazul matricelor, dimensiunea liniilor). De asemenea, mereu când este posibil, este indicat să se folosească operații vectoriale.
 +
 +<note important>​
 +În mod default operatorul '​*'​ va face înmulțire element cu element.
 +Pentru înmulțire de matrici trebuie să folosim funcția '​numpy.dot'​ sau operatorul '​@'​.
 +</​note>​
  
 <code python> <code python>
Line 188: Line 222:
 print(f'​Timp matrix operation: {time_matrix_operation} s') print(f'​Timp matrix operation: {time_matrix_operation} s')
 </​code>​ </​code>​
- 
-11. Înmulțire de matrici 
- 
-<note important>​ 
-În mod default operatorul '​*'​ va face înmulțire element cu element. 
-Pentru înmulțire de matrici trebuie să folosim funcția '​numpy.dot'​ sau operatorul '​@'​. 
-</​note>​ 
- 
-Task-ul vostru va fi să construiți 2 matrici cu elemente random de dimensiune identică 3x3 șo să folosiți cei trei operatori: 
-  * Generați și afișați matricele 
-  * Înmulțiți matricele element cu element apoi afișați rezultatul 
-  * Înmulțiți matricele matematic folosind funcția corespunzătoare din numpy apoi afișați rezultatul 
-  * Înmulțiți matricele matematic folosind operatorul specific apoi afișați rezultatul 
ps/labs_python_gpt/01.1758543139.txt.gz · Last modified: 2025/09/22 15:12 by andrei.gavriliu
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0