2017-10-03 2 views
1

J'essayais de tester un réseau, mais il semble y avoir une erreur gênante, que je ne suis pas certain de comprendre.keras - TypeError: l'objet 'int' n'est pas itérable

import keras 
from keras.models import Sequential 
from keras.optimizers import SGD 
from keras.layers.core import Dense, Activation, Lambda, Reshape,Flatten 
from keras.layers import Conv1D,Conv2D,MaxPooling2D, MaxPooling1D, Reshape 
from keras.utils import np_utils 
from keras.models import Model 
from keras.layers import Input, Dense 
from keras.layers import Dropout 
from keras import backend as K 
from keras.callbacks import ReduceLROnPlateau 
from keras.callbacks import CSVLogger 
from keras.callbacks import EarlyStopping 
from keras.layers.merge import Concatenate 
from keras.callbacks import ModelCheckpoint 
import random 
import numpy as np 


window_height = 8 
filter_size=window_height 
pooling_size = 28 
stride_step = 2 


def fws(): 


    np.random.seed(100) 
    input = Input(5,window_height,1) 
    shared_conv = Conv2D(filters = 1, kernel_size = (0,window_height,1)) 
    output = shared_conv(input) 
    print output.shape 


fws() 

Message d'erreur:

File "experiment.py", line 34, in <module> 
    fws() 
File "experiment.py", line 29, in fws 
    input = Input(5,window_height,1) 
File "/usr/local/lib/python2.7/dist-packages/keras/engine/topology.py", line 1426, in Input 
    input_tensor=tensor) 
File "/usr/local/lib/python2.7/dist-packages/keras/legacy/interfaces.py", line 87, in wrapper 
    return func(*args, **kwargs) 
File "/usr/local/lib/python2.7/dist-packages/keras/engine/topology.py", line 1321, in __init__ 
    batch_input_shape = tuple(batch_input_shape) 
TypeError: 'int' object is not iterable 

Pourquoi ai-je cette erreur?

Je suis dans le réseau d'essayer d'utiliser la couche de convolution partagée, que les états de code, et à des fins de test veulent voir ce que la sortie est devenu ..

Répondre

4

votre ligne:

input = Input(5,window_height,1) 

donne cette erreur. comparer avec un exemple de keras: https://keras.io/getting-started/functional-api-guide/

inputs = Input(shape=(784,)) 

l'objet Input attend un itérable pour shape mais vous transmit un int. Dans l'exemple, vous pouvez voir comment ils contourner cela pour une entrée en 1 dimension.