【发布时间】:2020-12-18 22:23:58
【问题描述】:
我正在尝试将xception 模型用于迁移学习任务。我知道在使用选项include_top=False 下载图像时,它需要图像的最小输入形状为(71, 71, 3)。
我面临的问题是,当我尝试将我的数据从 (48,48,3) 重塑为 (71,71,3) 时,我会遇到 RAM 问题并且我的系统会重新启动。我没有在外部重塑数据,而是在网络架构中对其进行重塑。当我尝试这样做时,出现以下错误..
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-44-a448922440e7> in <module>()
1 model = Sequential()
2 #model.add(Input(shape=(48,48,3)))
----> 3 model.add(tf.keras.layers.Reshape((71,71,3), input_shape=(48,48,3)))
4 #model.add(ReformatImage(71,71))
5 model.add(conv_base)
8 frames
/usr/local/lib/python3.6/dist-packages/tensorflow/python/keras/layers/core.py in _fix_unknown_dimension(self, input_shape, output_shape)
534 output_shape[unknown] = original // known
535 elif original != known:
--> 536 raise ValueError(msg)
537 return output_shape
538
ValueError: total size of new array must be unchanged, input_shape = [48, 48, 3], output_shape = [71, 71, 3]
我的代码如下
from tensorflow.keras.applications import Xception
conv_base = Xception(weights='imagenet',include_top=False,input_shape=(71,71,3))
conv_base.trainable = False
model = Sequential()
#model.add(Input(shape=(48,48,3)))
model.add(tf.keras.layers.Reshape((71,71,3), input_shape=(48,48,3)))
#model.add(ReformatImage(71,71))
model.add(conv_base)
model.add(Flatten())
model.add(Dense(1024, activation='relu'))
model.add(Dense(1024, activation='relu'))
model.add(BatchNormalization())
model.add(Dense(10, activation='softmax'))
model.summary()
有人可以指点我正确的方向,以便我可以解决这个问题吗?
【问题讨论】:
标签: python tensorflow transfer-learning