Erro de memória usando Theano em AWS GPU

votos
1

Eu estou construindo um simples uma rede feedforward para uma tarefa de classificação. Eu estou usando keras no topo de Teano na instância g2.2xlarge AWS. Minha configuração de rede é a seguinte:

batch_size = 32
nb_epoch = 50
dimof_input = 8100
dimof_middle = 16384
dimof_end = 16384
dropout = 0.2
dimof_output = 3

print('Build model...')

model = Sequential()
model.add(Dense(dimof_middle, input_shape=(dimof_input,)))
model.add(Activation('relu'))
model.add(Dropout(0.2))

model.add(Dense(dimof_end))
model.add(Activation('relu'))
model.add(Dropout(0.2))

#model.add(Dense(dimof_output))
#model.add(Activation('sigmoid'))
#model.add(Dense(dimof_output, activation='softmax'))

model.add(Dense(dimof_output))
model.add(Activation('softmax'))

model.compile(loss='categorical_crossentropy', optimizer='adam')

Quando eu compilar o modelo, eu recebo MemoryError

MemoryError: ('Error allocating 1073741824 bytes of device memory (CNMEM_STATUS_OUT_OF_MEMORY).', you might consider using 'theano.shared(..., borrow=True)')

De AWS esta é uma memória de vídeo de 4 GB, 16 GB máquina de carneiro. Se eu metade do valor de 'dimof_middle' para 8196. tudo corre bem.

1073741824 bytes ~ 1 GB que está bem dentro da memória GPU

Que mal eu estou fazendo? Qualquer ajuda seria muito apreciada!

Publicado 03/03/2016 em 07:43
fonte usuário
Em outras línguas...                            


1 respostas

votos
1

A mensagem de erro não é sobre a quantidade total de memória alocada. Trata-se da quantidade que ele estava tentando alocar quando falhou. Theano aloca e desaloca memória durante a computação.

Você pode desativar CNMeM e usar nvidia-SMI para descobrir alocação real.

http://deeplearning.net/software/theano/library/config.html#envvar-THEANORC

Respondeu 04/03/2016 em 07:42
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more