spørgsmål
en samling af tekniske samtale spørgsmål til maskinlæring og computer vision engineering positioner.
- 1) Hvad er afvejningen mellem bias og varians?
- 2) Hvad er gradient descent?
- 3) forklare over-og under-montering og hvordan man kan bekæmpe dem?
- 4) Hvordan bekæmper du forbandelsen af dimensionalitet?
- 5) Hvad er regulering, hvorfor bruger vi det og giver nogle eksempler på fælles metoder?
- 6) forklare Principal Component Analysis (PCA)?
- 7) Hvorfor bruges ReLU bedre og oftere end Sigmoid i neurale netværk?
- 8) givet skridt S og kernestørrelser for hvert lag af en (1-dimensionel) CNN, Opret en funktion til at beregne det modtagelige felt for en bestemt node i netværket. Dette er bare at finde ud af, hvor mange input noder der faktisk forbinder til en neuron i en CNN.
- 9) Implementer tilsluttede komponenter på et billede/en matrice.
- 10) implementere en sparsom matriksklasse i C++.
- 11) Opret en funktion til at beregne et integreret billede, og opret en anden funktion for at få områdesummer fra det integrerede billede.
- 12) hvordan ville du fjerne outliers, når du prøver at estimere et fladt plan fra støjende prøver?
- 13) Hvordan virker CBIR?
- 14) hvordan fungerer billedregistrering? Sparsom vs. tæt optisk strømning og så videre.
- 15) Beskriv hvordan konvolution fungerer. Hvad med, hvis dine input er gråtoner vs RGB-billeder? Hvad bestemmer formen på det næste lag?
- 16) tal mig igennem, hvordan du ville oprette en 3D-model af et objekt ud fra billedmålinger og dybdesensormålinger taget i alle vinkler omkring objektet.
- 17) Implementer KVRT(const dobbelt &) uden at bruge nogen specielle funktioner, bare grundlæggende aritmetik.
- 18) omvendt en bitstring.
- 19) Implementer ikke maksimal undertrykkelse så effektivt som muligt.
- 20) Vend en sammenkædet liste på plads.
- 21) Hvad er datanormalisering, og hvorfor har vi brug for det?
- 22) Hvorfor bruger vi konvolutter til billeder i stedet for kun FC-lag?
- 23) Hvad gør CNNs oversættelse invariant?
- 24) Hvorfor har vi maks-pooling i klassificering CNNs?
- 25) hvorfor har segmentering CNN ‘ er typisk en encoder-dekoder stil / struktur?
- 26) Hvad er betydningen af resterende netværk?
- 27) Hvad er batch normalisering og hvorfor virker det?
- 28) hvorfor ville du bruge mange små convolutional kerner som 3H3 snarere end et par store?
- 29) Hvorfor har vi brug for et valideringssæt og testsæt? Hvad er forskellen mellem dem?
- 30) Hvad er stratificeret krydsvalidering, og hvornår skal vi bruge den?
- 31) Hvorfor har ensembler typisk højere score end individuelle modeller?
- 32) Hvad er et ubalanceret datasæt? Kan du liste nogle måder at håndtere det på?
- 33) kan du forklare forskellene mellem overvåget, uovervåget og forstærkning læring?
- 34) Hvad er data augmentation? Kan du give nogle eksempler?
- 35) Hvad er Turing test?
- 36) Hvad er præcision?
- 37) Hvad er tilbagekaldelse?
- 38) Definer F1-score.
- 39) Hvad er omkostningsfunktion?
- 40) Liste forskellige aktiveringsneuroner eller funktioner.
- 41) Definer læringshastighed.
- 42) Hvad er Momentum?
- 43) hvad er forskellen mellem Batch Gradient Descent og stokastisk Gradient Descent?
- 44) epoke vs Batch vs Iteration.
- 45) hvad er forsvindende gradient?
- 46) Hvad er dropouts?
- 47) Definer LSTM.
- 48) Angiv de vigtigste komponenter i LSTM.
- 49) Angiv varianterne af RNN.
- 50) Hvad er Autoencoder, navngiv få applikationer.
- 51) Hvad er komponenterne i GAN?
- 52) Hvad er forskellen mellem boosting og bagging?
- 53) Forklar, hvordan en ROC-kurve fungerer.
- 54) hvad er forskellen mellem type I og type II fejl?
- 55) hvad er forskellen mellem en generativ og diskriminerende model?
- Bidrag
1) Hvad er afvejningen mellem bias og varians?
hvis vores model er for enkel og har meget få parametre, kan den have høj bias og lav varians. På den anden side, hvis vores model har et stort antal parametre, vil den have høj varians og lav bias. Så vi er nødt til at finde den rigtige/gode balance uden at overfylde og underfitting dataene.
2) Hvad er gradient descent?
3) forklare over-og under-montering og hvordan man kan bekæmpe dem?
4) Hvordan bekæmper du forbandelsen af dimensionalitet?
- Manuel funktionsvalg
- Principal Component Analysis (PCA)
- multidimensionel skalering
- lokalt lineær indlejring
5) Hvad er regulering, hvorfor bruger vi det og giver nogle eksempler på fælles metoder?
en teknik, der afskrækker at lære en mere kompleks eller fleksibel model for at undgå risikoen for overfitting.Eksempler
- Ridge (L2 norm)
- Lasso (L1 norm)
den åbenlyse ulempe ved rygregression er modelfortolkelighed. Det vil krympe koefficienterne for mindst vigtige forudsigere, meget tæt på nul. Men det vil aldrig gøre dem nøjagtigt nul. Med andre ord vil den endelige model omfatte alle forudsigere. I tilfælde af lasso har L1-straffen imidlertid den virkning at tvinge nogle af koefficientestimaterne til at være nøjagtigt lig med nul, når indstillingsparameteren prisT er tilstrækkelig stor. Derfor udfører lasso-metoden også variabelt valg og siges at give sparsomme modeller.
6) forklare Principal Component Analysis (PCA)?
7) Hvorfor bruges ReLU bedre og oftere end Sigmoid i neurale netværk?
Forestil dig et netværk med tilfældige initialiserede vægte ( eller normaliserede), og næsten 50% af netværket giver 0 aktivering på grund af karakteristikken for ReLu ( output 0 for negative værdier ). Dette betyder, at færre neuroner skyder (sparsom aktivering), og netværket er lettere.
8) givet skridt S og kernestørrelser for hvert lag af en (1-dimensionel) CNN, Opret en funktion til at beregne det modtagelige felt for en bestemt node i netværket. Dette er bare at finde ud af, hvor mange input noder der faktisk forbinder til en neuron i en CNN.
9) Implementer tilsluttede komponenter på et billede/en matrice.
10) implementere en sparsom matriksklasse i C++.
11) Opret en funktion til at beregne et integreret billede, og opret en anden funktion for at få områdesummer fra det integrerede billede.
12) hvordan ville du fjerne outliers, når du prøver at estimere et fladt plan fra støjende prøver?
13) Hvordan virker CBIR?
14) hvordan fungerer billedregistrering? Sparsom vs. tæt optisk strømning og så videre.
15) Beskriv hvordan konvolution fungerer. Hvad med, hvis dine input er gråtoner vs RGB-billeder? Hvad bestemmer formen på det næste lag?
16) tal mig igennem, hvordan du ville oprette en 3D-model af et objekt ud fra billedmålinger og dybdesensormålinger taget i alle vinkler omkring objektet.
17) Implementer KVRT(const dobbelt &) uden at bruge nogen specielle funktioner, bare grundlæggende aritmetik.
18) omvendt en bitstring.
19) Implementer ikke maksimal undertrykkelse så effektivt som muligt.
20) Vend en sammenkædet liste på plads.
21) Hvad er datanormalisering, og hvorfor har vi brug for det?
datanormalisering er meget vigtigt forbehandlingstrin, der bruges til at omskalere værdier, så de passer ind i et bestemt interval for at sikre bedre konvergens under backpropagation. Generelt koger det ned til at trække gennemsnittet af hvert datapunkt og dividere med dets standardafvigelse. Hvis vi ikke gør dette, vil nogle af funktionerne (dem med høj størrelse) blive vægtet mere i omkostningsfunktionen (hvis en højere størrelsesfunktion ændres med 1%, så er denne ændring ret stor, men for mindre funktioner er det ret ubetydeligt). Datanormaliseringen gør alle funktioner vægtet ens.
22) Hvorfor bruger vi konvolutter til billeder i stedet for kun FC-lag?
for det første bevarer, koder og bruger faktisk den geografiske information fra billedet. Hvis vi kun brugte FC-lag, ville vi ikke have nogen relativ rumlig information. For det andet har Convolutional neurale netværk (CNN ‘ er) en delvist indbygget oversættelsesvarians, da hver konvolutionskerne fungerer som sin egen filter/funktionsdetektor.
23) Hvad gør CNNs oversættelse invariant?
som forklaret ovenfor fungerer hver foldningskerne som sin egen filter/funktionsdetektor. Så lad os sige, at du laver objektdetektering, det betyder ikke noget, hvor i billedet objektet er, da vi alligevel skal anvende konvolutionen på en glidende vinduesmåde over hele billedet.
24) Hvorfor har vi maks-pooling i klassificering CNNs?
for en rolle i Computer Vision. Maks-pooling i en CNN giver dig mulighed for at reducere beregningen, da dine funktionskort er mindre efter pooling. Du mister ikke for meget semantisk information, da du tager den maksimale aktivering. Der er også en teori om, at maks.pooling bidrager lidt til at give CNNs mere oversættelsesvarians. Tjek denne fantastiske video fra Andreas Ng om fordelene ved maks.pooling.
25) hvorfor har segmentering CNN ‘ er typisk en encoder-dekoder stil / struktur?
encoderen CNN kan dybest set betragtes som et funktionsekstraktionsnetværk, mens dekoderen bruger disse oplysninger til at forudsige billedsegmenterne ved at “afkode” funktionerne og opskalere til den originale billedstørrelse.
26) Hvad er betydningen af resterende netværk?
det vigtigste, som resterende forbindelser gjorde, var at give mulighed for direkte funktionsadgang fra tidligere lag. Dette gør informationsudbredelse i hele netværket meget lettere. Et meget interessant papir om dette viser, hvordan brug af lokale springforbindelser giver netværket en type ensemble multi-path struktur, giver funktioner Flere stier til at udbrede i hele netværket.
27) Hvad er batch normalisering og hvorfor virker det?
træning af dybe neurale netværk kompliceres af det faktum, at fordelingen af hvert lags input ændres under træning, da parametrene for de foregående lag ændres. Ideen er derefter at normalisere indgangene i hvert lag på en sådan måde, at de har en gennemsnitlig outputaktivering af nul og standardafvigelse på en. Dette gøres for hver enkelt mini-batch ved hvert lag, dvs.beregne middelværdien og variansen af den mini-batch alene, normaliser derefter. Dette er analogt med, hvordan input til netværk er standardiseret. Hvordan hjælper det? Vi ved, at normalisering af input til et netværk hjælper det med at lære. Men et netværk er kun en række lag, hvor udgangen af et lag bliver input til det næste. Det betyder, at vi kan tænke på ethvert lag i et neuralt netværk som det første lag i et mindre efterfølgende netværk. Tænkt på som en række neurale netværk, der fodrer ind i hinanden, normaliserer vi output fra et lag, før vi anvender aktiveringsfunktionen, og fodrer det derefter ind i det følgende lag (undernetværk).
28) hvorfor ville du bruge mange små convolutional kerner som 3H3 snarere end et par store?
dette er meget godt forklaret i vggnet-papiret. Der er 2 grunde: For det første kan du bruge flere mindre kerner i stedet for få store til at få det samme modtagelige felt og fange mere rumlig kontekst, men med de mindre kerner bruger du færre parametre og beregninger. For det andet, fordi du med mindre kerner bruger flere filtre, vil du være i stand til at bruge flere aktiveringsfunktioner og dermed have en mere diskriminerende kortlægningsfunktion, der læres af din CNN.
29) Hvorfor har vi brug for et valideringssæt og testsæt? Hvad er forskellen mellem dem?
når vi træner en model, deler vi de tilgængelige data i tre separate sæt:
- træningsdatasættet bruges til montering af modelens parametre. Den nøjagtighed, vi opnår på træningssættet, er imidlertid ikke pålidelig til at forudsige, om modellen vil være nøjagtig på nye prøver.
- valideringsdatasættet bruges til at måle, hvor godt modellen klarer sig på eksempler, der ikke var en del af træningsdatasættet. De målinger, der beregnes på valideringsdataene, kan bruges til at indstille modelens hyperparametre. Imidlertid, hver gang vi evaluerer valideringsdataene, og vi træffer beslutninger baseret på disse scoringer, vi lækker information fra valideringsdataene ind i vores model. Jo flere evalueringer, jo mere information lækkes. Så vi kan ende med at overmontere til valideringsdataene, og endnu en gang vil valideringsresultatet ikke være pålideligt til at forudsige modelens opførsel i den virkelige verden.
- testdatasættet bruges til at måle, hvor godt modellen klarer sig på tidligere usete eksempler. Det skal kun bruges, når vi har indstillet parametrene ved hjælp af valideringssættet.
så hvis vi udelader testsættet og kun bruger et valideringssæt, vil valideringsresultatet ikke være et godt skøn over generaliseringen af modellen.
30) Hvad er stratificeret krydsvalidering, og hvornår skal vi bruge den?
krydsvalidering er en teknik til opdeling af data mellem Trænings-og valideringssæt. Ved typisk krydsvalidering udføres denne opdeling tilfældigt. Men i stratificeret krydsvalidering bevarer opdelingen forholdet mellem kategorierne på både Trænings-og valideringsdatasæt.
hvis vi for eksempel har et datasæt med 10% af kategori A og 90% af kategori B, og vi bruger stratificeret krydsvalidering, vil vi have de samme proportioner i træning og validering. I modsætning hertil, hvis vi bruger simpel krydsvalidering, kan vi i værste fald opleve, at der ikke er nogen prøver af kategori A i valideringssættet.
stratificeret krydsvalidering kan anvendes i følgende scenarier:
- på et datasæt med flere kategorier. Jo mindre datasættet er, og jo mere ubalanceret kategorierne er, desto vigtigere vil det være at bruge stratificeret krydsvalidering.
- på et datasæt med data fra forskellige distributioner. For eksempel i et datasæt til autonom kørsel kan vi have billeder taget i løbet af dagen og om natten. Hvis vi ikke sikrer, at begge typer er til stede i træning og validering, vil vi have generaliseringsproblemer.
31) Hvorfor har ensembler typisk højere score end individuelle modeller?
et ensemble er kombinationen af flere modeller for at skabe en enkelt forudsigelse. Nøgleideen til at gøre bedre forudsigelser er, at modellerne skal lave forskellige fejl. På den måde kompenseres fejlene i en model af de rigtige gæt af de andre modeller, og dermed bliver ensemblets score højere.
vi har brug for forskellige modeller til at skabe et ensemble. Mangfoldighed kan opnås ved:
- ved hjælp af forskellige ML algoritmer. For eksempel kan du kombinere logistisk regression, k-nærmeste naboer og beslutningstræer.
- brug af forskellige undergrupper af dataene til træning. Dette kaldes sække.
- giver en forskellig vægt til hver af prøverne af træningssættet. Hvis dette gøres iterativt, vægtes prøverne i henhold til ensemblets fejl, kaldes det boosting.Mange vindende løsninger til datavidenskabskonkurrencer er ensembler. I virkelige maskinlæringsprojekter er ingeniører imidlertid nødt til at finde en balance mellem eksekveringstid og nøjagtighed.
32) Hvad er et ubalanceret datasæt? Kan du liste nogle måder at håndtere det på?
et ubalanceret datasæt er et, der har forskellige proportioner af målkategorier. For eksempel vil et datasæt med medicinske billeder, hvor vi skal opdage en sygdom, typisk have mange flere negative prøver end positive prøver—siger, at 98% af billederne er uden sygdommen, og 2% af billederne er med sygdommen.
der er forskellige muligheder for at håndtere ubalancerede datasæt:
- Oversampling eller undersampling. I stedet for prøveudtagning med en ensartet fordeling fra træningsdatasættet kan vi bruge andre distributioner, så modellen ser et mere afbalanceret datasæt.
- dataforstørrelse. Vi kan tilføje data i de mindre hyppige kategorier ved at ændre eksisterende data på en kontrolleret måde. I eksemplet datasæt, vi kunne vende billederne med sygdomme, eller tilføje støj til kopier af billederne på en sådan måde, at sygdommen forbliver synlig.
- brug af passende målinger. I eksemplet datasæt, hvis vi havde en model, der altid lavede negative forudsigelser, ville den opnå en præcision på 98%. Der er andre målinger som præcision, tilbagekaldelse og F-score, der beskriver nøjagtigheden af modellen bedre, når du bruger et ubalanceret datasæt.
33) kan du forklare forskellene mellem overvåget, uovervåget og forstærkning læring?
i overvåget læring træner vi en model til at lære forholdet mellem inputdata og outputdata. Vi skal have mærkede data for at kunne udføre overvåget læring.
med uovervåget læring har vi kun umærkede data. Modellen lærer en repræsentation af dataene. Uovervåget læring bruges ofte til at initialisere parametrene i modellen, når vi har en masse umærkede data og en lille brøkdel af mærkede data. Vi træner først en model uden opsyn, og derefter bruger vi vægten af modellen til at træne en overvåget model.
i forstærkningsindlæring har modellen nogle inputdata og en belønning afhængigt af modelens output. Modellen lærer en politik, der maksimerer belønningen. Forstærkning læring er blevet anvendt med succes til strategiske spil som Go og endda klassiske Atari videospil.
34) Hvad er data augmentation? Kan du give nogle eksempler?
data augmentation er en teknik til syntetisering af nye data ved at ændre eksisterende data på en sådan måde, at målet ikke ændres, eller det ændres på en kendt måde.
Computer vision er et af felter, hvor dataforstørrelse er meget nyttig. Der er mange ændringer, som vi kan gøre for billeder:
- ændre størrelse
- vandret eller lodret flip
- rotere
- Tilføj støj
- deformere
- ændre farverhvert problem har brug for en tilpasset dataforstørrelsesrørledning. For eksempel, på OCR, gør flips vil ændre teksten og vil ikke være gavnligt; dog kan ændringer og små rotationer hjælpe.
35) Hvad er Turing test?
Turing-testen er en metode til at teste maskinens evne til at matche det menneskelige niveau intelligens. En maskine bruges til at udfordre den menneskelige intelligens, at når den består testen, betragtes den som intelligent. Alligevel kunne en maskine betragtes som intelligent uden tilstrækkeligt at vide om mennesker til at efterligne et menneske.
36) Hvad er præcision?
præcision (også kaldet positiv forudsigelig værdi) er fraktionen af relevante forekomster blandt de hentede forekomster
præcision = sand positiv / (sand positiv + falsk positiv)
37) Hvad er tilbagekaldelse?
tilbagekaldelse (også kendt som følsomhed) er den brøkdel af relevante forekomster, der er hentet over det samlede antal relevante forekomster.Recall = sand positiv / (sand positiv + falsk negativ)
38) Definer F1-score.
det er det vejede gennemsnit af præcision og tilbagekaldelse. Den betragter både falsk positiv og falsk negativ i betragtning. Det bruges til at måle modelens ydeevne.
F1-Score = 2 * (præcision * tilbagekaldelse) / (præcision + tilbagekaldelse)
39) Hvad er omkostningsfunktion?
omkostningsfunktion er en skalarfunktion, der kvantificerer Fejlfaktoren for det neurale netværk. Sænk omkostningsfunktionen bedre det neurale netværk. F. eks: MNIST-datasæt til klassificering af billedet, inputbillede er ciffer 2, og det neurale netværk forudsiger forkert, at det er 3
40) Liste forskellige aktiveringsneuroner eller funktioner.
- lineær Neuron
- binær Tærskelneuron
- stokastisk binær Neuron
- Sigmoid Neuron
- Tanh-funktion
- korrigeret lineær enhed (ReLU)
41) Definer læringshastighed.
læringshastighed er en hyper-parameter, der styrer, hvor meget vi justerer vægten af vores netværk med hensyn til tabsgradienten.
42) Hvad er Momentum?
Momentum lader optimeringsalgoritmen huske sit sidste trin og tilføjer en del af det til det aktuelle trin. På denne måde, selvom algoritmen sidder fast i et fladt område eller et lille lokalt minimum, kan det komme ud og fortsætte mod det sande minimum.
43) hvad er forskellen mellem Batch Gradient Descent og stokastisk Gradient Descent?
batch gradient descent beregner gradienten ved hjælp af hele datasættet. Dette er fantastisk til konvekse eller relativt glatte fejlmanifolder. I dette tilfælde bevæger vi os noget direkte mod en optimal løsning, enten lokal eller global. Derudover vil batchgradient nedstigning, givet en udglødet læringshastighed, til sidst finde det minimum, der er placeret i dets tiltrækningsbassin.
stokastisk gradientafstamning (SGD) beregner gradienten ved hjælp af en enkelt prøve. SGD fungerer godt (ikke godt, antager jeg, men bedre end batch gradient descent) for fejlmanifolds, der har masser af lokale Maksima/minima. I dette tilfælde har den noget støjende gradient beregnet ved hjælp af det reducerede antal prøver en tendens til at rykke modellen ud af lokale minima til en region, der forhåbentlig er mere optimal.
44) epoke vs Batch vs Iteration.
Epoch: et fremadgående pas og et baglæns pas af alle træningseksemplerne
Batch: eksempler behandlet sammen i et pas (fremad og bagud)
Iteration: antal træningseksempler / batchstørrelse
45) hvad er forsvindende gradient?
når vi tilføjer flere og flere skjulte lag, bliver bagudbredelse mindre og mindre nyttig ved at videregive information til de nederste lag. Efterhånden som informationen sendes tilbage, begynder gradienterne at forsvinde og blive små i forhold til netværkets vægt.
46) Hvad er dropouts?
frafald er en enkel måde at forhindre, at et neuralt netværk overmonteres. Det er frafaldet af nogle af enhederne i et neuralt netværk. Det ligner den naturlige reproduktionsproces, hvor naturen producerer afkom ved at kombinere forskellige gener (droppe andre) snarere end at styrke samtilpasningen af dem.
47) Definer LSTM.
lang korttidshukommelse – er eksplicit designet til at løse det langsigtede afhængighedsproblem ved at opretholde en tilstand, hvad man skal huske og hvad man skal glemme.
48) Angiv de vigtigste komponenter i LSTM.
- Porte (glem, hukommelse, opdatering & Læs)
- tanh(h) (værdier mellem -1 til 1)
- Sigmoid(h) (værdier mellem 0 til 1) 1)
49) Angiv varianterne af RNN.
- LSTM: lang korttidshukommelse
- GRU: lukket tilbagevendende enhed
- ende til ende netværk
- Hukommelsesnetværk
Auto encoder bruges dybest set til at lære en komprimeret form af givne data. Få applikationer inkluderer
- Data denoising
- Dimensionalitetsreduktion
- billedrekonstruktion
- billedfarve
51) Hvad er komponenterne i GAN?
- Generator
- diskriminator
52) Hvad er forskellen mellem boosting og bagging?
Boosting og bagging er ens, idet de begge er ensembleteknikker, hvor et antal svage elever (klassifikatorer/regressorer, der næppe er bedre end at gætte) kombinerer (gennem gennemsnit eller maks. Sække betyder, at du tager bootstrap-prøver (med udskiftning) af dit datasæt, og hver prøve træner en (potentielt) svag elev. Boosting bruger på den anden side alle data til at træne hver elev, men forekomster, der blev klassificeret forkert af de tidligere elever, får større vægt, så efterfølgende elever giver dem mere fokus under træningen.
53) Forklar, hvordan en ROC-kurve fungerer.
ROC-kurven er en grafisk repræsentation af kontrasten mellem ægte positive satser og den falske positive sats ved forskellige tærskler. Det bruges ofte som en fuldmagt til afvejningen mellem modelens følsomhed (sande positive) vs udfaldet eller sandsynligheden for, at det vil udløse en falsk alarm (falske positive).
54) hvad er forskellen mellem type I og type II fejl?
Type i-fejl er en falsk positiv, mens type II-fejl er en falsk negativ. Kort sagt betyder Type i-fejl at hævde, at der er sket noget, når det ikke har gjort det, mens type II-fejl betyder, at du hævder, at der ikke sker noget, når der faktisk er noget.En smart måde at tænke på dette er at tænke på type i-fejl som at fortælle en mand, at han er gravid, mens type II-fejl betyder, at du fortæller en gravid kvinde, at hun ikke bærer en baby.
55) hvad er forskellen mellem en generativ og diskriminerende model?
en generativ model lærer kategorier af data, mens en diskriminerende model simpelthen lærer sondringen mellem forskellige kategorier af data. Diskriminerende modeller vil generelt overgå generative modeller på klassificeringsopgaver.
Bidrag
bidrag er meget velkomne.
- gaffel lageret.
- Forpligt dine spørgsmål eller svar.
- Åbn pull anmodning.