如何解决如何在多个图像输入中使用Conv2D?
我想使用多个图像作为网络的输入。我想添加Conv2D
层,像这样:
from tensorflow.keras.layers import *
from tensorflow.keras.models import Sequential
model = Sequential([
Input(shape=(1,128,1)),Conv2D(32,3),Flatten(),])
但是此代码引发错误:Input 0 of layer conv2d_40 is incompatible with the layer: expected ndim=4,found ndim=5. Full shape received: [None,1,1]
但是下面的代码运行正常:
model = Sequential([
Input(shape=(1,512,Dense(32),])
我知道,我可以添加多个Input
层,但是我想知道有没有办法做到这一点?
我的意思是我想使用输入形状为[NUMBER_OF_IMAGES,WIDTH,HEIGHT,N_CHANNELS]
的数据
NUMBER_OF_IMAGES
并不代表全部图像。这是当前输入的金额
解决方法
Conv2D
需要4D输入,您无法更改。我不确定您要完成什么,但可以改用Conv3D
:
from tensorflow.keras.layers import *
from tensorflow.keras.models import Sequential
import tensorflow as tf
model = Sequential([
Input(shape=(None,128,1)),Conv3D(32,kernel_size=(1,3,3)),Flatten()
])
multiple_images = tf.random.uniform((10,10,1),dtype=tf.float32)
model(multiple_images)
<tf.Tensor: shape=(10,5080320),dtype=float32,numpy=
array([[-0.26742983,-0.09689523,-0.12120364,...,-0.02987139,0.05515741,0.12026916],[-0.18898709,0.12448274,-0.17439063,0.23424357,-0.06001307,-0.13852882],[-0.14464797,0.26356792,-0.34748033,0.07819699,-0.11639086,0.10701762],[-0.1536693,0.13642962,-0.18564,0.07165999,-0.0173855,-0.04348694],[-0.32320747,0.09207243,-0.22274591,0.11940736,-0.02635285,-0.1140241 ],[-0.21126074,-0.00094431,-0.10933039,0.06002581,-0.09649743,0.09335127]],dtype=float32)>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。