输入图片像素改变应怎样修改参数?
来源:6-8 编写训练神经网络的方法(上)
Zoomgee_W
2019-07-19
老师,我下载的人脸训练集图片像素都是178*218的,我修改了network.py里面input_shape=(178,128,3),也改了train文件里训练图片集的地址,但运行train的时候报错:MemoryError,错误截图如下:
请问是什么原因导致的呢?是还需要改别的地方吗?谢谢~
写回答
1回答
-
Oscar
2019-09-25
你改了这个图片的长宽不一样,会比较麻烦,需要对应修改例如判别器和生成器里的数值:
# 定义判别器模型 def discriminator_model(): model = tf.keras.models.Sequential() model.add(tf.keras.layers.Conv2D( 64, # 64 个过滤器,输出的深度(depth)是 64 (5, 5), # 过滤器在二维的大小是(5 * 5) padding='same', # same 表示输出的大小不变,因此需要在外围补零2圈 input_shape=(64, 64, 3) # 输入形状 [64, 64, 3]。3 表示 RGB 三原色 )) model.add(tf.keras.layers.Activation("tanh")) # 添加 Tanh 激活层 model.add(tf.keras.layers.MaxPool2D(pool_size=(2, 2))) # 池化层 model.add(tf.keras.layers.Conv2D(128, (5, 5))) model.add(tf.keras.layers.Activation("tanh")) model.add(tf.keras.layers.MaxPool2D(pool_size=(2, 2))) model.add(tf.keras.layers.Conv2D(128, (5, 5))) model.add(tf.keras.layers.Activation("tanh")) model.add(tf.keras.layers.MaxPool2D(pool_size=(2, 2))) model.add(tf.keras.layers.Flatten()) # 扁平化 model.add(tf.keras.layers.Dense(1024)) # 1024 个神经元的全连接层 model.add(tf.keras.layers.Activation("tanh")) model.add(tf.keras.layers.Dense(1)) # 1 个神经元的全连接层 model.add(tf.keras.layers.Activation("sigmoid")) # 添加 Sigmoid 激活层 return model # 定义生成器模型 # 从随机数来生成图片 def generator_model(): model = tf.keras.models.Sequential() # 输入的维度是 100, 输出维度(神经元个数)是1024 的全连接层 model.add(tf.keras.layers.Dense(input_dim=100, units=1024)) model.add(tf.keras.layers.Activation("tanh")) model.add(tf.keras.layers.Dense(128 * 8 * 8)) # 8192 个神经元的全连接层 model.add(tf.keras.layers.BatchNormalization()) # 批标准化 model.add(tf.keras.layers.Activation("tanh")) model.add(tf.keras.layers.Reshape((8, 8, 128), input_shape=(128 * 8 * 8, ))) # 8 x 8 像素 model.add(tf.keras.layers.UpSampling2D(size=(2, 2))) # 16 x 16像素 model.add(tf.keras.layers.Conv2D(128, (5, 5), padding="same")) model.add(tf.keras.layers.Activation("tanh")) model.add(tf.keras.layers.UpSampling2D(size=(2, 2))) # 32 x 32像素 model.add(tf.keras.layers.Conv2D(128, (5, 5), padding="same")) model.add(tf.keras.layers.Activation("tanh")) model.add(tf.keras.layers.UpSampling2D(size=(2, 2))) # 64 x 64像素 model.add(tf.keras.layers.Conv2D(3, (5, 5), padding="same")) model.add(tf.keras.layers.Activation("tanh")) return model
012019-09-25
相似问题