Как преобразовать этот код tensorflow 1.0 в tensorflow 2.0 при сбое сценария обновления?

#python-3.x #tensorflow

#python-3.x #tensorflow

Вопрос:

У меня есть следующий код tensorflow 1.0:

 import tensorflow as tf

feature_cols = tf.contrib.learn.infer_real_valued_columns_from_input(X_train)
dnn_clf = tf.contrib.learn.DNNClassifier(hidden_units=[300,100], n_classes=10,
                                         feature_columns=feature_cols)
dnn_clf = tf.contrib.learn.SKCompat(dnn_clf)  # if TensorFlow >= 1.1
dnn_clf.fit(X_train, y_train, batch_size=50, steps=40000)
  

Когда я пытаюсь запустить конвертер:

 tf_upgrade_v2 --infile mlp.py --outfile mlp2.py
  

Я получаю следующую ошибку:

 --------------------------------------------------------------------------------
File: mlp.py
--------------------------------------------------------------------------------
mlp.py:3:15: ERROR: Using member tf.contrib.learn.infer_real_valued_columns_from_input in 
deprecated module tf.contrib. tf.contrib.learn.infer_real_valued_columns_from_input cannot be converted automatically. tf.contrib will not be distributed with TensorFlow 2.0, please 
consider an alternative in non-contrib TensorFlow, a community-maintained repository such as 
tensorflow/addons, or fork the required code.
mlp.py:4:10: ERROR: Using member tf.contrib.learn.DNNClassifier in deprecated module tf.contrib. tf.contrib.learn.DNNClassifier cannot be converted automatically. tf.contrib will not be distributed with TensorFlow 2.0, please consider an alternative in non-contrib TensorFlow, a community-maintained repository such as tensorflow/addons, or fork the required code.
mlp.py:6:10: ERROR: Using member tf.contrib.learn.SKCompat in deprecated module tf.contrib. tf.contrib.learn.SKCompat cannot be converted automatically. tf.contrib will not be distributed with TensorFlow 2.0, please consider an alternative in non-contrib TensorFlow, a community-maintained repository such as tensorflow/addons, or fork the required code.
  

Мой вопрос: как преобразовать этот код tensorflow 1.0 в tensorflow 2.0 при сбое сценария обновления?

Ответ №1:

Некоторые библиотеки Tensorflow 1.x перемещаются Tensorflow/addons , и некоторые из них заменяются Tensorflow.Estimator в Tensorflow 2.x. tf_upgrade_v2 скрипт не будет полностью обновлять код с Tfv1.x до Tfv2.x. Этот скрипт ускорит процесс обновления, преобразовав существующие скрипты TensorFlow 1.x на Python в TensorFlow 2.0.

В этом случае tf.contrib.learn заменяется на Estimator .

Совместимый с TF2.x код: заменить

 tf.contrib.learn.DNNLinearCombinedRegressor
  

с помощью

 tf.estimator.DNNLinearCombinedRegressor
  

Взгляните на эту ссылку для получения дополнительной информации