• 🏡 Home
  • 🚨 GDPR Compliant
  • ⚡️ Data Science
  • 📌 Machine Learning
  • 🔒 Privacy Preserving
  • 🏡 Home
  • 🚨 GDPR Compliant
  • ⚡️ Data Science
  • 📌 Machine Learning
  • 🔒 Privacy Preserving
Guide

Memory Allocation Problem con tensorflow-gpu? La soluzione!

Memory Allocation Problem con tensorflow-gpu? La soluzione!

Allocation of 1931371200 exceeds 10% of system memory. Oppure,
Allocation of 9437184 exceeds 10% of system memory, genericamente:
allocation of ‘numero allucinante‘ exceeds 10% of system bla bla.

Suona familiare?

Nei primi esperimenti con tensorflow–gpu mi è capitato più di una volta di incappare in questo spiacevole errore:

Allocation of [x] exceeds 10% of system memory

Il computer cerca di usare più memoria di quanta non ne sia materialmente disponibile e il risultato è il blocco degli script o errori a catena che impediscono ogni successiva procedura.

In questa pagina, ho raccolto alcuni consigli che ho adottato in passato e che mi hanno salvato la vita più di una volta.

Vediamone alcune.

Libera memoria RAM

Spesso la quanità di memoria in ‘overbooking’ è così limitata che chiudere qualche programma particolarmente pesante può fare la differenza.

Riduci il batchsize

In alcuni script è possibile ridurre il batchsize, specie in sessioni di training o di transfer learning, in cui questo valore può risultare fatale. Ricordati che conviene usare multipli di 2. Batch size = 2, 4, 6, 8, 16, 32, etc. 

Riduci il dataset

La dimensioni dei file da gestire durante l’esecuzione di uno script è il principale responsabile del problema. Se le precedenti soluzioni non dovessero funzionare, potrebbe essere necessaria una modifica radicale: cambiare il dataset.

In caso di training, potresti provare a comprimere le immagini con un tool online.

Puoi anche tagliarle e lavorare su immagini più piccole. 

Imposta i limiti

Questa è una soluzione concreta, rispetto agli altri che sono semplici consigli. Usando tensorflow, i tuoi script dovranno, prima o poi, inizializzare la libreria e chiamare una session. Trova quindi, all’interno dei file, il listato:

tf.Session()

E modifica come segue:

gpu_options = tf.GPUOptions(per_process_gpu_memory_fraction=x)
tf.Session(config=tf.ConfigProto(gpu_options=gpu_options))

Sostituendo la x con una frazione da 0 a 1. Con una 1070 uso 0.7444. E’ appena sotto il limite di memoria utilizzabile (nonostante abbia 8GB, solo 6,1 circa sono occupabili)

Il cloud

L’ultima spiaggia, cambiare computer. Con alcune ricerche online è possibile accedere a diversi servizi che mettono a disposizione, a costi vantaggiosi e non, potenza di calcolo da vendere. 

Alla prossima!

Un caldo abbraccio, Andrea.

Written by Andrea Provino - Dicembre 26, 2018
Tags | guida, machine learning, tensorflow

You Might Also Like

come-diventare-data-scientist-machine-leanring-data-science-italia-guida

Come diventare Data Scientist: errori da evitare

Ottobre 29, 2020

Scikit-Learn Design Principles Guida | Data Science con Python

Settembre 25, 2019
homomorphic-encryption-additive-secret-sharing-data-science-machine-learning-differential-privacy-federated-learning-scaled

Homomorphic Encryption and Additive Secret Sharing | Python Code

Febbraio 11, 2020
Next Post
Previous Post

Una pubblicità che non vedi se usi AdBlock

EXPAND YOUR KNOWLEDGE

  • rust-react-webassembly-privacy-preserving-machine-learning Logs

    Rust, WebAssembly, React e un MVP

    Dicembre 21, 2020
  • diffie-hellman-key-exchange-protocol-scambio-di-chiavi-diffie-hellman Data Science, Privacy Preserving

    Cos’è lo scambio di chiavi Diffie-Hellman (DH)? | Privacy Preserving

    Dicembre 15, 2020
  • principio-di-esattezza-data-science-machine-learning-gdpr-data-accuracy Data Science, GDPR Compliant

    GDPR: Principio di esattezza dei dati (Data Accuracy)

    Dicembre 12, 2020
  • tensorflow-extended-tfx-deploy-machine-learning-guide-machine-learning-pipelines machine-learning

    TFX: come funziona Tensorflow Extended?

    Dicembre 9, 2020
  • tensorflow-extended-tfx-deploy-machine-learning-guide-machine-learning-pipelines machine-learning

    TensorFlow Extended (TFX) | Production Machine Learning Pipeline

    Dicembre 6, 2020
  • mean-shift-clustering-guida-italiano-spiegazione-semplice-algoritmo-di-clustering-esempio Data Science

    Mean-Shift Clustering

    Dicembre 3, 2020
  • data-minimization-principle-gdpr-principio-minimizzazione-dati-personali-gdpr-italia-consulenza-spiegazione-semplice Data Science, GDPR Compliant

    GDPR: Principio di minimizzazione dei dati (Data minimization)

    Dicembre 1, 2020
  • machine-learning-for-finance-trading-online-data-science-deep-learning-intelligenza-artificiale AI, machine-learning

    FinTech: Machine Learning for Finance (FinML) | Guide e Risorse di qualità

    Novembre 29, 2020
  • gdpr-principio-di-limitazione-della-finalita-machine-learning-data-science-guida-prupose-limitation-gdpr Data Science, GDPR Compliant

    GDPR: Principio di Limitazione della finalità | Purpose Limitation

    Novembre 26, 2020
  • machine-learning-engineer-lavoro-stipendio-responsabilità-come-diventare AI, Business, machine-learning

    Machine Learning Engineer

    Novembre 23, 2020

Quello che Google pensa ti possa piacere

Prodotti che i Cookie dicono potresti trovare interessanti

AI Blog - © 2019-2021 Andrea Provino