我试图测试一个网络,但似乎有一个恼人的错误,我不太清楚我理解。
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
为什么我会收到此错误?
我在网络中尝试使用共享卷积层,代码指出, 为了测试目的,想看看输出变成了什么?..
答案 0 :(得分:10)
你的行:
input = Input(5,window_height,1)
发出此错误。 将此与keras的示例进行比较: https://keras.io/getting-started/functional-api-guide/
inputs = Input(shape=(784,))
Input
对象期待shape
的可迭代,但您传递了int
。在这个例子中,您可以看到他们如何绕过一维输入。