{"id":2256,"date":"2025-08-01T23:00:25","date_gmt":"2025-08-01T23:00:25","guid":{"rendered":"https:\/\/berenkudaygorun.com\/blog\/?p=2256"},"modified":"2025-08-05T17:47:20","modified_gmt":"2025-08-05T17:47:20","slug":"python-ile-derin-ogrenme-4-derin-ogrenmenin-temelleri","status":"publish","type":"post","link":"https:\/\/berenkudaygorun.com\/blog\/blog\/2025\/08\/01\/python-ile-derin-ogrenme-4-derin-ogrenmenin-temelleri\/","title":{"rendered":"Python \u0130le Derin \u00d6\u011frenme #4 \u2013 Derin \u00d6\u011frenmenin Temelleri"},"content":{"rendered":"<blockquote>\n<p>Ben ne diye beni yoktan yaratana ibadet etmeyecekmi\u015fim ki! (Oysa) hepiniz yaln\u0131zca O\u2019na d\u00f6nd\u00fcr\u00fcleceksiniz.<br \/>\nYasin 22<\/p>\n<\/blockquote>\n<h1>Giri\u015f<\/h1>\n<p>Bu yaz\u0131da Model s\u0131n\u0131f\u0131n\u0131n i\u00e7erisine biraz daha ayr\u0131nt\u0131l\u0131 girmeye \u00e7al\u0131\u015faca\u011f\u0131m ve daha \u00f6ncesinde yazm\u0131\u015f oldu\u011fumuz \u00f6rnek kodu daha ayr\u0131nt\u0131l\u0131 bir \u015fekilde anlamay\u0131 deneyece\u011fiz. \u00d6ncelikle belirtmeliyim ki, okudu\u011fum kitaba biraz ara verip BTK Akademiden bir e\u011fitim serisini takip ediyorum k\u0131sa s\u00fcrede burada neler varm\u0131\u015f diye inceleyeip daha sonras\u0131nda kitaba geri d\u00f6nece\u011fim. E\u011fitim serisinde de <a href=\"https:\/\/keras.io\/api\/models\/\">https:\/\/keras.io\/api\/models\/<\/a> gibi keras'\u0131n asl\u0131nda resmi kaynaklar\u0131na \u00e7ok fazla bak\u0131ld\u0131\u011f\u0131n\u0131 farkettim. Bende bundan dolay\u0131 Models'i buradaki anlat\u0131m\u0131 referans alarak anlatmaya \u00e7al\u0131\u015faca\u011f\u0131m. Hadi ba\u015flayal\u0131m.<\/p>\n<h1>Keras'ta Model nedir?<\/h1>\n<p>Keras, derin \u00f6\u011frenme modelleri olu\u015fturmak i\u00e7in kullan\u0131lan bir k\u00fct\u00fcphanedir. Bu k\u00fct\u00fcphanenin kalbinde ise Model s\u0131n\u0131f\u0131 yer al\u0131r. Model s\u0131n\u0131f\u0131, en basit ifadeyle, sinir a\u011f\u0131n\u0131z\u0131 olu\u015fturan katmanlar\u0131 bir araya getiren bir yap\u0131d\u0131r. Bir pastan\u0131n farkl\u0131 katmanlar\u0131n\u0131 d\u00fc\u015f\u00fcn\u00fcn; kek, krema, \u00e7ikolata sosu... Bu katmanlar\u0131n hepsini bir araya getirip bir b\u00fct\u00fcn haline getirdi\u011finizde, ortaya pasta \u00e7\u0131kar. Keras'taki Model de aynen bu \u015fekilde \u00e7al\u0131\u015f\u0131r. Giri\u015f verisini al\u0131p, bu katmanlardan s\u0131rayla ge\u00e7irerek bir \u00e7\u0131kt\u0131 \u00fcretir.<\/p>\n<p>Model s\u0131n\u0131f\u0131n\u0131n ne i\u015fe yarad\u0131\u011f\u0131n\u0131 daha iyi anlamak i\u00e7in \u00fc\u00e7 temel i\u015flevini inceleyelim:<\/p>\n<ul>\n<li>\n<p>Katmanlar\u0131 Birle\u015ftirme: Bir sinir a\u011f\u0131n\u0131n her bir a\u015famas\u0131 bir katman olarak adland\u0131r\u0131l\u0131r. \u00d6rne\u011fin, ilk katman veriyi al\u0131r, ikinci katman bu veriyi i\u015fler, \u00fc\u00e7\u00fcnc\u00fc katman ba\u015fka bir i\u015flem yapar ve en son katman sonucu verir. Model, bu katmanlar\u0131 do\u011fru s\u0131rada birle\u015ftirerek karma\u015f\u0131k bir i\u015flem zinciri olu\u015fturur.<\/p>\n<\/li>\n<li>\n<p>E\u011fitim ve Tahmin: Model nesnesi, sinir a\u011f\u0131n\u0131z\u0131 e\u011fitmek (makineye \u00f6\u011frenmesini sa\u011flamak) ve yeni verilerle tahminler yapmak i\u00e7in gerekli olan t\u00fcm fonksiyonlara sahiptir. \u00d6rne\u011fin, model.fit() fonksiyonuyla modelinizi e\u011fitir, model.predict() ile de tahmin yapars\u0131n\u0131z.<\/p>\n<\/li>\n<li>\n<p>Ayarlar\u0131 Saklama: Model ayn\u0131 zamanda, modelin \u00f6\u011frenme s\u00fcrecinde kullan\u0131lan kay\u0131p fonksiyonu, optimizer ve metrikler gibi ayarlar\u0131 da saklar. Bu ayarlar sayesinde modelinizin nas\u0131l \u00f6\u011frenmesi gerekti\u011fi belirlenir.<\/p>\n<\/li>\n<\/ul>\n<h2>Neden Model s\u0131n\u0131f\u0131 bu kadar \u00f6nemli?<\/h2>\n<p>Keras'ta bir sinir a\u011f\u0131 olu\u015fturman\u0131n birden fazla yolu vard\u0131r ama en yayg\u0131n olanlar\u0131 Sequential (s\u0131ral\u0131) ve Functional (fonksiyonel) API'lerdir. Her iki y\u00f6ntemle de olu\u015fturulan modeller asl\u0131nda temel olarak Model s\u0131n\u0131f\u0131n\u0131n bir \u00f6rne\u011fidir.<\/p>\n<ul>\n<li>\n<p>Sequential: Ad\u0131ndan da anla\u015f\u0131laca\u011f\u0131 gibi, katmanlar\u0131n ard\u0131 ard\u0131na eklendi\u011fi basit sinir a\u011flar\u0131 i\u00e7in kullan\u0131l\u0131r. Diyelim ki, sadece bir katman\u0131n\u0131z var, sonra bir tane daha eklediniz ve bir tane daha. Bu, bir Sequential modeldir.<\/p>\n<\/li>\n<li>\n<p>Functional: Daha karma\u015f\u0131k yap\u0131lar, yani katmanlar\u0131n birbirine paralel ba\u011flanabildi\u011fi veya bir katman\u0131n \u00e7\u0131kt\u0131s\u0131n\u0131n birden fazla katmana girdi olarak verilebildi\u011fi durumlar i\u00e7in kullan\u0131l\u0131r. Bu da daha geli\u015fmi\u015f modeller olu\u015fturman\u0131za olanak tan\u0131r.<\/p>\n<\/li>\n<\/ul>\n<p>Bu iki y\u00f6ntemle de olu\u015fturdu\u011funuz modellerin her biri, Model s\u0131n\u0131f\u0131n\u0131n sundu\u011fu ortak fonksiyonlar\u0131 (e\u011fitim, tahmin, kaydetme vb.) kullanabilir.<\/p>\n<h2>Keras'ta Sequential Modeli Nedir?<\/h2>\n<p>Bir \u00f6nceki a\u00e7\u0131klamada Model s\u0131n\u0131f\u0131n\u0131n katmanlar\u0131 bir araya getiren bir yap\u0131 oldu\u011funu s\u00f6ylemi\u015ftik. \u0130\u015fte Sequential modeli de, bu Model s\u0131n\u0131f\u0131n\u0131n \u00f6zel bir t\u00fcr\u00fcd\u00fcr. Ad\u0131 \u00fcst\u00fcnde (Sequential = S\u0131ral\u0131), bu model, katmanlar\u0131 tek bir s\u0131ra halinde, art arda dizmek i\u00e7in kullan\u0131l\u0131r.<\/p>\n<p>Bunu, bir montaj hatt\u0131 gibi d\u00fc\u015f\u00fcnebilirsiniz. Bir araba montaj hatt\u0131nda her istasyon belirli bir g\u00f6revi yapar: ilk istasyonda \u015fasi tak\u0131l\u0131r, ikinci istasyonda motor, \u00fc\u00e7\u00fcnc\u00fc istasyonda tekerlekler... Her i\u015flem bir \u00f6ncekinin \u00fczerine eklenir ve s\u0131ra bozulmaz. Keras'taki Sequential model de aynen bu \u015fekilde \u00e7al\u0131\u015f\u0131r. Veri, ilk katmandan girer, oradan ikinci katmana ge\u00e7er, sonra \u00fc\u00e7\u00fcnc\u00fcye ve bu b\u00f6yle devam eder.<\/p>\n<h3>Sequential Modelinin Temel \u00d6zellikleri ve Kullan\u0131m\u0131<\/h3>\n<ul>\n<li>\n<p>Sade ve Basit: Sequential model, basit sinir a\u011flar\u0131 olu\u015fturmak i\u00e7in idealdir. Katmanlar\u0131 birbiri ard\u0131na ekleyerek kolayca bir model kurman\u0131z\u0131 sa\u011flar. Bu, \u00f6zellikle yeni ba\u015flayanlar i\u00e7in \u00e7ok kullan\u0131\u015fl\u0131d\u0131r.<\/p>\n<\/li>\n<li>\n<p>Katman Ekleme: Bir Sequential model olu\u015fturduktan sonra, model.add() metodu ile modelinize yeni katmanlar ekleyebilirsiniz. \u00d6rne\u011fin, model.add(tf.keras.layers.Dense(32)) komutuyla modele 32 n\u00f6ronlu tam ba\u011flant\u0131l\u0131 bir katman eklersiniz.<\/p>\n<\/li>\n<li>\n<p>Otomatik Yap\u0131land\u0131rma: Sequential modelini kullan\u0131rken, \u00e7o\u011fu zaman ilk katmanda giri\u015f verisinin boyutunu belirtmeniz yeterlidir. Keras, daha sonraki katmanlar\u0131n giri\u015f ve \u00e7\u0131k\u0131\u015f boyutlar\u0131n\u0131 otomatik olarak ayarlayabilir, bu da i\u015finizi kolayla\u015ft\u0131r\u0131r.<\/p>\n<\/li>\n<li>\n<p>S\u0131n\u0131rl\u0131l\u0131klar\u0131: Sequential modelinin en b\u00fcy\u00fck s\u0131n\u0131rl\u0131l\u0131\u011f\u0131, katmanlar aras\u0131nda dallanma veya karma\u015f\u0131k ba\u011flant\u0131lar yapamamas\u0131d\u0131r. Yani, bir katman\u0131n \u00e7\u0131kt\u0131s\u0131n\u0131 birden fazla katmana girdi olarak vermek veya birle\u015ftirme gibi i\u015flemler yapmak m\u00fcmk\u00fcn de\u011fildir. Daha karma\u015f\u0131k bir mimari i\u00e7in (\u00f6rne\u011fin, bir katman\u0131n \u00e7\u0131kt\u0131s\u0131n\u0131n hem bir sonraki katmana hem de iki katman sonras\u0131na gitti\u011fi durumlarda), Keras'\u0131n Functional API ad\u0131 verilen ba\u015fka bir y\u00f6ntemini kullanmak gerekir.<\/p>\n<\/li>\n<\/ul>\n<h4>Model Olu\u015fturma ve Katman Ekleme<\/h4>\n<pre><code class=\"language-py\">model = keras.Sequential()\nmodel.add(keras.Input(shape=(16,)))\nmodel.add(keras.layers.Dense(8))<\/code><\/pre>\n<p>Bu, bir model olu\u015fturman\u0131n en temel yoludur.<\/p>\n<ul>\n<li>model = keras.Sequential(): \u0130lk olarak bo\u015f bir Sequential modeli olu\u015fturursunuz.<\/li>\n<li>model.add(...): add metodu ile bu bo\u015f modelinize katmanlar\u0131 teker teker eklersiniz.<\/li>\n<li>keras.Input(shape=(16,)): Bu, modelinize gelecek verinin \u015feklini belirtir. (16,) demek, her bir veri par\u00e7as\u0131n\u0131n 16 elemanl\u0131 bir vekt\u00f6r olaca\u011f\u0131 anlam\u0131na gelir. Bu katman\u0131 eklemek, modelinizin hemen &quot;yap\u0131land\u0131r\u0131lmas\u0131n\u0131&quot; sa\u011flar. Bu, modelin hangi t\u00fcr veriyi bekledi\u011fini ve katmanlar\u0131n nas\u0131l ba\u011flanaca\u011f\u0131n\u0131 hemen bilmesini sa\u011flar.<\/li>\n<\/ul>\n<h4>Giri\u015f Katman\u0131n\u0131 Belirtmemek: &quot;Gecikmeli Yap\u0131land\u0131rma&quot;<\/h4>\n<pre><code class=\"language-py\">model = keras.Sequential()\nmodel.add(keras.layers.Dense(8))\nmodel.add(keras.layers.Dense(4))\n# model.weights not created yet<\/code><\/pre>\n<p>Burada, Input katman\u0131 eklenmiyor. Peki bu ne anlama geliyor?<\/p>\n<ul>\n<li>Model, hen\u00fcz giri\u015f verisinin boyutunu bilmedi\u011fi i\u00e7in, katmanlar aras\u0131ndaki ba\u011flant\u0131lar\u0131 ve a\u011f\u0131rl\u0131klar\u0131 (weights) olu\u015fturamaz.<\/li>\n<li>Bu durumda model, siz onu bir veriyle kullanana kadar (yani fit, eval veya predict metotlar\u0131n\u0131 \u00e7a\u011f\u0131rana kadar) &quot;yap\u0131land\u0131r\u0131lmaz&quot;. Bu duruma &quot;Gecikmeli Yap\u0131land\u0131rma&quot; (delayed-build pattern) denir.<\/li>\n<li>Veriyle kar\u015f\u0131la\u015ft\u0131\u011f\u0131nda, otomatik olarak verinin \u015feklini anlar ve t\u00fcm katmanlar\u0131 birbirine ba\u011flar, yani modelin a\u011f\u0131rl\u0131klar\u0131n\u0131 olu\u015fturur.<\/li>\n<\/ul>\n<h4>Manuel Yap\u0131land\u0131rma<\/h4>\n<p>Gecikmeli yap\u0131land\u0131rma durumunda bile, modelinizi elle yap\u0131land\u0131rmak isterseniz build metodunu kullanabilirsiniz:<\/p>\n<pre><code class=\"language-py\">model = keras.Sequential()\nmodel.add(keras.layers.Dense(8))\nmodel.add(keras.layers.Dense(4))\nmodel.build((None, 16)) # Manuel olarak giri\u015f boyutunu belirtiyoruz.<\/code><\/pre>\n<ul>\n<li>model.build((None, 16)): Burada (None, 16) diyerek, modelin batch (veri paketinin) boyutunu bilmedi\u011fimizi (None), ancak her bir veri par\u00e7as\u0131n\u0131n 16 elemanl\u0131 olaca\u011f\u0131n\u0131 belirtiriz. Bu komut, modeli hemen yap\u0131land\u0131r\u0131r ve a\u011f\u0131rl\u0131klar\u0131n\u0131 olu\u015fturur.<\/li>\n<\/ul>\n<h2>add Metodu<\/h2>\n<p><code>Sequential.add(layer)<\/code>: Bu, modelinize yeni bir katman eklemek i\u00e7in kullan\u0131lan temel komuttur. Her yeni katman, mevcut katmanlar\u0131n en \u00fcst\u00fcne eklenir.<\/p>\n<h2>pop Metodu<\/h2>\n<p><code>Sequential.pop()<\/code>: Bu, modelinizdeki en son eklenen katman\u0131 kald\u0131rman\u0131za yarar. T\u0131pk\u0131 bir LEGO kulesinin en \u00fcst\u00fcndeki par\u00e7ay\u0131 almak gibi. Bu komutu kullanarak, modelinizin mimarisini dinamik olarak de\u011fi\u015ftirebilirsiniz.<\/p>\n<h2>summary method<\/h2>\n<p>Genel olarak modelinizdeki katmanlar hakk\u0131nda tablo \u015feklinde \u00f6zet bir bilgi elde etmek istiyorsan\u0131z kullanman\u0131z gereken methoddur. \u00d6rnek kodumuzu referans al\u0131rsak a\u015fa\u011f\u0131daki gibi kullanabiliriz.<\/p>\n<pre><code class=\"language-py\">network = models.Sequential()\nnetwork.add(layers.Dense(512, activation=&#039;relu&#039;, input_shape=(28 * 28,)))\nnetwork.add(layers.Dense(10, activation=&#039;softmax&#039;))\n\n#  BURAYA EKLE\nnetwork.summary()<\/code><\/pre>\n<p>\u00c7\u0131kt\u0131s\u0131 ise \u015fu \u015fekilde olacak.<\/p>\n<pre><code>Model: &quot;sequential_1&quot;\n\u250f\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2533\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2533\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2513\n\u2503 Layer (type)                    \u2503 Output Shape           \u2503       Param # \u2503\n\u2521\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2547\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2547\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2529\n\u2502 dense_2 (Dense)                 \u2502 (None, 512)            \u2502       401,920 \u2502\n\u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524\n\u2502 dense_3 (Dense)                 \u2502 (None, 10)             \u2502         5,130 \u2502\n\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n Total params: 407,050 (1.55 MB)\n Trainable params: 407,050 (1.55 MB)\n Non-trainable params: 0 (0.00 B)<\/code><\/pre>\n<h3>Neden \u00d6nemli?<\/h3>\n<ul>\n<li>E\u011fitimden \u00f6nce model yap\u0131s\u0131n\u0131 kontrol etmek i\u00e7in idealdir.<\/li>\n<li>Yanl\u0131\u015f input_shape verip \u201cdimension mismatch\u201d hatas\u0131 alma riskini azalt\u0131r.<\/li>\n<li>\u00d6zellikle karma\u015f\u0131k modellerde debugging i\u00e7in \u00e7ok faydal\u0131d\u0131r.<\/li>\n<\/ul>\n<h2>get_layer method<\/h2>\n<p>get_layer() metodu, bir Keras modelinde tan\u0131ml\u0131 olan katmanlara eri\u015fmek i\u00e7in kullan\u0131l\u0131r. Bu y\u00f6ntem \u00f6zellikle e\u011fitim sonras\u0131 a\u011f\u0131rl\u0131klar\u0131 incelemek, katman \u00e7\u0131kt\u0131s\u0131n\u0131 almak veya baz\u0131 katmanlara \u00f6zel i\u015flemler yapmak istedi\u011finde \u00e7ok i\u015fe yarar.<\/p>\n<p>Her katman tan\u0131mlan\u0131rken otomatik bir isim al\u0131r (\u00f6rne\u011fin &quot;dense&quot;, &quot;dense_1&quot;, &quot;conv2d&quot; gibi). Ama sen istersen \u00f6zel isim verebilirsin:<\/p>\n<pre><code class=\"language-py\">model = models.Sequential()\nmodel.add(layers.Dense(128, activation=&#039;relu&#039;, input_shape=(784,), name=&#039;gizli_katman&#039;))\nmodel.add(layers.Dense(10, activation=&#039;softmax&#039;, name=&#039;cikis_katman&#039;))\n\nkatman = model.get_layer(name=&#039;gizli_katman&#039;)\nprint(katman.output_shape)<\/code><\/pre>\n<p>Katmanlar s\u0131ral\u0131 oldu\u011fu i\u00e7in indeks ile de eri\u015febilirsin:<\/p>\n<pre><code class=\"language-py\">ilk_katman = model.get_layer(index=0)<\/code><\/pre>\n<h3>Ne Zaman Kullan\u0131l\u0131r?<\/h3>\n<ul>\n<li>\n<p>A\u011f\u0131rl\u0131k\/Weight \u00e7ekmek i\u00e7in:,<\/p>\n<pre><code class=\"language-py\">katman = model.get_layer(name=&#039;gizli_katman&#039;)\nweights = katman.get_weights()\nprint(&quot;A\u011f\u0131rl\u0131klar:&quot;, weights)<\/code><\/pre>\n<\/li>\n<li>\n<p>Transfer Learning\u2019de sadece baz\u0131 katmanlar\u0131 dondurmak i\u00e7in<\/p>\n<pre><code class=\"language-py\">katman = model.get_layer(name=&#039;gizli_katman&#039;)\nkatman.trainable = False<\/code><\/pre>\n<\/li>\n<li>\n<p>Bir katman\u0131n \u00e7\u0131kt\u0131s\u0131n\u0131 almak i\u00e7in<\/p>\n<\/li>\n<\/ul>\n<pre><code class=\"language-py\">from tensorflow.keras.models import Model\n\nara_katman = model.get_layer(&#039;gizli_katman&#039;).output\nara_model = Model(inputs=model.input, outputs=ara_katman)\n\nara_cikti = ara_model.predict(test_images)<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Ben ne diye beni yoktan yaratana ibadet etmeyecekmi\u015fim ki! (Oysa) hepiniz yaln\u0131zca O\u2019na d\u00f6nd\u00fcr\u00fcleceksiniz. Yasin 22 Giri\u015f Bu yaz\u0131da Model s\u0131n\u0131f\u0131n\u0131n i\u00e7erisine biraz daha ayr\u0131nt\u0131l\u0131&#8230;<\/p>\n<div class=\"more-link-wrapper\"><a class=\"more-link\" href=\"https:\/\/berenkudaygorun.com\/blog\/blog\/2025\/08\/01\/python-ile-derin-ogrenme-4-derin-ogrenmenin-temelleri\/\">Devam\u0131n\u0131 oku<span class=\"screen-reader-text\">Python \u0130le Derin \u00d6\u011frenme #4 \u2013 Derin \u00d6\u011frenmenin Temelleri<\/span><\/a><\/div>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[708],"tags":[],"class_list":["post-2256","post","type-post","status-publish","format-standard","hentry","category-derin-ogrenme","entry"],"_links":{"self":[{"href":"https:\/\/berenkudaygorun.com\/blog\/wp-json\/wp\/v2\/posts\/2256","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/berenkudaygorun.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/berenkudaygorun.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/berenkudaygorun.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/berenkudaygorun.com\/blog\/wp-json\/wp\/v2\/comments?post=2256"}],"version-history":[{"count":3,"href":"https:\/\/berenkudaygorun.com\/blog\/wp-json\/wp\/v2\/posts\/2256\/revisions"}],"predecessor-version":[{"id":2260,"href":"https:\/\/berenkudaygorun.com\/blog\/wp-json\/wp\/v2\/posts\/2256\/revisions\/2260"}],"wp:attachment":[{"href":"https:\/\/berenkudaygorun.com\/blog\/wp-json\/wp\/v2\/media?parent=2256"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/berenkudaygorun.com\/blog\/wp-json\/wp\/v2\/categories?post=2256"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/berenkudaygorun.com\/blog\/wp-json\/wp\/v2\/tags?post=2256"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}