2016-02-19 17 views
5

C'è stato un cambiamento nel comportamento tra le versioni 0.7 e 0.6 in sparse_to_dense che ora richiede che gli indici siano ordinati lessicograficamente. Questo è un requisito un po 'oneroso per alcuni dei miei usi perché il modo in cui generi gli indici è abbinato al modo in cui generi gli elementi (terzo argomento di sparse_to_dense) e l'ordinamento di entrambi è un po' complicato. Vedo che l'opzione validate_indices può essere impostata su False per ignorarlo. È sicuro farlo? Perché il requisito in primo luogo?sparse_to_dense richiede che gli indici siano ordinati lessicograficamente in 0,7

risposta

6

Guardando all'attuale implementazione per tensorflow::sparse::SparseTensor::ToDense<T>(), sembra che la conversione non dipenda dall'ordine degli indici. Pertanto, è possibile eseguire tf.sparse_to_dense(sparse_indices, ..., validate_indices=False) su sparse_indices non selezionato. Un risultato coerente verrà prodotto fino a quando non ci saranno indici duplicati (altrimenti sembra che l'attuale implementazione vince l'ultimo autore, ma ciò non è garantito nell'API).

Sembra che il requisito per gli indici ordinati lessicograficamente deriva dalla volontà di verificare che non ci siano duplicati in sparse_indices. È possibile controllare la proprietà dell'ordine e senza duplicati con una semplice scansione sul tensore degli indici (solo considerando le righe i e i - 1), mentre il controllo dei duplicati in modo indipendente dall'ordine è più costoso. Dal momento che c'è un vantaggio limitato al controllo più prudente e un potenziale lato negativo delle prestazioni, abbiamo scelto di non implementarlo, ma la documentazione potrebbe essere più chiara su questo punto!

+1

Grazie per il chiarimento. Questo funziona per i miei scopi. Sarebbe bello se la specifica venisse aggiornata per riflettere il fatto che con 'validate_indices = False' è ok passare gli indici non sovrannaturali non sovrabbondanti, poiché farò affidamento su questo comportamento e sarà un problema se cambierà senza preavviso. –

Problemi correlati