Tensorflow: TF 1.x: hapus pesan peringatan "usang"

Dibuat pada 22 Mar 2019  ·  29Komentar  ·  Sumber: tensorflow/tensorflow

Saya tahu API fungsional, seperti tf.layers.dense, akan hilang di TF 2.0. Namun, alternatif mereka, tf.keras.layers, tidak kompatibel dengan komponen lain dari TF 1.x, misalnya, mereka bahkan tidak mendukung ruang lingkup variabel (#27016). Jadi saya akan tetap menggunakan API yang sudah usang di TF 1.x.
Bisakah Anda menghapus pesan peringatan "usang" yang menjijikkan seperti ini: xxx (from tensorflow.python.layers.core) is deprecated and will be removed in a future version. Use keras.layers.xxx instead.

Komentar yang paling membantu

Hanya pada 1.14.0 ini berfungsi:

import tensorflow as tf
tf.compat.v1.logging.set_verbosity(tf.compat.v1.logging.ERROR)

Semua 29 komentar

Anda dapat menggunakan ini:-
impor os
impor tensorflow sebagai tf
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '3'

Secara rinci:-
0 = semua pesan dicatat (perilaku default)
1 = Pesan INFO tidak tercetak
2 = Pesan INFO dan PERINGATAN tidak tercetak
3 = Pesan INFO, WARNING, dan ERROR tidak tercetak

ini adalah apa yang telah saya gunakan selama bertahun-tahun
itu tidak bisa menghentikan peringatan penghentian

Omong-omong, sebelum menghentikan komponen lama, bisakah Anda menyelesaikan fungsionalitas saat ini? Lihat #27042. Tampaknya TF sangat baik dalam mencela fungsi yang digunakan secara luas, tetapi buruk dalam meningkatkan titik lemahnya

Pesan penghentian diperlukan untuk memberi tahu orang-orang yang ingin menggunakan versi TensorFlow yang sebenarnya tentang apa yang akan terjadi di masa mendatang, dan memberi mereka waktu untuk beradaptasi.

Karena itu, kami tidak dapat menghapus pesan ini. Anda dapat menonaktifkannya sendiri menggunakan API pribadi ini

import tensorflow.python.util.deprecation as deprecation
deprecation._PRINT_DEPRECATION_WARNINGS = False

Terima kasih
Lihat #27045, ada saran?

Kode ini memberi saya kesalahan:

import tensorflow.python.util.deprecation as deprecation
deprecation._PRINT_DEPRECATION_WARNINGS = False
AttributeError: module 'tensorflow' has no attribute 'python'

Tetapi mengubah baris impor membuatnya berfungsi (dan menekan peringatan penghentian seperti yang diinginkan):

from tensorflow.python.util import deprecation
deprecation._PRINT_DEPRECATION_WARNINGS = False

Terima kasih

@skylogic004 apakah ini dari nightly/build baru-baru ini dari sumber dari master baru-baru ini?

@mihaimaruseac Oh, saya menggunakan tf 1.13 dari anaconda (saya tidak terbiasa dengan cabang & build apa yang akan berasal dari awalnya, maaf, tapi mungkin ini cukup info untuk Anda?).

$ python
Python 3.6.6 | packaged by conda-forge | (default, Jul 26 2018, 11:48:23) [MSC v.1900 64 bit (AMD64)] on win32  
Type "help", "copyright", "credits" or "license" for more information.                                          
>>> import tensorflow as tf                                                                                     
>>> tf.__version__                                                                                              
'1.13.1'                                                                                                        

$ conda list | grep tensor
tensorboard               1.13.1           py36h33f27b4_0
tensorflow                1.13.1          gpu_py36h1635174_0
tensorflow-base           1.13.1          gpu_py36h0fff12a_0
tensorflow-estimator      1.13.0                     py_0
tensorflow-gpu            1.13.1               h0d30ee6_0

Tautan ke paket anaconda: https://anaconda.org/anaconda/tensorflow-gpu

Maka itu bukan sesuatu yang harus saya khawatirkan (konteks penuh: selama seminggu terakhir ada beberapa kegagalan pada impor karena beberapa perubahan yang saya buat; tetapi itu hanya pada kode master, yang sepertinya tidak demikian)

Peringatan penghentian penting bagi pengembang. Mereka mungkin tidak terlalu berguna bagi pengguna. Oleh karena itu ada situasi di mana diinginkan untuk mematikannya.

Python memiliki sys.warnoptions yang misalnya diatur melalui PYTHONWARNINGS , misalnya:
PYTHONWARNINGS=ignore .

TensorFlow memiliki opsi TF_CPP_MIN_LOG_LEVEL seperti yang ditunjukkan sebelumnya.

Dan ada juga API logging TensorFlow Python (yang saya yakini berfungsi sebelumnya):

import tensorflow as tf

tf.compat.v1.logging.set_verbosity(tf.compat.v1.logging.ERROR)

Bahwa tidak ada opsi di atas yang mencegah pesan peringatan dicetak tampaknya merupakan bug.

Bendera _PRINT_DEPRECATION_WARNINGS tampaknya internal dan dapat dihapus kapan saja.

EDIT: Maaf, saya membingungkan numpy FuturreWarning s untuk peringatan tensorflow. Opsi terakhir untuk mengatur level logging umumnya masih berfungsi.

Hanya pada 1.14.0 ini berfungsi:

import tensorflow as tf
tf.compat.v1.logging.set_verbosity(tf.compat.v1.logging.ERROR)

Untuk r1.14 dan seterusnya, coba ini:

try:
    from tensorflow.python.util import module_wrapper as deprecation
except ImportError:
    from tensorflow.python.util import deprecation_wrapper as deprecation
deprecation._PER_MODULE_WARNING_LIMIT = 0

Bagaimanapun, itu bersifat internal dan dapat berubah.

Atau beralih ke TF2.0 di mana peringatan penghentian dihapus (jika tidak diperlukan).

Kecuali jika Anda menggunakan pilihan IDE yang bagus :p
Satu-satunya hal yang membuat saya mundur adalah masalah pelengkapan otomatis sehingga permintaan penghentian ini valid.

Pelengkapan otomatis sebagian besar telah diselesaikan

Mencoba semua yang telah disarankan:

os.environ['TF_CPP_MIN_LOG_LEVEL'] = '3'
import tensorflow as tf
tf.compat.v1.logging.set_verbosity(tf.compat.v1.logging.ERROR)
from tensorflow.python.util import deprecation
deprecation._PRINT_DEPRECATION_WARNINGS = False
try:
    from tensorflow.python.util import module_wrapper as deprecation
except ImportError:
    from tensorflow.python.util import deprecation_wrapper as deprecation
deprecation._PER_MODULE_WARNING_LIMIT = 0

Namun, memiliki setumpuk peringatan.

/usr/local/lib/python3.6/dist-packages/tensorflow/python/framework/dtypes.py:516: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.
  _np_qint8 = np.dtype([("qint8", np.int8, 1)])
/usr/local/lib/python3.6/dist-packages/tensorflow/python/framework/dtypes.py:517: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.
  _np_quint8 = np.dtype([("quint8", np.uint8, 1)])
/usr/local/lib/python3.6/dist-packages/tensorflow/python/framework/dtypes.py:518: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.
  _np_qint16 = np.dtype([("qint16", np.int16, 1)])
/usr/local/lib/python3.6/dist-packages/tensorflow/python/framework/dtypes.py:519: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.
  _np_quint16 = np.dtype([("quint16", np.uint16, 1)])
/usr/local/lib/python3.6/dist-packages/tensorflow/python/framework/dtypes.py:520: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.
  _np_qint32 = np.dtype([("qint32", np.int32, 1)])
/usr/local/lib/python3.6/dist-packages/tensorflow/python/framework/dtypes.py:525: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.
  np_resource = np.dtype([("resource", np.ubyte, 1)])
/usr/local/lib/python3.6/dist-packages/tensorboard/compat/tensorflow_stub/dtypes.py:541: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.
  _np_qint8 = np.dtype([("qint8", np.int8, 1)])
/usr/local/lib/python3.6/dist-packages/tensorboard/compat/tensorflow_stub/dtypes.py:542: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.
  _np_quint8 = np.dtype([("quint8", np.uint8, 1)])
/usr/local/lib/python3.6/dist-packages/tensorboard/compat/tensorflow_stub/dtypes.py:543: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.
  _np_qint16 = np.dtype([("qint16", np.int16, 1)])
/usr/local/lib/python3.6/dist-packages/tensorboard/compat/tensorflow_stub/dtypes.py:544: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.
  _np_quint16 = np.dtype([("quint16", np.uint16, 1)])
/usr/local/lib/python3.6/dist-packages/tensorboard/compat/tensorflow_stub/dtypes.py:545: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.
  _np_qint32 = np.dtype([("qint32", np.int32, 1)])
/usr/local/lib/python3.6/dist-packages/tensorboard/compat/tensorflow_stub/dtypes.py:550: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.
  np_resource = np.dtype([("resource", np.ubyte, 1)])
TF version 1.14.0

Ubuntu 16.04
Python 3.6.8

@pyotr777 Untuk peringatan

warnings.filterwarnings('ignore', category=DeprecationWarning)
warnings.filterwarnings('ignore', category=FutureWarning)

@pyotr777 itu berasal dari numpy. Anda menggunakan versi numpy yang sedikit tidak kompatibel dengan versi TF yang Anda gunakan.

Dengan risiko mendapatkan lebih banyak downvotes, silakan beralih ke 2.0

Peringatan Masa Depan

import warnings
warnings.filterwarnings('ignore', category=DeprecationWarning)
warnings.filterwarnings('ignore', category=FutureWarning)

tidak menekan

/usr/local/lib/python3.7/site-packages/tensorflow/python/framework/dtypes.py:516: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.
  _np_qint8 = np.dtype([("qint8", np.int8, 1)])

Bagi saya ini berfungsi untuk peringatan t2.0

import tensorflow as tf
tf.get_logger().warning('test')
# WARNING:tensorflow:test
tf.get_logger().setLevel('ERROR')
tf.get_logger().warning('test')

FYI Logging di TensorFlow berubah karena TF_CPP_MIN_LOG_LEVEL tidak berfungsi lagi

Namun, memiliki setumpuk peringatan.

/usr/local/lib/python3.6/dist-packages/tensorflow/python/framework/dtypes.py:516: FutureWarning: Melewati (type, 1) atau '1type' sebagai sinonim dari type tidak digunakan lagi; dalam versi numpy yang akan datang, itu akan dipahami sebagai (type, (1,)) / '(1,)type'.
_np_qint8 = np.dtype([("qint8", np.int8, 1)])
/usr/local/lib/python3.6/dist-packages/tensorflow/python/framework/dtypes.py:517: FutureWarning: Melewati (type, 1) atau '1type' sebagai sinonim dari type tidak digunakan lagi; dalam versi numpy yang akan datang, itu akan dipahami sebagai (type, (1,)) / '(1,)type'.
_np_quint8 = np.dtype([("quint8", np.uint8, 1)])

Silakan coba satu per satu untuk mengubah 1 menjadi 0 misalnya: _np_qint8 = np.dtype([("qint8", np.int8, 1)]) menjadi _np_qint8 = np.dtype([("qint8", np.int8 , 0)]) yang bekerja untuk saya

solve warnings

Anda menggunakan versi numpy yang sedikit tidak kompatibel dengan versi TF yang Anda gunakan.

Bagi saya bekerja menempatkan

import warnings
warnings.filterwarnings('ignore',category=FutureWarning)

sebelum

import tensorflow as tf

dan semua impor lainnya.

Saya memiliki TF 1.14.0 dan numpy 1.18.1.

sebelum mengimpor tensorflow, Anda harus menerapkan:
peringatan impor
warnings.filterwarnings('ignore',category=FutureWarning)
warnings.filterwarnings('ignore', category=DeprecationWarning)
ini berfungsi untuk tensorflow==1.12.0, numpy==1.18.1, python 3.6

Saya mencoba ini:

import warnings
warnings.filterwarnings('ignore',category=FutureWarning)
warnings.filterwarnings('ignore', category=DeprecationWarning)

Dan itu tidak berhasil untuk saya ketika saya menjalankan python secara non-interaktif tensorflow==1.14.0 , numpy==1.18.1 , python==3.6.10 , tetapi berhasil dalam sesi interaktif.

Saya menemukan bahwa yang berikut ini berfungsi ketika saya menjalankan python baik secara interaktif maupun non-interaktif. Saat menggunakan tensorflow 2.X, Anda dapat menggunakan:

import tensorflow as tf
tf.logging.set_verbosity(tf.logging.ERROR)

Dan saat menggunakan tensorflow 1.X (berfungsi pada 1.14 untuk saya):

import tensorflow as tf
tf.compat.v1.logging.set_verbosity(tf.compat.v1.logging.ERROR)

Saya menggunakan tf 1.13.1
Ini bekerja:

import tensorflow as tf
tf.logging.set_verbosity(tf.logging.ERROR)

.compat.v1 tidak diperlukan.

Saya mencoba semua metode, tetapi tidak ada yang berfungsi di notebook jupyter ...

warnings.filterwarnings('ignore',category=FutureWarning)
Ini dapat mengabaikan peringatan saat mengimpor tensorflow, tetapi masih ada banyak banyak PERINGATAN jika saya memuat model...

Apakah halaman ini membantu?
0 / 5 - 0 peringkat