2016-12-21 10 views
10

Mam pewne doświadczenie w pisaniu programów uczących się maszyn w Pythonie, ale jestem nowy w TensorFlow i sprawdzam to. jest 64-bitową maszyną wirtualną lubaduu 14.04, w którym stworzyłem środowisko condon python 3.5 z minicondi i zainstalowałem TensorFlow 0.12 i jego zależności Zacząłem próbować uruchomić przykładowy kod z samouczków TensorFlow i napotkałem to ostrzeżenie, dzwoniąc pod numer fit() w bostonie .py przykładem funkcji wejściowych. sourceTensorFlow 0.12 samouczki generują ostrzeżenie: "Ranga wejściowego Tensora powinna być taka sama jak output_rank dla kolumny

UWAGA: tensorflow: Rank Tensor wejściowego (1) powinny być takie same jak output_rank (2) kolumna. Będzie próbował rozszerzyć dims. Jest wysoce zalecane, aby zmienić rozmiar danych wejściowych, ponieważ takie zachowanie może się zmienić.

Po pewnym wyszukiwania w Google, znalazłem inni napotkał ten sam ostrzeżenie:

one jednak również doświadczeni błędy, które uniemożliwiają wykonanie kodu od ukończenia. W moim przypadku kod wykonuje się z powyższym ostrzeżeniem. Niestety, nie znalazłem w tych linkach jednej odpowiedzi na pytanie, co spowodowało ostrzeżenie i jak naprawić ostrzeżenie. Wszyscy skupili się na błędzie. Jak usunąć ostrzeżenie? A może ostrzeżenie jest bezpieczne do zignorowania?

Pozdrawiam!

Dodatkowe informacje, widzę również następujące ostrzeżenia podczas uruchamiania powyższego przykładu boston.py.

UWAGA: tensorflow: **************************************** *************** OSTRZEŻENIE: tensorflow: format punktu kontrolnego V1 TensorFlow został uznany za przestarzały w stosunku do . OSTRZEŻENIE: tensorflow: Rozważ przejście na bardziej wydajny format V2: OSTRZEŻENIE: tensorflow:
'tf.train.Saver (write_version = tf.train.SaverDef.V2)' OSTRZEŻENIE: tensorflow: domyślnie włączony. OSTRZEŻENIE: tensorflow: **************************************** **********

i

UWAGA: tensorflow: Od /home/kade/miniconda3/envs/tensorflow/lib/python3.5/site-packages/ tensorflow/contrib/nauczyć/python/nauczyć/estymatory/dnn_linear_combined.py: 1053 w przewidzenia .: nazywając BaseEstimator.predict (od tensorflow.contrib.learn.python.learn.estimators.estimator) z X jest przestarzała i będzie zostaną usunięte po 2016-12-01. Instrukcje dotyczące aktualizacji : Estimator jest odłączony od interfejsu Scikit Learn, przenosząc do oddzielnej klasy SKCompat. Argumenty x, y i batch_size są dostępne tylko w klasie SKCompat, a Estimator akceptuje tylko input_fn. Przykładowa konwersja: est = Estimator (...) -> est = SKCompat (Estimator (...))

UPDATE (22.12.2016): mam śledzone ostrzeżenie do tego pliku: https://github.com/tensorflow/tensorflow/blob/master/tensorflow/contrib/layers/python/layers/feature_column_ops.py

i tego bloku kodu:

except NotImplementedError: 
    with variable_scope.variable_scope(
     None, 
     default_name=column.name, 
     values=columns_to_tensors.values()): 
     tensor = column._to_dense_tensor(transformed_tensor) 
     tensor = fc._reshape_real_valued_tensor(tensor, 2, column.name) 
     variable = [ 
      contrib_variables.model_variable(
       name='weight', 
       shape=[tensor.get_shape()[1], num_outputs], 
       initializer=init_ops.zeros_initializer(), 
       trainable=trainable, 
       collections=weight_collections) 
     ] 
     predictions = math_ops.matmul(tensor, variable[0], name='matmul') 

Zanotuj linia: tensor = fc._reshape_real_valued_tensor(tensor, 2, column.name)

Podpis metody: _reshape_real_valued_tensor(input_tensor, output_rank, column_name=None)

Wartość jest zakodowana jako wartość output_rank, ale przykład boston.py przechodzi w input_tensor 1. pozycji. Będę kontynuować dochodzenie.

+0

Mam do czynienia z tym samym problemem z niektórymi z mojego własnego kodu. Za każdym razem, gdy do kolumn elementów zostanie dodana kolumna "real_valued_", wygeneruje to ostrzeżenie. @TheTravelingCoder myślisz, że ta zakodowana wartość jest błędem/błędem? – wspeirs

+0

@speirs Kontynuowałem badanie tych ostrzeżeń. Z własnymi zestawami danych, z których korzystam, jestem całkiem pewien, że ostrzeżenia mogą być bezpiecznie ignorowane. Wyniki, które otrzymuję dzięki szkoleniom modelowym, wydają się dokładne, pomimo ostrzeżeń. Dlatego podejrzewam, że baza kodów TensorFlow jest po prostu bardzo surowa. Mam nadzieję zbadać kod źródłowy bardziej, aby odpowiedzieć na moje własne pytanie. Jeśli jesteś podobny do mnie i chcesz ukryć ostrzeżenie, możesz skomentować linię w contrib/layers/python/layers/feature_column.py. Szukaj: 'if output_rank == input_rank + 1:', znajdziesz logging.warning() wokół linii 1230. –

Odpowiedz

9

Jeśli podasz swój kształt tensora extenso:

tf.constant(df[k].values, shape=[df[k].size, 1]) 

ostrzeżenie powinien odejść.

0

Po wyraźnym określeniu kształtu tensora.

continuous_cols = {k: tf.constant(df[k].values, shape=[df[k].size, 1]) for k in CONTINUOUS_COLUMNS} 

Działa!

Powiązane problemy