[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"me":3,"catalog:en:ml-engineer\u002Fdl-normalization-regularization":4,"config":169},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":76,"samples":84},"ml-engineer","ML Engineer","","dl-normalization-regularization","Dl Normalization Regularization","en",75,1500,[14,15,16],"junior","mid","senior",[18,21,24,27,30,33,36,39,42,45,46,49,52,55,58,61,64,67,70,73],{"key":19,"name":20,"count":11},"cml-distance-clustering-dimreduction","Cml Distance Clustering Dimreduction",{"key":22,"name":23,"count":11},"cml-gradient-boosting-mechanics","Cml Gradient Boosting Mechanics",{"key":25,"name":26,"count":11},"cml-linear-logistic-internals","Cml Linear Logistic Internals",{"key":28,"name":29,"count":11},"cml-probabilistic-models-calibration","Cml Probabilistic Models Calibration",{"key":31,"name":32,"count":11},"cml-svm-kernels-margins","Cml Svm Kernels Margins",{"key":34,"name":35,"count":11},"cml-trees-randomforest-internals","Cml Trees Randomforest Internals",{"key":37,"name":38,"count":11},"dl-architecture-layers","Dl Architecture Layers",{"key":40,"name":41,"count":11},"dl-initialization-optimizers","Dl Initialization Optimizers",{"key":43,"name":44,"count":11},"dl-losses-output-layers","Dl Losses Output Layers",{"key":8,"name":9,"count":11},{"key":47,"name":48,"count":11},"dl-sequence-attention","Dl Sequence Attention",{"key":50,"name":51,"count":11},"dl-training-dynamics-backprop","Dl Training Dynamics Backprop",{"key":53,"name":54,"count":11},"ml-data-preparation","Ml Data Preparation",{"key":56,"name":57,"count":11},"ml-deployment-serving","Ml Deployment Serving",{"key":59,"name":60,"count":11},"ml-experimentation-reproducibility","Ml Experimentation Reproducibility",{"key":62,"name":63,"count":11},"ml-model-selection-tuning","Ml Model Selection Tuning",{"key":65,"name":66,"count":11},"ml-model-training-evaluation","Ml Model Training Evaluation",{"key":68,"name":69,"count":11},"ml-monitoring-drift","Ml Monitoring Drift",{"key":71,"name":72,"count":11},"ml-problem-framing","Ml Problem Framing",{"key":74,"name":75,"count":11},"ml-scaling-performance","Ml Scaling Performance",[77,81],{"key":78,"name":79,"count":80},"classical-ml","Classical ML",450,{"key":82,"name":83,"count":80},"deep-learning","Deep Learning",[85,103,117,130,143,156],{"id":86,"topic":9,"difficulty":87,"body":88,"options":89,"correct_key":94,"explanation":102},"01a0499c-f158-7129-9389-4504d556fda7",1,"A BatchNorm layer is applied to an activation tensor of shape (N, C) during training, where N is the batch dimension and C is the feature dimension. Which statistics does the layer compute in order to standardize this tensor?",[90,93,96,99],{"key":91,"text":92},"a","One global mean and one global variance over all N x C entries, so the whole tensor is standardized by a single pair of numbers",{"key":94,"text":95},"b","One mean and one variance per feature, each estimated across the N samples in the batch",{"key":97,"text":98},"c","One mean and one variance per sample, each estimated across the C features of that row",{"key":100,"text":101},"d","A full C x C covariance matrix, so correlated features are whitened together","BatchNorm keeps one statistic pair per feature channel and estimates it by reducing over the batch dimension. The option that reduces over features within a row describes LayerNorm instead, and the single global pair would erase per-feature scale differences. Whitening with a covariance matrix is a different, far more expensive operation that BatchNorm does not perform.",{"id":104,"topic":9,"difficulty":105,"body":106,"options":107,"correct_key":100,"explanation":116},"01a0499c-f158-789a-a3ab-95f7a6ea3c87",2,"In PyTorch 2.8:\n\n```python\nbn = nn.BatchNorm2d(3)   # default affine=True\nbn.train()\nx = torch.randn(4, 3, 5, 5) * 2 + 1\ny = bn(x)\nprint(y.mean(dim=(0, 2, 3)), y.std(dim=(0, 2, 3), unbiased=False))\n```\n\nWhat does this print, to floating-point tolerance?",[108,110,112,114],{"key":91,"text":109},"Means near 1 and standard deviations near 2, because the layer keeps the incoming location and scale and only learns a correction",{"key":94,"text":111},"Means near 0 and standard deviations near 2, because only centering is applied on the first forward pass",{"key":97,"text":113},"Means near 1 and standard deviations near 1, because the learnable shift is initialised to the batch mean",{"key":100,"text":115},"Means near 0 and standard deviations near 1, because gamma and beta start at 1 and 0","In training mode the layer subtracts the batch mean and divides by the batch standard deviation of each channel, then applies the affine parameters, which are initialised to gamma=1 and beta=0. With those defaults the affine step is the identity, so the printed statistics are the standardized ones. The incoming location of 1 and scale of 2 are removed, not preserved.",{"id":118,"topic":9,"difficulty":105,"body":119,"options":120,"correct_key":91,"explanation":129},"01a0499c-f159-70c5-a885-5eac50850d65","A convolutional network with BatchNorm layers is switched to evaluation mode before scoring a single image. Which quantities does each BatchNorm layer use to standardize its input in this call?",[121,123,125,127],{"key":91,"text":122},"The stored running mean and running variance buffers, which were accumulated across training batches",{"key":94,"text":124},"The mean and variance of the current input, exactly as during training, since the layer has no mode-dependent branch",{"key":97,"text":126},"The mean and variance of the last training batch that was seen, which the layer caches verbatim",{"key":100,"text":128},"The learned gamma and beta only, since standardization is skipped once training ends","In evaluation mode the layer stops estimating statistics from the incoming tensor and reads the buffers it accumulated while training, which is what makes single-image inference well defined. Standardization itself is not skipped; the affine parameters are applied on top of it. The buffers hold a moving estimate over many batches rather than a verbatim copy of the last one.",{"id":131,"topic":9,"difficulty":105,"body":132,"options":133,"correct_key":97,"explanation":142},"01a0499c-f159-77a9-b2f5-c665476429de","A BatchNorm layer is freshly constructed, so its running mean buffer holds 0. Its momentum hyperparameter is 0.1. The very first training forward pass sees a batch whose mean for one channel is 5.0. What does that channel's running mean hold afterwards, in PyTorch 2.8?",[134,136,138,140],{"key":91,"text":135},"5.0, because the first observation has nothing to blend with and replaces the initial value",{"key":94,"text":137},"4.5, because the buffer keeps a weight of 0.1 on its old value and 0.9 on the new one",{"key":97,"text":139},"0.5, because the new batch statistic enters with weight 0.1 and the old buffer keeps weight 0.9",{"key":100,"text":141},"0.05, because the momentum is applied twice, once to the batch statistic and once to the update","The buffer is an exponential moving average, and on this first pass the update evaluates 0.9 * 0 + 0.1 * 5.0. Overwriting the stored value with the batch mean would give 5.0, and exchanging the two coefficients would give 4.5. The coefficient enters the rule once rather than twice, so nothing shrinks the result a second time.",{"id":144,"topic":9,"difficulty":105,"body":145,"options":146,"correct_key":94,"explanation":155},"01a0499c-f159-7efe-8691-551d15381eac","A service scores the same request twice through a trained network that contains Dropout layers, and gets two different prediction vectors. The weights were not updated between the two calls. What is the most likely cause?",[147,149,151,153],{"key":91,"text":148},"The dropout probability is annealed automatically as more requests arrive, so later calls keep more units",{"key":94,"text":150},"The module is still in training mode, so each forward pass samples a fresh dropout mask",{"key":97,"text":152},"Dropout rounds its output to a random precision, so repeated calls differ in the low-order bits",{"key":100,"text":154},"Dropout retains the mask of the previous request and inverts it on the next one","Dropout is stochastic only while the module is in training mode; each forward pass then draws an independent Bernoulli mask, so identical inputs give different outputs. Once evaluation mode is set the layer becomes the identity and repeated calls agree exactly. Nothing about the probability changes on its own, and no mask is carried over between calls.",{"id":157,"topic":9,"difficulty":87,"body":158,"options":159,"correct_key":91,"explanation":168},"01a0499c-f15a-75a2-8fac-b175eee8ffa0","In PyTorch 2.8:\n\n```python\nd = nn.Dropout(p=0.5)\nd.train()\ny = d(torch.ones(10000))\nprint(torch.unique(y))\n```\n\nWhich distinct values appear in `y`?",[160,162,164,166],{"key":91,"text":161},"Only 0. and 2., because surviving entries are divided by the keep probability",{"key":94,"text":163},"Only 0. and 0.5, because surviving entries are multiplied by the keep probability",{"key":97,"text":165},"Only 0. and 1., because the mask zeroes entries and leaves the survivors untouched",{"key":100,"text":167},"A continuum between 0. and 1., because each entry is multiplied by its own Bernoulli sample","The implementation is inverted dropout: dropped entries become zero and surviving entries are divided by 1 - p, which is 0.5 here, giving 2. The mask itself is binary, so no intermediate values are produced. Multiplying the survivors by the keep probability would print 0.5 instead of 2., and leaving them untouched would print 1.",{"fields":170,"seniorities":392,"interview_shapes":393,"locales":398,"oauth":400,"question_count":403,"coach_enabled":404,"jd_match_enabled":404},[171,196,216,233,257,270,289,308,330,349,364,386],{"key":172,"name_tr":173,"name_en":173,"sort":87,"specializations":174},"backend","Backend",[175,178,181,184,187,190,193],{"key":176,"name":177,"field":172},"general","Genel",{"key":179,"name":180,"field":172},"go","Go",{"key":182,"name":183,"field":172},"python","Python",{"key":185,"name":186,"field":172},"java","Java",{"key":188,"name":189,"field":172},"csharp","C#\u002F.NET",{"key":191,"name":192,"field":172},"nodejs","Node.js",{"key":194,"name":195,"field":172},"php","PHP",{"key":197,"name_tr":198,"name_en":198,"sort":105,"specializations":199},"frontend","Frontend",[200,201,204,207,210,213],{"key":176,"name":177,"field":197},{"key":202,"name":203,"field":197},"javascript","JavaScript",{"key":205,"name":206,"field":197},"typescript","TypeScript",{"key":208,"name":209,"field":197},"react","React",{"key":211,"name":212,"field":197},"vue","Vue",{"key":214,"name":215,"field":197},"angular","Angular",{"key":217,"name_tr":218,"name_en":218,"sort":219,"specializations":220},"fullstack","Fullstack",3,[221,222,223,224,225,226,227,228,229,230,231,232],{"key":176,"name":177,"field":217},{"key":179,"name":180,"field":172},{"key":182,"name":183,"field":172},{"key":185,"name":186,"field":172},{"key":188,"name":189,"field":172},{"key":191,"name":192,"field":172},{"key":194,"name":195,"field":172},{"key":202,"name":203,"field":197},{"key":205,"name":206,"field":197},{"key":208,"name":209,"field":197},{"key":211,"name":212,"field":197},{"key":214,"name":215,"field":197},{"key":234,"name_tr":235,"name_en":235,"sort":236,"specializations":237},"devops-cloud","DevOps \u002F Cloud",4,[238,239,242,245,248,251,254],{"key":176,"name":177,"field":234},{"key":240,"name":241,"field":234},"aws","AWS",{"key":243,"name":244,"field":234},"gcp","GCP",{"key":246,"name":247,"field":234},"azure","Azure",{"key":249,"name":250,"field":234},"kubernetes","Kubernetes",{"key":252,"name":253,"field":234},"terraform","Terraform",{"key":255,"name":256,"field":234},"linux","Linux",{"key":258,"name_tr":259,"name_en":259,"sort":260,"specializations":261},"ai-engineer","AI Engineer",5,[262,263,264,267],{"key":176,"name":177,"field":258},{"key":182,"name":183,"field":258},{"key":265,"name":266,"field":258},"llm-rag","LLM\u002FRAG",{"key":268,"name":269,"field":258},"mlops","MLOps",{"key":271,"name_tr":272,"name_en":273,"sort":274,"specializations":275},"database","Veritabanı","Database",6,[276,277,280,283,286],{"key":176,"name":177,"field":271},{"key":278,"name":279,"field":271},"postgresql","PostgreSQL",{"key":281,"name":282,"field":271},"mysql","MySQL",{"key":284,"name":285,"field":271},"mongodb","MongoDB",{"key":287,"name":288,"field":271},"redis","Redis",{"key":290,"name_tr":291,"name_en":292,"sort":293,"specializations":294},"mobile","Mobil","Mobile",7,[295,296,299,302,305],{"key":176,"name":177,"field":290},{"key":297,"name":298,"field":290},"ios-swift","iOS (Swift)",{"key":300,"name":301,"field":290},"android-kotlin","Android (Kotlin)",{"key":303,"name":304,"field":290},"flutter","Flutter",{"key":306,"name":307,"field":290},"react-native","React Native",{"key":309,"name_tr":310,"name_en":311,"sort":312,"specializations":313},"security","Güvenlik","Security",8,[314,315,318,321,324,327],{"key":176,"name":177,"field":309},{"key":316,"name":317,"field":309},"appsec","AppSec",{"key":319,"name":320,"field":309},"offensive-pentest","Offensive \u002F Pentest",{"key":322,"name":323,"field":309},"cloud-security","Cloud Security",{"key":325,"name":326,"field":309},"devsecops","DevSecOps",{"key":328,"name":329,"field":309},"blue-team-incident","Blue Team \u002F Incident",{"key":331,"name_tr":332,"name_en":333,"sort":334,"specializations":335},"qa-test-automation","QA \u002F Test Otomasyonu","QA \u002F Test Automation",9,[336,337,340,343,346],{"key":176,"name":177,"field":331},{"key":338,"name":339,"field":331},"test-automation","Test Automation",{"key":341,"name":342,"field":331},"sdet","SDET",{"key":344,"name":345,"field":331},"performance-testing","Performance Testing",{"key":347,"name":348,"field":331},"mobile-qa","Mobile QA",{"key":350,"name_tr":351,"name_en":351,"sort":352,"specializations":353},"data-engineer","Data Engineer",10,[354,355,358,361],{"key":176,"name":177,"field":350},{"key":356,"name":357,"field":350},"pipelines-etl","Pipelines \u002F ETL",{"key":359,"name":360,"field":350},"streaming","Streaming",{"key":362,"name":363,"field":350},"warehousing","Warehousing",{"key":365,"name_tr":366,"name_en":367,"sort":368,"specializations":369},"game-dev","Oyun Geliştirme","Game Development",11,[370,371,374,377,380,383],{"key":176,"name":177,"field":365},{"key":372,"name":373,"field":365},"unity-csharp","Unity (C#)",{"key":375,"name":376,"field":365},"unreal-cpp","Unreal (C++)",{"key":378,"name":379,"field":365},"gameplay","Gameplay",{"key":381,"name":382,"field":365},"graphics-rendering","Graphics \u002F Rendering",{"key":384,"name":385,"field":365},"multiplayer-netcode","Multiplayer \u002F Netcode",{"key":5,"name_tr":6,"name_en":6,"sort":387,"specializations":388},12,[389,390,391],{"key":176,"name":177,"field":5},{"key":78,"name":79,"field":5},{"key":82,"name":83,"field":5},[14,15,16],{"junior":394,"mid":396,"senior":397},{"questions":395,"median_sec":3},20,{"questions":395,"median_sec":3},{"questions":395,"median_sec":3},[399,10],"tr",[401,402],"google","github",28050,true]