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
Keras(Tensorflow)重塑图层输入错误_Tensorflow_Keras_Keras Layer_Tf.keras - Fatal编程技术网

Keras(Tensorflow)重塑图层输入错误

Keras(Tensorflow)重塑图层输入错误,tensorflow,keras,keras-layer,tf.keras,Tensorflow,Keras,Keras Layer,Tf.keras,我有一个重塑输入错误,我不知道为什么。 请求的形状是1058400,即(121168)乘以批量大小50。 我不明白的是677376的表观输入大小。 我不知道这个值是从哪里来的。重塑之前的层是一个展平层,我在定义重塑层的目标形状时直接使用它的形状 该模型编译得很好,我使用Tensorflow作为后端,因此它是在运行时之前定义的。但只有在我输入日期时,错误才会出现 代码: 将numpy导入为np 导入tensorflow作为tf 将keras.backend作为K导入 从keras导入模型 从ker

我有一个重塑输入错误,我不知道为什么。 请求的形状是1058400,即(121168)乘以批量大小50。 我不明白的是677376的表观输入大小。 我不知道这个值是从哪里来的。重塑之前的层是一个展平层,我在定义重塑层的目标形状时直接使用它的形状

该模型编译得很好,我使用Tensorflow作为后端,因此它是在运行时之前定义的。但只有在我输入日期时,错误才会出现

代码:

将numpy导入为np
导入tensorflow作为tf
将keras.backend作为K导入
从keras导入模型
从keras.layers导入LSTM、Conv2D、稠密、展平、输入、重塑
从keras.optimizers导入Adam
config=tf.ConfigProto(allow\u soft\u placement=True)
sess=tf.Session(config=config)
K.SETU会话(sess)
输入=输入(批次形状=(502302301))
conv1=Conv2D(
过滤器=12,内核大小=(7,7),步幅=(1,1),padding=“valid”,activation=“relu”
)(输入)
conv2=Conv2D(
过滤器=24,内核大小=(5,5),步幅=(1,1),padding=“valid”,activation=“relu”
)(1)
conv3=Conv2D(
过滤器=48,内核大小=(3,3),步幅=(2,2),padding=“valid”,activation=“relu”
)(2)
conv4=Conv2D(
过滤器=48,内核大小=(5,5),步幅=(5,5),padding=“valid”,activation=“relu”
)(3)
conv_out=Flatten()(conv4)
conv_out=重塑(目标形状=(1,int(conv_out.shape[1]))(conv_out)
conv_out=密集(128,activation=“relu”)(conv_out)
rnn_1=LSTM(128,有状态=True,返回序列=True)(conv_out)
rnn_2=LSTM(128,有状态=True,返回序列=True)(rnn_1)
rnn_3=LSTM(128,有状态=True,返回序列=False)(rnn_2)
值=密集(1,激活=“线性”)(rnn_3)
策略=密集(5,activation=“softmax”)(rnn_3)
模型=模型(输入=输入,输出=[值,策略])
亚当=亚当(lr=0.001)
compile(loss=“mse”,optimizer=adam)
model.summary()
out=model.predict(np.random.randint(1,5,size=(50230230,1)))
打印(输出)
总结:

__________________________________________________________________________________________________
层(类型)输出形状参数#连接到
==================================================================================================
输入_1(输入层)(502302301)0
__________________________________________________________________________________________________
conv2d(conv2d)(5022422412)600输入_1[0][0]
__________________________________________________________________________________________________
conv2d_1(conv2d)(50,220,220,24)7224 conv2d[0][0]
__________________________________________________________________________________________________
conv2d_2(conv2d)(50,109,109,48)10416 conv2d_1[0][0]
__________________________________________________________________________________________________
conv2d_3(conv2d)(50,21,21,48)57648 conv2d_2[0][0]
__________________________________________________________________________________________________
展平(展平)(5021168)0 conv2d_3[0][0]
__________________________________________________________________________________________________
重塑(重塑)(50,121168)0展平[0][0]
__________________________________________________________________________________________________
稠密的(稠密的)(50,1128)2709632重塑[0][0]
__________________________________________________________________________________________________
lstm(lstm)(50,1128)131584密度[0][0]
__________________________________________________________________________________________________
lstm_1(lstm)(50,1128)131584 lstm[0][0]
__________________________________________________________________________________________________
lstm_2(lstm)(50128)131584 lstm_1[0][0]
__________________________________________________________________________________________________
稠密1(稠密)(50,1)129 lstm2[0][0]
__________________________________________________________________________________________________
稠密的(50,5)645lstm_2[0][0]
==================================================================================================
总参数:3181046
可培训参数:3181046
不可训练参数:0
编辑:

上述代码的错误:

回溯(最近一次呼叫最后一次):
文件“foo.py”,第45行,在
out=model.predict(np.random.randint(1,5,size=(50230230,1)))
文件“/home/vyz/.conda/envs/stackoverflow/lib/python3.6/site packages/keras/engine/training.py”,第1157行,在predict中
'批量大小:'+str(批量大小)+'。)
ValueError:在一个有状态的网络中,您应该只传递样本数可以除以批量大小的输入。发现:50个样本。批量:32。
问题的版本 重要提示:我已编辑了您的问题,因此它实际运行并代表您的问题<代码>输入应采用当前提供的
批处理形状
。下次请确保您的代码正常工作,这样会更容易

解决方案 解决办法很简单;传递到网络的批具有错误的维度

677376/21168=32
它是默认大小
out = model.predict(np.random.randint(1, 5, size=(50, 230, 230, 1)), batch_size=50)