keras - TypeError:' int'对象不可迭代

时间:2017-10-03 10:01:31

标签: python numpy keras

我试图测试一个网络,但似乎有一个恼人的错误,我不太清楚我理解。

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()

错误讯息:

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

为什么我会收到此错误?

我在网络中尝试使用共享卷积层,代码指出, 为了测试目的,想看看输出变成了什么?..

1 个答案:

答案 0 :(得分:10)

你的行:

input = Input(5,window_height,1)

发出此错误。 将此与keras的示例进行比较: https://keras.io/getting-started/functional-api-guide/

inputs = Input(shape=(784,))

Input对象期待shape的可迭代,但您传递了int。在这个例子中,您可以看到他们如何绕过一维输入。