Bu sayfa, Cloud Translation API ile çevrilmiştir.
Switch to English

Kodu otomatik olarak TensorFlow 2'ye yükseltin

TensorFlow.org'da görüntüleyin Google Colab'de çalıştırın Kaynağı GitHub'da görüntüleyin Defteri indirin

TensorFlow 2.0, bağımsız değişkenleri yeniden sıralama, sembolleri yeniden adlandırma ve parametreler için varsayılan değerleri değiştirme gibi birçok API değişikliği içerir. Tüm bu değişikliklerin manuel olarak yapılması yorucu ve hataya açık olabilir. Değişiklikleri kolaylaştırmak ve TF 2.0'a geçişinizi olabildiğince sorunsuz hale getirmek için TensorFlow ekibi, eski kodun yeni API'ye tf_upgrade_v2 yardımcı olacak tf_upgrade_v2 yardımcı programını oluşturdu.

Tipik kullanım şu şekildedir:

tf_upgrade_v2 \
  --intree my_project/ \
  --outtree my_project_v2/ \
  --reportfile report.txt

Mevcut TensorFlow 1.x Python komut dosyalarını TensorFlow 2.0'a dönüştürerek yükseltme sürecinizi hızlandıracaktır.

Dönüştürme betiği olabildiğince otomatikleşir, ancak yine de betik tarafından gerçekleştirilemeyen sözdizimsel ve biçimsel değişiklikler vardır.

Uyumluluk modülleri

Bazı API sembolleri, basitçe bir dize değişimi kullanılarak yükseltilemez. Kodunuzun TensorFlow 2.0'da desteklenmeye devam etmesini sağlamak için, yükseltme komut dosyası bir compat.v1 modülü içerir. Bu modül, tf.foo gibi TF 1.x sembollerini eşdeğer tf.compat.v1.foo referansıyla değiştirir. Uyumluluk modülü güzel olsa da, değiştirmeleri manuel olarak düzeltmenizi ve tf.compat.v1 ad alanı yerine tf.* tf.compat.v1 alanındaki yeni API'lere olabildiğince hızlı bir şekilde tf.compat.v1 .

Çünkü TensorFlow 2.x modülü deprecations (örnek için tf.flags ve tf.contrib ) bazı değişiklikler geçerek etrafında çalışmış edilemez compat.v1 . Bu kodu yükseltmek, ek bir kitaplık (örneğin, absl.flags ) kullanmayı veya tensorflow / addons'ta bir pakete geçmeyi gerektirebilir .

Bu kılavuzun geri kalanı, yükseltme komut dosyasının nasıl kullanılacağını gösterir. Yükseltme komut dosyasının kullanımı kolay olsa da, komut dosyasını aşağıdaki işlemin bir parçası olarak kullanmanız şiddetle tavsiye edilir:

  1. Birim Testi : Yükseltmekte olduğunuz kodun makul kapsama sahip bir birim test paketine sahip olduğundan emin olun. Bu Python kodudur, bu nedenle dil sizi birçok hata sınıfından korumaz. Ayrıca, sahip olduğunuz herhangi bir bağımlılığın TensorFlow 2.0 ile uyumlu olacak şekilde yükseltilmiş olduğundan emin olun.

  2. TensorFlow 1.14'ü kurun : TensorFlow'unuzu en son TensorFlow 1.x sürümüne, en az 1.14'e yükseltin. Bu, tf.compat.v2'deki son TensorFlow 2.0 API'sini tf.compat.v2 .

  3. 1.14 İle Test Et : Birim testlerinizin bu noktada başarılı olduğundan emin olun. Yükseltme yaparken bunları tekrar tekrar çalıştıracaksınız, bu nedenle yeşilden başlamak önemlidir.

  4. Yükseltme komut dosyasını çalıştırın: tf_upgrade_v2 tüm kaynak ağacınızda çalıştırın, testler dahil. Bu, kodunuzu yalnızca TensorFlow 2.0'da bulunan sembolleri kullandığı bir biçime yükseltir. Kullanımdan kaldırılan sembollere tf.compat.v1 ile tf.compat.v1 . Bunlar er ya da geç elle müdahale gerektirecek, ancak hemen değil.

  5. Dönüştürülmüş testleri TensorFlow 1.14 ile çalıştırın: Kodunuz yine de TensorFlow 1.14'te düzgün çalışmalıdır. Birim testlerinizi tekrar çalıştırın. Buradaki testlerinizdeki herhangi bir hata, yükseltme komut dosyasında bir hata olduğu anlamına gelir. Lütfen bize bildirin .

  6. Yükseltme raporunda uyarılar ve hatalar olup olmadığını kontrol edin: Komut dosyası, tekrar kontrol etmeniz gereken dönüştürmeleri veya yapmanız gereken herhangi bir manuel işlemi açıklayan bir rapor dosyası yazar. Örneğin: Kalan katkı durumlarının kaldırılması için manuel işlem yapılması gerekecektir. Daha fazla talimat için lütfen RFC'ye başvurun.

  7. TensorFlow 2.0'ı kurun : Bu noktada TensorFlow 2.0'a geçmek güvenli olmalıdır

  8. v1.disable_v2_behavior ile test v1.disable_v2_behavior : Testler ana fonksiyonunda al v1.disable_v2_behavior() ile testlerinizi yeniden çalıştırmak, 1.14 altında v1.disable_v2_behavior() aynı sonuçları vermelidir.

  9. V2 Davranışını Etkinleştirin : Testleriniz v2 API kullanarak çalıştığına göre, artık v2 davranışını açmaya başlayabilirsiniz. Kodunuzun nasıl yazıldığına bağlı olarak bu, bazı değişiklikler gerektirebilir. Ayrıntılar için Geçiş kılavuzuna bakın.

Yükseltme komut dosyasını kullanma

Kurmak

Başlamadan önce TensorlFlow 2.0'ın kurulu olduğundan emin olun.

import tensorflow as tf

print(tf.__version__)
2.3.0

Tensorflow / models git deposunu klonlayın, böylece test etmek için bazı kodlara sahip olursunuz:

git clone --branch r1.13.0 --depth 1 https://github.com/tensorflow/models
Cloning into 'models'...
remote: Enumerating objects: 2927, done.[K
remote: Counting objects: 100% (2927/2927), done.[K
remote: Compressing objects: 100% (2449/2449), done.[K
remote: Total 2927 (delta 509), reused 2036 (delta 403), pack-reused 0[K
Receiving objects: 100% (2927/2927), 369.04 MiB | 44.65 MiB/s, done.
Resolving deltas: 100% (509/509), done.
Checking out files: 100% (2768/2768), done.

Yardımı okuyun

Komut dosyası TensorFlow ile yüklenmelidir. İşte yerleşik yardım:

tf_upgrade_v2 -h
2020-09-10 01:42:59.274658: I tensorflow/stream_executor/platform/default/dso_loader.cc:48] Successfully opened dynamic library libcudart.so.10.1
usage: tf_upgrade_v2 [-h] [--infile INPUT_FILE] [--outfile OUTPUT_FILE]
                     [--intree INPUT_TREE] [--outtree OUTPUT_TREE]
                     [--copyotherfiles COPY_OTHER_FILES] [--inplace]
                     [--no_import_rename] [--no_upgrade_compat_v1_import]
                     [--reportfile REPORT_FILENAME] [--mode {DEFAULT,SAFETY}]
                     [--print_all]

Convert a TensorFlow Python file from 1.x to 2.0

Simple usage:
  tf_upgrade_v2.py --infile foo.py --outfile bar.py
  tf_upgrade_v2.py --infile foo.ipynb --outfile bar.ipynb
  tf_upgrade_v2.py --intree ~/code/old --outtree ~/code/new

optional arguments:
  -h, --help            show this help message and exit
  --infile INPUT_FILE   If converting a single file, the name of the file to
                        convert
  --outfile OUTPUT_FILE
                        If converting a single file, the output filename.
  --intree INPUT_TREE   If converting a whole tree of files, the directory to
                        read from (relative or absolute).
  --outtree OUTPUT_TREE
                        If converting a whole tree of files, the output
                        directory (relative or absolute).
  --copyotherfiles COPY_OTHER_FILES
                        If converting a whole tree of files, whether to copy
                        the other files.
  --inplace             If converting a set of files, whether to allow the
                        conversion to be performed on the input files.
  --no_import_rename    Not to rename import to compat.v2 explicitly.
  --no_upgrade_compat_v1_import
                        If specified, don't upgrade explicit imports of
                        `tensorflow.compat.v1 as tf` to the v2 apis.
                        Otherwise, explicit imports of the form
                        `tensorflow.compat.v1 as tf` will be upgraded.
  --reportfile REPORT_FILENAME
                        The name of the file where the report log is
                        stored.(default: report.txt)
  --mode {DEFAULT,SAFETY}
                        Upgrade script mode. Supported modes: DEFAULT: Perform
                        only straightforward conversions to upgrade to 2.0. In
                        more difficult cases, switch to use compat.v1. SAFETY:
                        Keep 1.* code intact and import compat.v1 module.
  --print_all           Print full log to stdout instead of just printing
                        errors

Örnek TF1 kodu

İşte basit bir TensorFlow 1.0 komut dosyası:

head -n 65 models/samples/cookbook/regression/custom_regression.py | tail -n 10
  # Calculate loss using mean squared error
  average_loss = tf.losses.mean_squared_error(labels, predictions)

  # Pre-made estimators use the total_loss instead of the average,
  # so report total_loss for compatibility.
  batch_size = tf.shape(labels)[0]
  total_loss = tf.to_float(batch_size) * average_loss

  if mode == tf.estimator.ModeKeys.TRAIN:
    optimizer = params.get("optimizer", tf.train.AdamOptimizer)

TensorFlow 2.0 kurulduğunda şu durumlarda çalışmaz:

(cd models/samples/cookbook/regression && python custom_regression.py)
2020-09-10 01:43:01.613673: I tensorflow/stream_executor/platform/default/dso_loader.cc:48] Successfully opened dynamic library libcudart.so.10.1
Traceback (most recent call last):
  File "custom_regression.py", line 162, in <module>
    tf.logging.set_verbosity(tf.logging.INFO)
AttributeError: module 'tensorflow' has no attribute 'logging'

Tek dosya

Yükseltme betiği tek bir Python dosyası üzerinde çalıştırılabilir:

!tf_upgrade_v2 \
  --infile models/samples/cookbook/regression/custom_regression.py \
  --outfile /tmp/custom_regression_v2.py
2020-09-10 01:43:03.844314: I tensorflow/stream_executor/platform/default/dso_loader.cc:48] Successfully opened dynamic library libcudart.so.10.1
INFO line 38:8: Renamed 'tf.feature_column.input_layer' to 'tf.compat.v1.feature_column.input_layer'
INFO line 43:10: Renamed 'tf.layers.dense' to 'tf.compat.v1.layers.dense'
INFO line 46:17: Renamed 'tf.layers.dense' to 'tf.compat.v1.layers.dense'
INFO line 57:17: tf.losses.mean_squared_error requires manual check. tf.losses have been replaced with object oriented versions in TF 2.0 and after. The loss function calls have been converted to compat.v1 for backward compatibility. Please update these calls to the TF 2.0 versions.
INFO line 57:17: Renamed 'tf.losses.mean_squared_error' to 'tf.compat.v1.losses.mean_squared_error'
INFO line 61:15: Added keywords to args of function 'tf.shape'
INFO line 62:15: Changed tf.to_float call to tf.cast(..., dtype=tf.float32).
INFO line 65:40: Renamed 'tf.train.AdamOptimizer' to 'tf.compat.v1.train.AdamOptimizer'
INFO line 68:39: Renamed 'tf.train.get_global_step' to 'tf.compat.v1.train.get_global_step'
INFO line 83:9: tf.metrics.root_mean_squared_error requires manual check. tf.metrics have been replaced with object oriented versions in TF 2.0 and after. The metric function calls have been converted to compat.v1 for backward compatibility. Please update these calls to the TF 2.0 versions.
INFO line 83:9: Renamed 'tf.metrics.root_mean_squared_error' to 'tf.compat.v1.metrics.root_mean_squared_error'
INFO line 142:23: Renamed 'tf.train.AdamOptimizer' to 'tf.compat.v1.train.AdamOptimizer'
INFO line 162:2: Renamed 'tf.logging.set_verbosity' to 'tf.compat.v1.logging.set_verbosity'
INFO line 162:27: Renamed 'tf.logging.INFO' to 'tf.compat.v1.logging.INFO'
INFO line 163:2: Renamed 'tf.app.run' to 'tf.compat.v1.app.run'
TensorFlow 2.0 Upgrade Script
-----------------------------
Converted 1 files
Detected 0 issues that require attention
--------------------------------------------------------------------------------


Make sure to read the detailed log 'report.txt'


Komut dosyası, kod için bir düzeltme bulamazsa hataları yazdırır.

Dizin ağacı

Bu basit örnek de dahil olmak üzere tipik projeler, birden fazla dosya kullanır. Tipik olarak tüm paketi yükseltmek istersiniz, böylece komut dosyası bir dizin ağacında da çalıştırılabilir:

# upgrade the .py files and copy all the other files to the outtree
!tf_upgrade_v2 \
    --intree models/samples/cookbook/regression/ \
    --outtree regression_v2/ \
    --reportfile tree_report.txt
2020-09-10 01:43:06.108169: I tensorflow/stream_executor/platform/default/dso_loader.cc:48] Successfully opened dynamic library libcudart.so.10.1
INFO line 82:10: tf.estimator.LinearRegressor: Default value of loss_reduction has been changed to SUM_OVER_BATCH_SIZE; inserting old default value tf.keras.losses.Reduction.SUM.

INFO line 105:2: Renamed 'tf.logging.set_verbosity' to 'tf.compat.v1.logging.set_verbosity'
INFO line 105:27: Renamed 'tf.logging.INFO' to 'tf.compat.v1.logging.INFO'
INFO line 106:2: Renamed 'tf.app.run' to 'tf.compat.v1.app.run'
INFO line 58:10: tf.estimator.LinearRegressor: Default value of loss_reduction has been changed to SUM_OVER_BATCH_SIZE; inserting old default value tf.keras.losses.Reduction.SUM.

INFO line 101:2: Renamed 'tf.logging.set_verbosity' to 'tf.compat.v1.logging.set_verbosity'
INFO line 101:27: Renamed 'tf.logging.INFO' to 'tf.compat.v1.logging.INFO'
INFO line 102:2: Renamed 'tf.app.run' to 'tf.compat.v1.app.run'
WARNING line 125:15: Changing dataset.make_one_shot_iterator() to tf.compat.v1.data.make_one_shot_iterator(dataset). Please check this transformation.

INFO line 72:10: tf.estimator.DNNRegressor: Default value of loss_reduction has been changed to SUM_OVER_BATCH_SIZE; inserting old default value tf.keras.losses.Reduction.SUM.

INFO line 96:2: Renamed 'tf.logging.set_verbosity' to 'tf.compat.v1.logging.set_verbosity'
INFO line 96:27: Renamed 'tf.logging.INFO' to 'tf.compat.v1.logging.INFO'
INFO line 97:2: Renamed 'tf.app.run' to 'tf.compat.v1.app.run'
INFO line 38:8: Renamed 'tf.feature_column.input_layer' to 'tf.compat.v1.feature_column.input_layer'
INFO line 43:10: Renamed 'tf.layers.dense' to 'tf.compat.v1.layers.dense'
INFO line 46:17: Renamed 'tf.layers.dense' to 'tf.compat.v1.layers.dense'
INFO line 57:17: tf.losses.mean_squared_error requires manual check. tf.losses have been replaced with object oriented versions in TF 2.0 and after. The loss function calls have been converted to compat.v1 for backward compatibility. Please update these calls to the TF 2.0 versions.
INFO line 57:17: Renamed 'tf.losses.mean_squared_error' to 'tf.compat.v1.losses.mean_squared_error'
INFO line 61:15: Added keywords to args of function 'tf.shape'
INFO line 62:15: Changed tf.to_float call to tf.cast(..., dtype=tf.float32).
INFO line 65:40: Renamed 'tf.train.AdamOptimizer' to 'tf.compat.v1.train.AdamOptimizer'
INFO line 68:39: Renamed 'tf.train.get_global_step' to 'tf.compat.v1.train.get_global_step'
INFO line 83:9: tf.metrics.root_mean_squared_error requires manual check. tf.metrics have been replaced with object oriented versions in TF 2.0 and after. The metric function calls have been converted to compat.v1 for backward compatibility. Please update these calls to the TF 2.0 versions.
INFO line 83:9: Renamed 'tf.metrics.root_mean_squared_error' to 'tf.compat.v1.metrics.root_mean_squared_error'
INFO line 142:23: Renamed 'tf.train.AdamOptimizer' to 'tf.compat.v1.train.AdamOptimizer'
INFO line 162:2: Renamed 'tf.logging.set_verbosity' to 'tf.compat.v1.logging.set_verbosity'
INFO line 162:27: Renamed 'tf.logging.INFO' to 'tf.compat.v1.logging.INFO'
INFO line 163:2: Renamed 'tf.app.run' to 'tf.compat.v1.app.run'
INFO line 40:7: Renamed 'tf.test.mock' to 'tf.compat.v1.test.mock'
TensorFlow 2.0 Upgrade Script
-----------------------------
Converted 7 files
Detected 1 issues that require attention
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
File: models/samples/cookbook/regression/automobile_data.py
--------------------------------------------------------------------------------
models/samples/cookbook/regression/automobile_data.py:125:15: WARNING: Changing dataset.make_one_shot_iterator() to tf.compat.v1.data.make_one_shot_iterator(dataset). Please check this transformation.



Make sure to read the detailed log 'tree_report.txt'


dataset.make_one_shot_iterator işlevi hakkındaki bir uyarıya dikkat edin.

Artık komut dosyası TensorFlow 2.0 ile birlikte çalışıyor:

tf.compat.v1 modülü nedeniyle, dönüştürülen komut dosyasının TensorFlow 1.14'te de çalışacağını unutmayın.

(cd regression_v2 && python custom_regression.py 2>&1) | tail
    data = raw_dataframe()
  File "/tmpfs/src/temp/site/en/guide/regression_v2/automobile_data.py", line 67, in raw_dataframe
    dtype=COLUMN_TYPES, na_values="?")
  File "/home/kbuilder/.local/lib/python3.6/site-packages/pandas/io/parsers.py", line 686, in read_csv
    return _read(filepath_or_buffer, kwds)
  File "/home/kbuilder/.local/lib/python3.6/site-packages/pandas/io/parsers.py", line 449, in _read
    _validate_names(kwds.get("names", None))
  File "/home/kbuilder/.local/lib/python3.6/site-packages/pandas/io/parsers.py", line 417, in _validate_names
    raise ValueError("Names should be an ordered collection.")
ValueError: Names should be an ordered collection.

Detaylı rapor

Komut dosyası ayrıca ayrıntılı değişikliklerin bir listesini de bildirir. Bu örnekte, muhtemelen güvenli olmayan bir dönüşüm buldu ve dosyanın tepesine bir uyarı ekledi:

head -n 20 tree_report.txt
TensorFlow 2.0 Upgrade Script
-----------------------------
Converted 7 files
Detected 1 issues that require attention
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
File: models/samples/cookbook/regression/automobile_data.py
--------------------------------------------------------------------------------
models/samples/cookbook/regression/automobile_data.py:125:15: WARNING: Changing dataset.make_one_shot_iterator() to tf.compat.v1.data.make_one_shot_iterator(dataset). Please check this transformation.

================================================================================
Detailed log follows:

================================================================================
================================================================================
Input tree: 'models/samples/cookbook/regression/'
================================================================================
--------------------------------------------------------------------------------
Processing file 'models/samples/cookbook/regression/linear_regression_categorical.py'
 outputting to 'regression_v2/linear_regression_categorical.py'

Dataset.make_one_shot_iterator function hakkındaki bir uyarıya tekrar dikkat edin.

Diğer durumlarda çıktı, önemsiz olmayan değişikliklerin gerekçesini açıklayacaktır:

%%writefile dropout.py
import tensorflow as tf

d = tf.nn.dropout(tf.range(10), 0.2)
z = tf.zeros_like(d, optimize=False)
Writing dropout.py

!tf_upgrade_v2 \
  --infile dropout.py \
  --outfile dropout_v2.py \
  --reportfile dropout_report.txt > /dev/null
2020-09-10 01:43:10.977249: I tensorflow/stream_executor/platform/default/dso_loader.cc:48] Successfully opened dynamic library libcudart.so.10.1

cat dropout_report.txt
TensorFlow 2.0 Upgrade Script
-----------------------------
Converted 1 files
Detected 0 issues that require attention
--------------------------------------------------------------------------------
================================================================================
Detailed log follows:

================================================================================
--------------------------------------------------------------------------------
Processing file 'dropout.py'
 outputting to 'dropout_v2.py'
--------------------------------------------------------------------------------

3:4: INFO: Changing keep_prob arg of tf.nn.dropout to rate, and recomputing value.

4:4: INFO: Renaming tf.zeros_like to tf.compat.v1.zeros_like because argument optimize is present. tf.zeros_like no longer takes an optimize argument, and behaves as if optimize=True. This call site specifies something other than optimize=True, so it was converted to compat.v1.
--------------------------------------------------------------------------------


Değiştirilen dosya içerikleri aşağıdadır, betiğin taşınan ve yeniden adlandırılmış argümanlarla başa çıkmak için argüman adlarını nasıl eklediğine dikkat edin:

cat dropout_v2.py
import tensorflow as tf

d = tf.nn.dropout(tf.range(10), 1 - (0.2))
z = tf.compat.v1.zeros_like(d, optimize=False)

Daha büyük bir proje birkaç hata içerebilir. Örneğin, derin laboratuvar modelini dönüştürün:

!tf_upgrade_v2 \
    --intree models/research/deeplab \
    --outtree deeplab_v2 \
    --reportfile deeplab_report.txt > /dev/null
2020-09-10 01:43:13.488610: I tensorflow/stream_executor/platform/default/dso_loader.cc:48] Successfully opened dynamic library libcudart.so.10.1

Çıktı dosyalarını üretti:

ls deeplab_v2
README.md   datasets        input_preprocess.py        train.py
__init__.py deeplab_demo.ipynb  local_test.sh          utils
common.py   eval.py         local_test_mobilenetv2.sh  vis.py
common_test.py  export_model.py     model.py
core        g3doc           model_test.py

Ancak hatalar vardı. Rapor, bu çalışmadan önce düzeltmeniz gereken şeyi belirlemenize yardımcı olacaktır. İşte ilk üç hata:

cat deeplab_report.txt | grep -i models/research/deeplab | grep -i error | head -n 3
models/research/deeplab/export_model.py:25:7: ERROR: Using member tf.contrib.slim in deprecated module tf.contrib. tf.contrib.slim 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.
models/research/deeplab/eval.py:28:7: ERROR: Using member tf.contrib.slim in deprecated module tf.contrib. tf.contrib.slim 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.
models/research/deeplab/eval.py:146:8: ERROR: Using member tf.contrib.metrics.aggregate_metric_map in deprecated module tf.contrib. tf.contrib.metrics.aggregate_metric_map 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.

"Güvenli mod

Dönüştürme betiğinde ayrıca, tensorflow.compat.v1 modülünü kullanmak için tensorflow.compat.v1 değiştiren daha az istilacı bir SAFETY modu vardır:

cat dropout.py
import tensorflow as tf

d = tf.nn.dropout(tf.range(10), 0.2)
z = tf.zeros_like(d, optimize=False)

tf_upgrade_v2 --mode SAFETY --infile dropout.py --outfile dropout_v2_safe.py > /dev/null
2020-09-10 01:43:17.892207: I tensorflow/stream_executor/platform/default/dso_loader.cc:48] Successfully opened dynamic library libcudart.so.10.1

cat dropout_v2_safe.py
import tensorflow.compat.v1 as tf

d = tf.nn.dropout(tf.range(10), 0.2)
z = tf.zeros_like(d, optimize=False)

Gördüğünüz gibi, bu kodunuzu yükseltmiyor, ancak TensorFlow 1 kodunun TensorFlow 2'de çalışmasına izin veriyor

Uyarılar

  • Bu komut dosyasını çalıştırmadan önce kodunuzun bazı kısımlarını manuel olarak güncellemeyin. Özellikle, tf.argmax veya tf.batch_to_space gibi yeniden sıralanmış bağımsız değişkenlere sahip işlevler, komut dosyasının, mevcut kodunuzla eşleşmeyen anahtar sözcük bağımsız değişkenlerini hatalı şekilde eklemesine neden olur.

  • Komut dosyası, tensorflow import tensorflow as tf kullanılarak import tensorflow as tf aktarıldığını varsayar.

  • Bu komut dosyası, bağımsız değişkenleri yeniden sıralamaz. Bunun yerine, komut dosyası, bağımsız değişkenleri yeniden sıralanan işlevlere anahtar sözcük bağımsız değişkenleri ekler.

  • Check out tf2up.ml bir GitHub depoda Jupyter defterleri ve Python dosyaları yükseltmek için uygun bir araç için.

Yükseltme komut dosyası hatalarını bildirmek veya özellik isteklerinde bulunmak için lütfen GitHub'da bir sorun bildirin . Ve TensorFlow 2.0'ı test ediyorsanız, bunu duymak isteriz! TF 2.0 Test topluluğuna katılın ve test@tensorflow.org adresine soru ve tartışma gönderin.