Első szörnyű pontosság tensorflow könnyű besorolási adatokat

szavazat
1

Kezdek ki a tanulás, hogyan kell használni tensorflow. Elkezdtem a legalapvetőbb bemutató feltéve ide .

A példa a vonatok a két réteget perceptron a mnist adatok. Úgy döntött, hogy cserélje ezt a saját adatait. Így hoztam létre egy módszert, amely generál 2-d tartozó adatokat egy négy osztályba (lásd az egyszerű kivitelezés, módon, az ún get_data itt ). Az osztályok egyértelműen lineárisan szeparálható (lásd az alábbi ábrát). Tehát elvárom minden osztályozó ütni ezt ki a park.

Ezután módosítsa a tensorflow mintát úgy, hogy beolvassa az adataimat helyett.

És az eredmények csak szörnyű. A veszteség úgy tűnik, hogy nem hozható összefüggésbe a pontosság minden, ami nagyon változó az egész képzés előrehaladtával.

Ez nyilvánvaló bárki, amit lehet, hogy hiányzik? A módosítások tettem nagyon egyszerű, és elolvastam őket sokszor.

Step 1, Minibatch Loss= 2167311.5000, Training Accuracy= 0.250
Step 100, Minibatch Loss= 19227.4277, Training Accuracy= 0.250
Step 200, Minibatch Loss= 5008.3398, Training Accuracy= 0.180
Step 300, Minibatch Loss= 1909.1743, Training Accuracy= 0.461
Step 400, Minibatch Loss= 1811.5497, Training Accuracy= 0.398
Step 500, Minibatch Loss= 2363.8840, Training Accuracy= 0.414
Step 600, Minibatch Loss= 2374.1931, Training Accuracy= 0.195
Step 700, Minibatch Loss= 173.2211, Training Accuracy= 0.352
Step 800, Minibatch Loss= 1286.1042, Training Accuracy= 0.250
Step 900, Minibatch Loss= 560.9091, Training Accuracy= 0.023
Step 1000, Minibatch Loss= 163.1450, Training Accuracy= 0.195
Step 1100, Minibatch Loss= 412.8525, Training Accuracy= 0.023
Step 1200, Minibatch Loss= 155.7486, Training Accuracy= 0.094
Step 1300, Minibatch Loss= 137.8443, Training Accuracy= 0.078
Step 1400, Minibatch Loss= 59.5813, Training Accuracy= 0.062
Step 1500, Minibatch Loss= 74.8706, Training Accuracy= 0.180
Step 1600, Minibatch Loss= 7.7829, Training Accuracy= 0.250
Step 1700, Minibatch Loss= 18.4251, Training Accuracy= 0.250
Step 1800, Minibatch Loss= 76.1630, Training Accuracy= 0.211
Step 1900, Minibatch Loss= 2147.1362, Training Accuracy= 0.250
Step 2000, Minibatch Loss= 8275.0098, Training Accuracy= 0.242
Step 2100, Minibatch Loss= 36986.7539, Training Accuracy= 0.250
Step 2200, Minibatch Loss= 2482.1418, Training Accuracy= 0.164
Step 2300, Minibatch Loss= 8919.1445, Training Accuracy= 0.250
Step 2400, Minibatch Loss= 2694.6621, Training Accuracy= 0.172
Step 2500, Minibatch Loss= 262.8948, Training Accuracy= 0.172
Step 2600, Minibatch Loss= 655.5334, Training Accuracy= 0.148
Step 2700, Minibatch Loss= 278.0427, Training Accuracy= 0.250
Step 2800, Minibatch Loss= 2314.9653, Training Accuracy= 0.242
Step 2900, Minibatch Loss= 570.7736, Training Accuracy= 0.180
Step 3000, Minibatch Loss= 4217.2334, Training Accuracy= 0.250
Step 3100, Minibatch Loss= 1161.3817, Training Accuracy= 0.250
Step 3200, Minibatch Loss= 2473.6438, Training Accuracy= 0.234
Step 3300, Minibatch Loss= 2483.4707, Training Accuracy= 0.250
Step 3400, Minibatch Loss= 720.1823, Training Accuracy= 0.070
Step 3500, Minibatch Loss= 1411.0126, Training Accuracy= 0.188
Step 3600, Minibatch Loss= 1034.0898, Training Accuracy= 0.250
Step 3700, Minibatch Loss= 2143.2910, Training Accuracy= 0.258
Step 3800, Minibatch Loss= 2471.9592, Training Accuracy= 0.242
Step 3900, Minibatch Loss= 932.8969, Training Accuracy= 0.250
Step 4000, Minibatch Loss= 2762.5869, Training Accuracy= 0.180
Step 4100, Minibatch Loss= 2132.0295, Training Accuracy= 0.250
Step 4200, Minibatch Loss= 6322.4692, Training Accuracy= 0.250
Step 4300, Minibatch Loss= 6657.2842, Training Accuracy= 0.242
Step 4400, Minibatch Loss= 343629.0312, Training Accuracy= 0.195
Step 4500, Minibatch Loss= 19370.7188, Training Accuracy= 0.234
Step 4600, Minibatch Loss= 1008.6259, Training Accuracy= 0.227
Step 4700, Minibatch Loss= 952.9269, Training Accuracy= 0.125
Step 4800, Minibatch Loss= 390.7108, Training Accuracy= 0.211
Step 4900, Minibatch Loss= 846.1492, Training Accuracy= 0.188
Step 5000, Minibatch Loss= 218.7473, Training Accuracy= 0.250
Optimization Finished!
Testing Accuracy: 0.3275

Sugárirányban

A kérdést 30/07/2018 00:11
a forrás felhasználó
Más nyelveken...                            


1 válasz

szavazat
1

A tanulási sebesség elég nagy; közös értékek közelebb vannak a tartományban 0,001-0,01 (bár ez változhat a konkrét feladat). Ezen felül, akkor lehet, hogy csökkenteni kívánja a tanulási sebesség idővel (az úgynevezett „tanulási sebesség bomlás” (több Andrey Kárpáthy nagy előadás ).

Továbbá, a képzés csak 5000 ismétléseket lehet, hogy nem, hogy mit keres. Gyakran, mint valami „overfitting” megakadályozza, hogy pontosan tanulás általános képviseletét. Ez azt jelenti, hogy nagyon jó a felismerése (és besorolására) a korábban látott trianing adatokat, de nem olyan jó osztályozására láthatatlan adatokat.
Az, hogy az a helyes gyakorlat, hogy egy harmadik adatbázisba érvényesítés (~ mérete teszt készlet). Ez az ellenőrzési set használjuk azután, hogy milyen jó a képzett modell teljesít visszatartás adatokat. Azt értékeli után minden 100. iteráció, vagy úgy, és aztán majd meglátjuk, hogy a veszteség változik ezen adatbázisba.

Egy szokásos eljárás szerint, majd a „korai megállás”, ami azt jelenti, hogy hagyja abba a képzési folyamat, miután a algoritmus nem javítja a meghatározott vizsgálati többé. Egy szép megjelenítés, egy közeli kontextusban, látható ez Stackexchange bejegyzést .

Végül 256 neuronok elég sokat, és talán nem is szükséges az Ön esetében. Nem tudtam megmondani, hány méretei a bemenet, de általában akkor jó, mintegy 16 neuronok rétegenként (talán kísérletezni vele, és látni, hogy milyen jó a hálózat végzi, különböző méretekben).

Sok az eredmények tisztán érkező tudván, hogy mely paraméterek beállításához, így a jó szerencsét!

Válaszolt 30/07/2018 06:08
a forrás felhasználó

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more