这个 Keras 模型使用 Tensorflow 后端似乎需要 6GB 以上的 RAM。我粗略的计算表明,存储权重不应超过 500MB。这是怎么回事?
from keras.models import Sequential
from keras.layers.core import Dense, Activation, Dropout, Flatten
from keras.layers.convolutional import Convolution2D, MaxPooling2D
IMAGE_SIZE = 128
print('Build model...')
model = Sequential()
# three color channels, 128x128
# 16 con filters, 3 rows, 3 columns
model.add(Convolution2D(16, 3, 3, input_shape=(3, IMAGE_SIZE, IMAGE_SIZE)))
model.add(Activation('relu'))
model.add(Flatten())
model.add(Dense(1))
model.add(Dense(3 * IMAGE_SIZE * IMAGE_SIZE))
model.compile(loss='mse', optimizer='sgd')
它是一个连接到单个神经元的卷积层(16 个 3x3 过滤器),然后该单个神经元连接到约 50k 个神经元。
我对 Keras 很陌生,所以我想我的误解是非常根本的,但我似乎无法弄清楚。