Deep learning Conolutional Neural Network:float()参数必须是字符串还是数字?

Deep learning Conolutional Neural Network:float()参数必须是字符串还是数字?,deep-learning,convolution,keras-layer,Deep Learning,Convolution,Keras Layer,我想用卷积神经网络(CNN)训练我的数据,我从重塑数据开始,而不是创建模型: model = Sequential() input_traces = Input(shape=(3253,)) model.add(Convolution1D(nb_filter=32, filter_length=3, border_mode='same', activation='relu',input_dim=input_traces)) model.add(Ma

我想用卷积神经网络(CNN)训练我的数据,我从重塑数据开始,而不是创建模型:

model = Sequential()
input_traces = Input(shape=(3253,))

model.add(Convolution1D(nb_filter=32, filter_length=3, border_mode='same', 
activation='relu',input_dim=input_traces))                      
model.add(MaxPooling1D(pool_length=2))
model.add(Flatten())
model.add(Dense(250, activation='relu'))
model.add(Dense(1, activation='sigmoid'))
model.compile(loss='binary_crossentropy', optimizer='adam', metrics=
['accuracy'])
print(model.summary())

model.fit(x_train, y_train, batch_size=15, nb_epoch=30, show_accuracy=True, 
validation_data=(x_test, y_test))
但这段代码给了我一个错误:

CNN_Based_Attack.py:139: UserWarning: Update your `Conv1D` call to the Keras 2 API: `Conv1D(activation="relu", input_shape=(None, /in..., padding="same", filters=32, kernel_size=3)`
  model.add(Convolution1D(nb_filter=32, filter_length=3, border_mode='same', activation='relu',input_dim=input_traces))
Traceback (most recent call last):
  File "CNN_Based_Attack.py", line 139, in <module>
    model.add(Convolution1D(nb_filter=32, filter_length=3, border_mode='same', activation='relu',input_dim=input_traces))
  File "/home/.local/lib/python2.7/site-packages/keras/models.py", line 430, in add
    layer(x)
  File "/home/.local/lib/python2.7/site-packages/keras/engine/topology.py", line 557, in __call__
    self.build(input_shapes[0])
  File "/home/.local/lib/python2.7/site-packages/keras/layers/convolutional.py", line 134, in build
    constraint=self.kernel_constraint)
  File "/home/.local/lib/python2.7/site-packages/keras/legacy/interfaces.py", line 88, in wrapper
    return func(*args, **kwargs)
  File "/home/.local/lib/python2.7/site-packages/keras/engine/topology.py", line 390, in add_weight
    weight = K.variable(initializer(shape), dtype=dtype, name=name)
  File "/home/.local/lib/python2.7/site-packages/keras/initializers.py", line 200, in __call__
    scale /= max(1., float(fan_in + fan_out) / 2)
TypeError: float() argument must be a string or a number
CNN\u-Based\u-Attack.py:139:UserWarning:更新对Keras 2 API的`Conv1D`调用:`Conv1D(activation=“relu”,input\u-shape=(None,/in…,padding=“same”,filters=32,kernel\u-size=3)`
添加(卷积1D(nb_filter=32,filter_length=3,border_mode='same',activation='relu',input_dim=input_traces))
回溯(最近一次呼叫最后一次):
文件“CNN_-Based_-Attack.py”,第139行,在
添加(卷积1D(nb_filter=32,filter_length=3,border_mode='same',activation='relu',input_dim=input_traces))
文件“/home/.local/lib/python2.7/site packages/keras/models.py”,第430行,添加
层(x)
文件“/home/.local/lib/python2.7/site packages/keras/engine/topology.py”,第557行,在调用中__
自我构建(输入形状[0])
文件“/home/.local/lib/python2.7/site packages/keras/layers/convolutional.py”,第134行,内部版本
constraint=self.kernel\u约束)
文件“/home/.local/lib/python2.7/site packages/keras/legacy/interfaces.py”,第88行,在包装器中
返回函数(*args,**kwargs)
文件“/home/.local/lib/python2.7/site packages/keras/engine/topology.py”,第390行,在add_weight中
weight=K.variable(初始值设定项(形状),dtype=dtype,name=name)
文件“/home/.local/lib/python2.7/site packages/keras/initializers.py”,第200行,在调用中__
比例/=最大值(1,浮动(扇入+扇出)/2)
TypeError:float()参数必须是字符串或数字

我真的不明白这个错误。你能帮帮我吗

这不是您应该如何使用输入。Input是Keras中的一个层,Convolution1D的Input_shape参数应该是整数列表(这是错误的原因,因为代码试图使用转换对这些整数进行浮点运算,但您提供的是Input object,它不能强制转换为浮点),而不是Input layer