Treinamento de detecção de objetos em fluxo tensor morto, falta de recursos?
Esta pergunta foi parcialmente feitaaqui eaqui sem acompanhamento, talvez esse não seja o local para fazer essa pergunta, mas eu descobri um pouco mais de informação que espero que possa obter uma resposta para essas perguntas.
Eu tenho tentado treinar object_detection em minha própria biblioteca de aproximadamente 1k fotos. Eu tenho usado o arquivo de configuração de pipeline fornecido "ssd_inception_v2_pets.config". E eu configurei os dados do treinamento corretamente, acredito. O programa parece começar a treinar muito bem. Quando não conseguiu ler os dados, alertou com um erro e eu o corrigi.
Minhas configurações de train_config são as seguintes, embora eu tenha alterado alguns dos números para tentar executá-lo com menos recursos.
train_config: {
batch_size: 1000 #also tried 1, 10, and 100
optimizer {
rms_prop_optimizer: {
learning_rate: {
exponential_decay_learning_rate {
initial_learning_rate: 0.04 # also tried .004
decay_steps: 800 # also tried 800720. 80072
decay_factor: 0.95
}
}
momentum_optimizer_value: 0.9
decay: 0.9
epsilon: 1.0
}
}
fine_tune_checkpoint: "~/Downloads/ssd_inception_v2_coco_11_06_2017/model.ckpt" #using inception checkpoint
from_detection_checkpoint: true
data_augmentation_options {
random_horizontal_flip {
}
}
data_augmentation_options {
ssd_random_crop {
}
}
}
Basicamente, o que eu acho que está acontecendo é que o computador está ficando sem recursos muito rapidamente, e estou me perguntando se alguém tem uma otimização que leva mais tempo para ser construída, mas usa menos recursos?
Ou estou errado sobre o motivo pelo qual o processo está sendo interrompido e existe uma maneira de obter mais informações sobre isso no kernel?
Essas são as informações do Dmesg que eu recebo após o término do processo.
[711708.975215] Out of memory: Kill process 22087 (python) score 517 or sacrifice child
[711708.975221] Killed process 22087 (python) total-vm:9086536kB, anon-rss:6114136kB, file-rss:24kB, shmem-rss:0kB