Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/tensorflow/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何为卷积神经网络模型重塑我的数据?_Python_Tensorflow_Keras_Deep Learning - Fatal编程技术网

Python 如何为卷积神经网络模型重塑我的数据?

Python 如何为卷积神经网络模型重塑我的数据?,python,tensorflow,keras,deep-learning,Python,Tensorflow,Keras,Deep Learning,我需要在卷积神经网络模型中输入一个重塑数据, 但我的问题是代码行: model = Sequential() input_traces = Input(shape=(3253,)) model.add(Convolution1D(nb_filter=32, filter_length=3, activation='relu',input_shape = input_traces)) 这一行给出了以下错误: CNN_Based_Attack.py:139: UserWarni

我需要在卷积神经网络模型中输入一个重塑数据, 但我的问题是代码行:

model = Sequential()
input_traces = Input(shape=(3253,))
model.add(Convolution1D(nb_filter=32, filter_length=3, 
activation='relu',input_shape = input_traces))      
这一行给出了以下错误:

   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
/home/.local/lib/python2.7/site-packages/keras/models.py:834: UserWarning: The `nb_epoch` argument in `fit` has been renamed `epochs`.
  warnings.warn('The `nb_epoch` argument in `fit` '
Traceback (most recent call last):
  File "CNN_Based_Attack.py", line 113, in <module>
    model.fit(x_train, y_train, batch_size=15, nb_epoch=30)
  File "/home/.local/lib/python2.7/site-packages/keras/models.py", line 853, in fit
    initial_epoch=initial_epoch)
  File "/home/.local/lib/python2.7/site-packages/keras/engine/training.py", line 1424, in fit
    batch_size=batch_size)
  File "/home/.local/lib/python2.7/site-packages/keras/engine/training.py", line 1300, in _standardize_user_data
    exception_prefix='input')
  File "/home/.local/lib/python2.7/site-packages/keras/engine/training.py", line 127, in _standardize_input_data
    str(array.shape))
ValueError: Error when checking input: expected conv1d_1_input to have 3 dimensions, but got array with shape (500000, 3253)
它给出了以下错误:

   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
/home/.local/lib/python2.7/site-packages/keras/models.py:834: UserWarning: The `nb_epoch` argument in `fit` has been renamed `epochs`.
  warnings.warn('The `nb_epoch` argument in `fit` '
Traceback (most recent call last):
  File "CNN_Based_Attack.py", line 113, in <module>
    model.fit(x_train, y_train, batch_size=15, nb_epoch=30)
  File "/home/.local/lib/python2.7/site-packages/keras/models.py", line 853, in fit
    initial_epoch=initial_epoch)
  File "/home/.local/lib/python2.7/site-packages/keras/engine/training.py", line 1424, in fit
    batch_size=batch_size)
  File "/home/.local/lib/python2.7/site-packages/keras/engine/training.py", line 1300, in _standardize_user_data
    exception_prefix='input')
  File "/home/.local/lib/python2.7/site-packages/keras/engine/training.py", line 127, in _standardize_input_data
    str(array.shape))
ValueError: Error when checking input: expected conv1d_1_input to have 3 dimensions, but got array with shape (500000, 3253)
/home/.local/lib/python2.7/site packages/keras/models.py:834:UserWarning:fit中的'nb_epoch'参数已重命名为'epochs'。
warnings.warn('fit'中的'nb_epoch'参数)
回溯(最近一次呼叫最后一次):
文件“CNN_-Based_-Attack.py”,第113行,在
模型拟合(x系列、y系列、批量尺寸=15、nb系列=30)
文件“/home/.local/lib/python2.7/site packages/keras/models.py”,第853行
初始_历元=初始_历元)
文件“/home/.local/lib/python2.7/site packages/keras/engine/training.py”,第1424行
批次大小=批次大小)
文件“/home/.local/lib/python2.7/site packages/keras/engine/training.py”,第1300行,在用户数据中
异常(前缀为“输入”)
文件“/home/.local/lib/python2.7/site packages/keras/engine/training.py”,第127行,输入数据
str(array.shape))
ValueError:检查输入时出错:预期conv1d_1_输入有3个维度,但得到了具有形状的数组(500003253)

我真的不知道怎么解决它

我假设您使用的是旧版本的Keras(因为,
nb_过滤器
已更改为
过滤器
,因此,您应该遵循旧文档(例如)

在第一个代码片段中,我假设问题出在这一部分:
input\u shape=input\u traces
Convolution1D
构造函数需要一个
元组,例如
(32100,3)
,但是
input\u traces
被初始化为Keras层

在第二个片段中,您传递了一个
tuple
,这是正确的。错误表明它期望
input\u形状
具有3维而不是2维。首先,我想指出
nb\u filter
表示“每批数据的过滤器数量”。因此,
input\u形状
还必须包括
bach\u size
(如果您不熟悉这个概念,那么有一个包含了您需要了解的有关批次的所有信息的示例)。因此,只需通过

Convolution1D(..., input_shape = (batch_size, data_length, numof_channels), ...)

而且一切都应该正常(如果你想知道什么是
numof\u通道,它类似于图像有3个通道:红色、绿色和蓝色)。如果你想拥有任意
bach\u大小
,你可以传递
input\u shape=(无,数据长度,numof\u通道)

非常感谢您的帮助,就我而言,我不分析图像,而是分析浮点数据(一些芯片消耗采集)因此,我没有任何通道,我必须把它们放在numod_通道=None@tierrytestu如果你只有浮点值,那么在你的例子中,
numof_channels=1
。我对Keras 1不是很熟悉,但我希望我的答案能起作用。