• 🏡 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

precision-and-recall-precision-recupero-trade-off-data-science-machine-learning-spiegazione-semplice-italiano-precisione-recupero

Precision and Recall con F1 Score | Precisione e Recupero

Settembre 28, 2019
tensorflow-extended-tfx-deploy-machine-learning-guide-machine-learning-pipelines

TensorFlow Extended (TFX) | Production Machine Learning Pipeline

Dicembre 6, 2020
trusting-ai-fairness-artificial-intelligence-ibm-ai-360-ai-explainability-360-open-source-toolkit-data-science-machine-learning

Trusting AI Fairness

Gennaio 3, 2020
Next Post
Previous Post

Una pubblicità che non vedi se usi AdBlock

EXPAND YOUR KNOWLEDGE

  • Blockchain Developer

    Circuito aritmetico

    Novembre 1, 2022
  • machine-learning

    Un nuovo inizio

    Settembre 4, 2021
  • Zero Knwoledge Proof Article Privacy Preserving

    Zero Knowledge Proof: zk-SNARK e zk-STARK | Prova a conoscenza zero

    Luglio 8, 2021
  • oblivious-transfer-spiegazione-italiano-ot-explanation Privacy Preserving

    Oblivious Transfer (OT)

    Luglio 6, 2021
  • Aleo Studio Website Preview machine-learning

    Aleo Studio: un IDE per Zero-Knowledge Proofs Applications

    Luglio 1, 2021
  • privacy-enhancing-technologies-data-machine-learning-data-science Privacy Preserving

    Perché il Privacy Tech è un vantaggio competitivo micidiale

    Giugno 17, 2021
  • bloom-filter-spiegazione-italian Privacy Preserving

    Bloom Filter

    Giugno 3, 2021
  • trusted-execution-environment-tee-data-science-come-fuziona Data Science, Privacy Preserving

    Trusted Execution Environment | Cos’è un TEE?

    Giugno 2, 2021
  • Crypto Custody services machine-learning

    Crypto Custody: Guida alla custodia delle criptomonete

    Maggio 26, 2021
  • deep-q-learning-q-learning-reinforcement-learning machine-learning

    Deep Q-Learning

    Aprile 27, 2021

Quello che Google pensa ti possa piacere

Prodotti che i Cookie dicono potresti trovare interessanti

AI Blog - © 2019-2021 Andrea Provino