Np.dot vs np.sum(np.multiply())


#1

bir test yaptim (1,3) yatay vektorler uzerinde ve

np.dot(a, b.T) = np.sum(np.multiply(a, b)) esitligini veriyor. ancak bu islemi 3 hafta odevinde uygulamaya calistigimda hata aliyorum. neden olabilir?

Tesekkurler,
Evrim


#2

np.dot(a, b.T) = np.sum(np.multiply(a, b.T)) olacak şekilde dener misiniz?


#3

np.squeeze fonksiyonunun dönüş tipi ndarray (tek boyuta inndirgenmiş). Ama siz float bekliyorsunuz:
assert(isinstance(cost, float))
np.squeeze fonksiyonu hiç bir zaman float tipinde bir değişken dönmeyecektir. Eğer float tipinde bir değişkene ihtiyacınız varsa np.squeeze yerine np.asscalar fonksiyonunu kullanabilirsiniz.


#4

denedim degisen bir sey olmadi


#6

np.multiply sonrası np sum yaptıktan sonra bu np.dot a eşit olmaz ki
soruyu anlamamışım
np dot dot product verir, multiply elemanları çarpar toplar, farklı yani eşit olmayan skalar değerleri eşitlemeye çalışıyor olabilirsiniz.


#5

denedim, halen hata veriyor


#8

su denemeleri yaptim:

  1. hafta assignment’inda ise logprobs ve cost diye iki deger tanimlatiyor. ilkini multiply ikincisini ise sum ile. En tepedeki aciklama kisminda ise soyle demis:

ben de bunu uygulamaya calistim. hem A2 hem de Y (1, 3) vektor. multiply + sum yapinca oluyor
ama np.dot kullaninca olmuyor


#7

@evrim ve de logprops fonksiyonunuz yanlış kodlanmış.


#9

biliyorum, istenen fonksiyon o degil. ama basit olsun diye, denemek icin yaptim ve olmuyor. onu demek istedim. yoksa multiply ve sum ile birlikte baska fonksiyon kullanmam sonuc almama engel olmuyor. o iki hata vermiyor


#10

    There are many ways to implement the cross-entropy loss. To help you, we give you how we would have implemented $- \sum\limits_{i=0}^{m} y^{(i)}\log(a^{[2](i)})$:

    logprobs = np.multiply(np.log(A2),Y)
    cost = - np.sum(logprobs) 

ile başlıyor ancak bu cevap yeterli değil sizin implementasyonda Y’nin transpose olması da başka etken.


#11

anlayamadim ne demek istediginizi. discord’ta misiniz? oradan cok kisa konussak?


#12

Np.dot vs np.sum(np.multiply()) burada
formülde Y.T yazmışsınız bu da hata verdirebilir.
Ayrıca yaptığınız denemeler sonunda bir cost function hesaplamak anlamlı değil.


#14

@evrim discorddayım, görüntü resmim aynı.


#13

aşağıdaki kaynakta daha açık şekilde anlatıyor ancak kısaca
assert(isinstance(cost[()], float)) veya
bunu kullanıcaksanız squeeze yapmamanız lazım assert(isinstance(cost[0,0], float)) yaparak çalıştırabilirsiniz.Bunun sebebi erayyildizinda belirttigi gibi ndarray dönmesi


#15

ne yazik ki halen ayni hata


#16

boyle calisti. Tesekkurler


#22

@evrim hata değişmiş aslında. önce assertion error alıyordunuz şimdi ValueError almışsınız.


#17

A2 denemelerinizde neye karşılık geliyor?
Y de nedir?


#18

A2 = Yhat
Y de veri zaten, karsilastirma degeri, orjinal deger

Y_assess ve X_assess diye verilmis olan setlerden geliyorlar


#19

Bunun denemelerinizle alakası yok…
Eğer ödev için bulduğunuz sonuç bu ise yanlış, bilginiz olsun, olması gereken değerin hayli uzağında.