[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"me":3,"catalog:tr:ai-engineer\u002Faipy-tensor-ops-autograd":4,"config":193},null,{"field_key":5,"field_name":6,"seniority":7,"topic_key":8,"topic_name":9,"spec_key":7,"spec_name":7,"locale":10,"cell_total":11,"field_total":12,"seniorities":13,"topics":17,"specs":97,"samples":108},"ai-engineer","AI Engineer","","aipy-tensor-ops-autograd","Aipy Tensor Ops Autograd","tr",75,2025,[14,15,16],"junior","mid","senior",[18,21,24,27,30,33,36,39,42,45,48,51,54,55,58,61,64,67,70,73,76,79,82,85,88,91,94],{"key":19,"name":20,"count":11},"agents-tool-use","Agents Tool Use",{"key":22,"name":23,"count":11},"aimlops-deployment-strategies-ml","Aimlops Deployment Strategies Ml",{"key":25,"name":26,"count":11},"aimlops-experiment-tracking-reproducibility","Aimlops Experiment Tracking Reproducibility",{"key":28,"name":29,"count":11},"aimlops-feature-store-data-versioning","Aimlops Feature Store Data Versioning",{"key":31,"name":32,"count":11},"aimlops-ml-cicd-pipelines","Aimlops Ml Cicd Pipelines",{"key":34,"name":35,"count":11},"aimlops-model-monitoring-drift-detection","Aimlops Model Monitoring Drift Detection",{"key":37,"name":38,"count":11},"aimlops-model-versioning-registry","Aimlops Model Versioning Registry",{"key":40,"name":41,"count":11},"aipy-async-concurrency-ml-serving","Aipy Async Concurrency Ml Serving",{"key":43,"name":44,"count":11},"aipy-data-pipeline-dataloader","Aipy Data Pipeline Dataloader",{"key":46,"name":47,"count":11},"aipy-gpu-memory-management","Aipy Gpu Memory Management",{"key":49,"name":50,"count":11},"aipy-numpy-vectorization-broadcasting","Aipy Numpy Vectorization Broadcasting",{"key":52,"name":53,"count":11},"aipy-python-ml-packaging-environments","Aipy Python Ml Packaging Environments",{"key":8,"name":9,"count":11},{"key":56,"name":57,"count":11},"embeddings-vector-search","Embeddings Vector Search",{"key":59,"name":60,"count":11},"evaluation-testing","Evaluation Testing",{"key":62,"name":63,"count":11},"fine-tuning-adaptation","Fine Tuning Adaptation",{"key":65,"name":66,"count":11},"inference-serving","Inference Serving",{"key":68,"name":69,"count":11},"llm-fundamentals","Llm Fundamentals",{"key":71,"name":72,"count":11},"prompt-engineering","Prompt Engineering",{"key":74,"name":75,"count":11},"rag-chunking-indexing","Rag Chunking Indexing",{"key":77,"name":78,"count":11},"rag-embeddings-similarity","Rag Embeddings Similarity",{"key":80,"name":81,"count":11},"rag-evaluation","Rag Evaluation",{"key":83,"name":84,"count":11},"rag-generation-context","Rag Generation Context",{"key":86,"name":87,"count":11},"rag-reranking-fusion","Rag Reranking Fusion",{"key":89,"name":90,"count":11},"rag-retrieval","Rag Retrieval",{"key":92,"name":93,"count":11},"rag-retrieval-search","Rag Retrieval Search",{"key":95,"name":96,"count":11},"safety-guardrails","Safety Guardrails",[98,102,105],{"key":99,"name":100,"count":101},"llm-rag","LLM\u002FRAG",450,{"key":103,"name":104,"count":101},"mlops","MLOps",{"key":106,"name":107,"count":101},"python","Python",[109,127,140,153,167,180],{"id":110,"topic":9,"difficulty":111,"body":112,"options":113,"correct_key":115,"explanation":126},"019f9407-fdb7-7db8-a2fa-6fdf2a723d4d",1,"PyTorch-tarzı bir tensor kütüphanesinde, autograd'ın forward pass sırasında oluşturduğu 'computation graph' (hesaplama grafiği) nedir?",[114,117,120,123],{"key":115,"text":116},"a","Çalıştırılan operasyonların bir kaydı; sonradan chain rule ile gradyan hesaplamak için kullanılır.",{"key":118,"text":119},"b","Daha önce hesaplanmış gradyanların önbelleği; tekrarlanan backward çağrıları yeniden hesaplamayı tamamen atlar.",{"key":121,"text":122},"c","Her operasyonun hangi cihazda (CPU ya da GPU) çalışacağına karar veren statik bir zamanlama.",{"key":124,"text":125},"d","Eğitim başlamadan önce oluşturulan, modelin ağırlıklarının sıkıştırılmış bir kopyası.","Autograd, çalışırken her türevlenebilir operasyonu kaydeder (tensor'lar ve onları üreten fonksiyonlardan oluşan yönlü bir graf); backward() bu grafı gezerek chain rule uygular ve gradyanları hesaplar. (b) önbelleklemeyi anlatır, graf oluşturmayı değil. (c) cihaz yerleşimi\u002Fzamanlamayı anlatır, gradyan takibiyle ilgisizdir. (d) autograd'ın yapmadığı bir ağırlık sıkıştırmasını anlatır.",{"id":128,"topic":9,"difficulty":111,"body":129,"options":130,"correct_key":118,"explanation":139},"019f9407-fdb9-73be-8eb1-4cf721f4fb67","Doğrudan veriden yeni bir tensor oluşturduğunuzda (örn. `torch.tensor([1.0, 2.0])`) başka bir şey belirtmeden, `requires_grad`'ın varsayılan değeri nedir?",[131,133,135,137],{"key":115,"text":132},"True, çünkü her float tensor varsayılan olarak gradyan takip eder.",{"key":118,"text":134},"False; requires_grad açıkça True yapılmadıkça tensor autograd'a dahil olmaz.",{"key":121,"text":136},"Tensor'un birden fazla elemanı varsa True olur.",{"key":124,"text":138},"Tensor oluşturma anında GPU'nun mevcut olup olmamasına bağlıdır.","Düz veriden oluşturulan tensor'lar varsayılan olarak requires_grad=False'tur; autograd'ın o tensor'u takip etmesi için açıkça devreye almanız gerekir (oluşturmada requires_grad=True ya da sonradan requires_grad_()). (a) ve (c) varsayılanı belirlemeyen koşullar uyduruyor. (d) cihaz erişilebilirliğini requires_grad varsayılanıyla karıştırıyor; bunlar ilgisizdir.",{"id":141,"topic":9,"difficulty":111,"body":142,"options":143,"correct_key":121,"explanation":152},"019f9407-fdbb-7aba-9f05-c63da47a0a14","Bir autograd hesaplama grafında 'leaf tensor' (yaprak tensor) nedir?",[144,146,148,150],{"key":115,"text":145},"Loss fonksiyonunun nihai çıktısı olarak üretilen herhangi bir tensor.",{"key":118,"text":147},"Bir GPU cihazına taşınmış herhangi bir tensor.",{"key":121,"text":149},"Kullanıcı tarafından doğrudan oluşturulan, takip edilen bir operasyonun sonucu olmayan bir tensor; örneğin bir model parametresi ya da girdi.",{"key":124,"text":151},"Eğitim boyunca değeri hiç değişmeyen herhangi bir tensor.","Leaf tensor'lar grafın 'kenarlarında' yer alır: takip edilen bir operasyonun sonucu değil, doğrudan kullanıcı tarafından oluşturulmuşlardır; requires_grad=True ise backward() sonrası .grad özellikleri doldurulur. Model parametreleri ve doğrudan oluşturulan girdiler tipik yapraklardır. (a) grafın kökünü\u002Fçıktısını anlatır, yaprağı değil. (b) cihaz yerleşimini graf konumuyla karıştırıyor. (d) sabitleri anlatır, özellikle leaf kavramını değil.",{"id":154,"topic":9,"difficulty":155,"body":156,"options":157,"correct_key":124,"explanation":166},"019f9407-fdbc-7548-bd1a-2dbbc4d96baa",2,"Tipik bir eğitim döngüsünde, her `loss.backward()` çağrısından önce neden `optimizer.zero_grad()` (ya da `param.grad = None`) çağırmanız gerekir?",[158,160,162,164],{"key":115,"text":159},"backward() varsayılan olarak .grad'ın üzerine yazdığı için, zero_grad() gerçek bir etkisi olmayan yalnızca savunmacı bir alışkanlıktır.",{"key":118,"text":161},"Unutulursa backward() anında bir exception fırlatır.",{"key":121,"text":163},"zero_grad(), bir sonraki adımdan önce modelin ağırlıklarını başlangıç değerlerine sıfırlar.",{"key":124,"text":165},"backward(), her çalıştığında yeni gradyanları .grad'daki mevcut değerin üzerine ekleyerek biriktirir.","Autograd birikimlidir: her backward() çağrısı yeni hesaplanan gradyanları .grad'daki mevcut değerin yerine koymaz, üzerine ekler. zero_grad() atlanırsa, önceki adımların gradyanları sessizce mevcut adımın gradyanlarına eklenir ve güncelleme yönünü bozar. (a) gerçek birikim davranışını tersine çeviriyor. (b) yanlıştır — hiçbir exception fırlatılmaz. (c) gradyan sıfırlamayı, zero_grad()'ın yapmadığı ağırlık sıfırlamayla karıştırıyor.",{"id":168,"topic":9,"difficulty":155,"body":169,"options":170,"correct_key":118,"explanation":179},"019f9407-fdbd-78dd-bd42-8abf3319f8ce","Leaf bir tensor `x`, `requires_grad=True` ve `x.grad = None` ile başlıyor. `y = x**2` çalıştırıyorsunuz ve `y.backward()`'ı art arda iki kez çağırıyorsunuz (arada zero_grad yok, graf-serbest-bırakıldı hatasından kaçınmak için `retain_graph=True` geçirilmiş). Mevcut x için dy\u002Fdx her hesaplandığında 6.0 veriyorsa, ikinci `backward()` çağrısından sonra `x.grad` nedir?",[171,173,175,177],{"key":115,"text":172},"6.0, çünkü .grad her zaman yalnızca en son gradyan katkısını saklar.",{"key":118,"text":174},"12.0, çünkü her backward() çağrısı hesapladığı gradyanı (6.0) mevcut .grad değerinin üzerine ekler.",{"key":121,"text":176},"None, çünkü aynı graf üzerinde backward()'ı iki kez çağırmak .grad'ı None'a sıfırlar.",{"key":124,"text":178},"0.0, çünkü iki çağrı birbirini götürür.","Gradyan birikimi şu anlama gelir: .grad None ile başlar, ilk backward()'dan sonra 6.0 olur, ikinci backward()'dan sonra 6.0 + 6.0 = 12.0 olur; bu, birikim döngüsünün gerçek davranışıyla doğrulanır. (a) birikimi tamamen görmezden geliyor. (c) ve (d), birikim mekanizmasının sergilemediği davranışları anlatıyor.",{"id":181,"topic":9,"difficulty":111,"body":182,"options":183,"correct_key":115,"explanation":192},"019f9407-fdbf-7bad-83e6-3735ed648915","requires_grad olan bir tensor `x` verildiğinde, `x.detach()` ne döndürür?",[184,186,188,190],{"key":115,"text":185},"x'in verisini paylaşan ama graftan koparılmış yeni bir tensor.",{"key":118,"text":187},"x'in kendi ayrı storage'ına sahip derin bir kopyası; hâlâ autograd tarafından takip edilir.",{"key":121,"text":189},"x'in loss'a göre gradyanı; anında hesaplanır.",{"key":124,"text":191},"x hangi cihazdaysa olsun, CPU'ya taşınmış bir tensor.","detach(), x'in storage'ını paylaşan bir view verir, ama hesaplama grafından koparılmıştır: requires_grad=False ve grad_fn yoktur, bu yüzden üzerindeki operasyonlar takip edilmez ve gradyanlar x'in grafına geri akmaz. (b) yanlışlıkla bir veri kopyası ve devam eden takip iddia ediyor. (c) detach etmeyi gradyan hesaplamayla karıştırıyor. (d) detach()'i .cpu() gibi bir cihaz-transfer çağrısıyla karıştırıyor.",{"fields":194,"seniorities":372,"interview_shapes":373,"locales":378,"oauth":380,"question_count":383,"coach_enabled":384,"jd_match_enabled":384},[195,218,238,255,279,286,305,324,346,353,359,366],{"key":196,"name_tr":197,"name_en":197,"sort":111,"specializations":198},"backend","Backend",[199,202,205,206,209,212,215],{"key":200,"name":201,"field":196},"general","Genel",{"key":203,"name":204,"field":196},"go","Go",{"key":106,"name":107,"field":196},{"key":207,"name":208,"field":196},"java","Java",{"key":210,"name":211,"field":196},"csharp","C#\u002F.NET",{"key":213,"name":214,"field":196},"nodejs","Node.js",{"key":216,"name":217,"field":196},"php","PHP",{"key":219,"name_tr":220,"name_en":220,"sort":155,"specializations":221},"frontend","Frontend",[222,223,226,229,232,235],{"key":200,"name":201,"field":219},{"key":224,"name":225,"field":219},"javascript","JavaScript",{"key":227,"name":228,"field":219},"typescript","TypeScript",{"key":230,"name":231,"field":219},"react","React",{"key":233,"name":234,"field":219},"vue","Vue",{"key":236,"name":237,"field":219},"angular","Angular",{"key":239,"name_tr":240,"name_en":240,"sort":241,"specializations":242},"fullstack","Fullstack",3,[243,244,245,246,247,248,249,250,251,252,253,254],{"key":200,"name":201,"field":239},{"key":203,"name":204,"field":196},{"key":106,"name":107,"field":196},{"key":207,"name":208,"field":196},{"key":210,"name":211,"field":196},{"key":213,"name":214,"field":196},{"key":216,"name":217,"field":196},{"key":224,"name":225,"field":219},{"key":227,"name":228,"field":219},{"key":230,"name":231,"field":219},{"key":233,"name":234,"field":219},{"key":236,"name":237,"field":219},{"key":256,"name_tr":257,"name_en":257,"sort":258,"specializations":259},"devops-cloud","DevOps \u002F Cloud",4,[260,261,264,267,270,273,276],{"key":200,"name":201,"field":256},{"key":262,"name":263,"field":256},"aws","AWS",{"key":265,"name":266,"field":256},"gcp","GCP",{"key":268,"name":269,"field":256},"azure","Azure",{"key":271,"name":272,"field":256},"kubernetes","Kubernetes",{"key":274,"name":275,"field":256},"terraform","Terraform",{"key":277,"name":278,"field":256},"linux","Linux",{"key":5,"name_tr":6,"name_en":6,"sort":280,"specializations":281},5,[282,283,284,285],{"key":200,"name":201,"field":5},{"key":106,"name":107,"field":5},{"key":99,"name":100,"field":5},{"key":103,"name":104,"field":5},{"key":287,"name_tr":288,"name_en":289,"sort":290,"specializations":291},"database","Veritabanı","Database",6,[292,293,296,299,302],{"key":200,"name":201,"field":287},{"key":294,"name":295,"field":287},"postgresql","PostgreSQL",{"key":297,"name":298,"field":287},"mysql","MySQL",{"key":300,"name":301,"field":287},"mongodb","MongoDB",{"key":303,"name":304,"field":287},"redis","Redis",{"key":306,"name_tr":307,"name_en":308,"sort":309,"specializations":310},"mobile","Mobil","Mobile",7,[311,312,315,318,321],{"key":200,"name":201,"field":306},{"key":313,"name":314,"field":306},"ios-swift","iOS (Swift)",{"key":316,"name":317,"field":306},"android-kotlin","Android (Kotlin)",{"key":319,"name":320,"field":306},"flutter","Flutter",{"key":322,"name":323,"field":306},"react-native","React Native",{"key":325,"name_tr":326,"name_en":327,"sort":328,"specializations":329},"security","Güvenlik","Security",8,[330,331,334,337,340,343],{"key":200,"name":201,"field":325},{"key":332,"name":333,"field":325},"appsec","AppSec",{"key":335,"name":336,"field":325},"offensive-pentest","Offensive \u002F Pentest",{"key":338,"name":339,"field":325},"cloud-security","Cloud Security",{"key":341,"name":342,"field":325},"devsecops","DevSecOps",{"key":344,"name":345,"field":325},"blue-team-incident","Blue Team \u002F Incident",{"key":347,"name_tr":348,"name_en":349,"sort":350,"specializations":351},"qa-test-automation","QA \u002F Test Otomasyonu","QA \u002F Test Automation",9,[352],{"key":200,"name":201,"field":347},{"key":354,"name_tr":355,"name_en":355,"sort":356,"specializations":357},"data-engineer","Data Engineer",10,[358],{"key":200,"name":201,"field":354},{"key":360,"name_tr":361,"name_en":362,"sort":363,"specializations":364},"game-dev","Oyun Geliştirme","Game Development",11,[365],{"key":200,"name":201,"field":360},{"key":367,"name_tr":368,"name_en":368,"sort":369,"specializations":370},"ml-engineer","ML Engineer",12,[371],{"key":200,"name":201,"field":367},[14,15,16],{"junior":374,"mid":376,"senior":377},{"questions":375,"median_sec":3},20,{"questions":375,"median_sec":3},{"questions":375,"median_sec":3},[10,379],"en",[381,382],"google","github",21750,true]