Vektörler satır ya da sütun şeklinde (tek boyutlu) oluyor. Yani bunlara "tek boyutlu" dersek, matrisler hem satır hem de sütunlardan oluşuyor. Matrislere de "2 boyutlu" diyebiliriz. Tensörlerde ise bir çeşit 3. boyut var. Yani satır, sütun bir de "kanal" dediğimiz boyut var. Bunlarla işlem yapmak için önce numpy kütüphanesini import ediyoruz. Numpy kullanarak bir skaler (0 boyut) tanımlamak istediğimizde örneğin:
x=np.array(5)
yazıyoruz. Şimdi x, içinde sadece 5 olan bir array. Boyutunu görmek istediğimizde ise
x.ndim
yazıyoruz ve boyutun 0 olduğunu görüyoruz. Vektör tanımlamak için ise:
x=np.array([1,4,-3,2,5])
yazıyoruz. Bunun boyutunu sorduğumuzda da 1 cevabını alıyoruz. Matris tanımlamak için de
örneğin:
A=np.array([[1,2,3],[5,10,0],[1,3,-4]])
yazıyoruz. Bunun boyutunu da 2 olarak veriyor. Şimdi bir de tensör tanımlayalım:
B=np.array([[[1,2,3],[1,2,3],[1,2,3]],[[4,5,6],[4,5,6],[4,5,6]],[[7,8,9],[7,8,9],[7,8,9]]])
Bunun da boyutu 3 oluyor. Aslında hepsinin aynı sayıda elemana sahip olması gerekmiyor. Ama satırlar
bazında aynı olması lazım. Yani, matris içinde matris gibi düşünebiliriz.
Burada görüntüleme kolaylığı dikkatimi çekti. Keras'tan bir veri seti çekelim:
from keras.datasets import mnist
Analadığım kadarıyla bu "mnist" adında, rakamlarla ilgili bir veri kümesi. Verileri
(train_images,train_labels),(test_images,test_labels)=mnist.load_data()
yazarak indiriyoruz (aslında bunu tam anlamadım). Buradaki verilerin bir kısmı eğitim (train)
için, bir kısmı ise test için olsa gerek. Boyut görmek için örneğin:
print(train_images.ndim)
yazdığımızda 3 cevabını veriyor. Demek ki buradaki veriler bir tensör oluşturuyor.Tensörün
büyüklüğünü görmek içinse:
print(train_images.shape)
yazıp çalıştırıyoruz. Buna (60000, 28, 28) cevabını verdi. Demek ki baurada 28x28 boyutunda
60000 tane matris var. Görüntüleme işini daha sonra anlatacağım...
Yorumlar
Yorum Gönder