1D CNN în Keras: Aplatizarea funcționalităților comasate la strat dens ridică ValueError

voturi
0

Am următorul model CNN definit. se așteaptă la o intrare vector 1D de lungime 501.

model = ml.models.Sequential()
model.add(ml.layers.Conv1D(filters=NUMBER_OF_FILTERS, kernel_size=KERNEL_SIZE, activation=ACTIVATION, input_shape=(None, 501)))
model.add(ml.layers.MaxPooling1D(pool_size=POOL_SIZE, padding='valid'))
model.add(ml.layers.Flatten())
model.add(ml.layers.Dense(HIDDEN_SIZE-1, activation=ACTIVATION))

Totuși, acest lucru ridică o eroare de valoare:

ValueError: The last dimension of the inputs to `Dense` should be defined. Found `None`.

Nu sunt sigur de ce aplatiza nu este de a crea o formă de așa ceva (None, x), dar în schimb (None, None). Ceea ce pare a fi problema aici?

Acesta este rezumatul modelului:

Model: sequential
_________________________________________________________________
Layer (type)                 Output Shape              Param #   
=================================================================
conv1d (Conv1D)              (None, None, 50)          250550    
_________________________________________________________________
max_pooling1d (MaxPooling1D) (None, None, 50)          0         
_________________________________________________________________
flatten (Flatten)            (None, None)              0         
=================================================================
Total params: 250,550
Trainable params: 250,550
Non-trainable params: 0
_________________________________________________________________
Întrebat 24/10/2019 la 11:58
sursa de către utilizator
În alte limbi...                            


2 răspunsuri

voturi
0

Am dat seama soluția. Nu am fost definirea corectă a input_shape stratului de Conv1D, ar trebui să fie în schimb:

model.add(ml.layers.Conv1D(filters=NUMBER_OF_FILTERS, kernel_size=KERNEL_SIZE, activation=ACTIVATION, input_shape=(501, 1)))
Publicat 24/10/2019 la 12:12
sursa de către utilizator

voturi
0

Straturi aplatiza transformă formatul imaginilor dintr-o matrice bidimensională (a, b) într-o matrice unidimensională (aXb) .Layer pooling out-put max_pooling1d (MaxPooling1D) (Nici una, Niciuna, 50) un tablou bidimensional (0,0) strat aplatiza Deci: aplatizează (aplatiza) (Nici una, Niciuna)

Publicat 24/10/2019 la 12:16
sursa de către utilizator

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