maandag 10 februari 2020

Model is af ! Maar ...

De data is eindelijk weer teruggezt naar leesbare tekst. Dat heeft even geduurd. Ik kan nu het model maken /testen.

Ik maak gebruik van een aangapste versie van deze site https://www.kaggle.com/sharmilaupadhyaya/20newsgroup-classification-using-keras-bert-in-gpu/

Daar worden de woorden weer in tokens omgezet maar nu volgens de BERTje vocab file.

uiteindelijk lijk ik een mooie train en testset te hebben.
Als ik het model start krijg ik echter al snel out of memory errors. Ik verlaag de batch size van 50 naar 25. Dat gaat al beter. Helaas komt die met een melding dat de dataset vorm niet goed is:

ValueError: Error when checking model input: the list of Numpy arrays that you are passing to your model is not the size the model expected. Expected to see 2 array(s), but instead got the following list of 1 arrays: [array([[[    1, 15015,   133, ..., 17556,   115,     2],
        [    1, 15061, 24298, ..., 25138, 26576,     2],
        [    1,  8740,   132, ..., 17300, 16039,     2],
        ...,
        [    1,... 

Dat is vreemd. Ik check de vorm van de dataset:

>>> np.asarray(train_x).shape
(2, 42875, 128) 

Ik kijk hoe de structuur eruit zou moeten zien uit de voorbeeld dataset:

>>> np.asarray(train_x).shape
(2, 15050, 128)

Dat lijkt toch aardig op elkaar. Kijk ik echter rechtsreeks naar de data zie ik idd een verschil:

Mijn dataset:

>>> train_x
array([[[    1, 15015,   133, ..., 17556,   115,     2],
        [    1, 15061, 24298, ..., 25138, 26576,     2],
        [    1,  8740,   132, ..., 17300, 16039,     2],
        ...,
        [    1,  8740,   132, ...,     0,     0,     0],
        [    1, 13177, 24804, ..., 14496,    13,     2],
        [    1, 13177, 24804, ..., 24570, 27106,     2]],

       [[    0,     0,     0, ...,     0,     0,     0],
        [    0,     0,     0, ...,     0,     0,     0],
        [    0,     0,     0, ...,     0,     0,     0],
        ...,
        [    0,     0,     0, ...,     0,     0,     0],
        [    0,     0,     0, ...,     0,     0,     0],
        [    0,     0,     0, ...,     0,     0,     0]]])

Voorbeeld dataset:

>>> train_x
[array([[    1, 11745,    25, ...,     0, 26189,     2],
       [    1, 11745,    25, ..., 20125, 10537,     2],
       [    1, 11745,    25, ...,     0,     0,     0],
       ...,
       [    1, 11745,    25, ..., 10046,   131,     2],
       [    1, 19748, 26361, ..., 17370, 25866,     2],
       [    1, 11745,    25, ...,    81,    11,     2]]), array([[0, 0, 0, ..., 0, 0, 0],
       [0, 0, 0, ..., 0, 0, 0],
       [0, 0, 0, ..., 0, 0, 0],
       ...,
       [0, 0, 0, ..., 0, 0, 0],
       [0, 0, 0, ..., 0, 0, 0],
       [0, 0, 0, ..., 0, 0, 0]])]

Net ff anders. Toch nog maar even sleutelen helaas.



Geen opmerkingen:

Een reactie posten