CVE-2020-13435, CVE-2020-13630, CVE-2020-13631, CVE-2020-13871 и CVE-2020-15358.
max_seq_length
в ключ кэша дескриптора CuDNN.numpy
к версии 1.18.5 для предотвращения нарушения ABI при компиляции кода, использующего заголовки NumPy и TensorFlow.sqlite3
до версии 3.31.01
для обработки CVE-2019-19880, CVE-2019-19244 и CVE-2019-19645.curl
до версии 7.69.1
для обработки CVE-2019-15601.libjpeg-turbo
до версии 2.0.4
для обработки CVE-2018-19664, CVE-2018-20330 и CVE-2019-13960.2.4.5
для обработки CVE-2019-10099, CVE-2018-17190 и CVE-2018-11770.tf.float16
приводит к сбою сегментации (CVE-2020-5215).curl
до версии 7.66.0
для обработки CVE-2019-5482 и CVE-2019-5481.sqlite3
до версии 3.30.01
для обработки CVE-2019-19646, CVE-2019-19645 и CVE-2019-16168.Это последний выпуск TensorFlow с версией 1.x. Мы не планируем обновлять ветку 1.x новыми функциями, хотя будем выпускать исправления уязвимостей в течение как минимум одного года.
tensorflow
по умолчанию будет включать поддержку GPU (как и tensorflow-gpu
) для платформ, на которых у нас сейчас есть поддержка GPU (Linux и Windows). Он будет работать на машинах с графическими процессорами Nvidia и без них. Пакет tensorflow-gpu
всё ещё будет доступен, а пользователи, которые обеспокоены размером пакета, могут загрузить пакеты только для ЦП по адресу tensorflow-cpu
.compat.v2
. Он содержит копию основного модуля версии 1.15 (без contrib
) в модуле compat.v1
. TensorFlow 1.15 может эмулировать поведение версии 2.0 с помощью функции enable_v2_behavior()
. Это позволяет писать код, совместимый с будущими версиями: явно импортируя либо tensorflow.compat.v1
, либо tensorflow.compat.v2
, вы можете гарантировать, что ваш код будет работать без изменений с установкой версий 1.15 или 2.0.tf.enable_control_flow_v2()
и tf.disable_control_flow_v2()
для включения/отключения потока управления v2.tf.enable_v2_behavior()
и TF2_BEHAVIOR=1
.tf.function
. AutoGraph также применяется в функциях, используемых с tf.data
, tf.distribute
и... * через путь стратегии распространения no-op.run_eagerly=True
.batch_size
используется при вводе данных dataset/generator/keras sequence.tf.lite
:
GATHER
в NN API delegate.QUANTIZE
.QUANTIZED_16BIT_LSTM
.cycle_length
по умолчанию для tf.data.Dataset.interleave
, равное количеству планируемых ядер ЦП.parallel_for
: добавить конвертер для MatrixDiag
.narrow_range
к QuantizeAndDequantizeV2
и V3.tf.strings.unsorted_segment_join
.topK_v2
.TypeSpec
.Head
как публичный API.batch_dims
.tf.sparse.from_dense
.TensorFlowTestCase
.ResizeInputTensor
работает для всех делегатов.EXPAND_DIMS
в делегат NN API TEST: expand_dims_test.tf.cond
являются без состояния и не касаются каких-либо ресурсов, то она выдаёт StatelessIf op.tf.cond
, tf.while
и if
и while
в AutoGraph теперь принимают одноэлементный предикат, если он есть. Это не влияет на управление потоком не-V2.tf.while_loop
являются без состояния и не касаются каких-либо ресурсов, то он выдаёт StatelessWhile op.LogSoftMax
.nested_value_rowids
для рваных тензоров.tf.math.cumulative_logsumexp
.tf.ragged.stack
.AddNewInputConstantTensor
.MemoryAllocation::MemoryAllocation()
.NNAPIDelegateKernel
из nnapi_delegate.cc.FusedBatchNormV3
в конвертере.tf.gradients()
.Этот выпуск содержит вклад многих людей из Google, а также:
a6802739, Aaron Ma, Abdullah Selek, Abolfazl Shahbazi, Ag Ramesh, Albert Z. Guo, Albin Joy, Alex Itkes, Alex Sergeev, Alexander Pivovarov, Alexey Romanov, alhkad, Amit Srivastava, amoitra, Andrew Lihonosov, Andrii Prymostka, Anuj Rawat, Astropeak, Ayush Agrawal, Bairen Yi, Bas Aarts, Bastian Eichenberger, Ben Barsdell, Benjamin Peterson, bhack, Bharat Raghunathan, Bhavani Subramanian, Bryan Cutler, candy.dc, Cao Zongyan, Captain-Pool, Casper Da Costa-Luis, Chen Guoyin, Cheng Chang, chengchingwen, Chong Yan, Choong Yin Thong, Christopher Yeh, Clayne Robison, Coady, Patrick, Dan Ganea, David Norman, Denis Khalikov, Deven Desai, Diego Caballero, Duncan Dean, Duncan Riach, Dwight J Lyle, Eamon Ito-Fisher, eashtian3, EFanZh, ejot, Elroy Ashtian Jr, Eric Schweitz, Fangjun Kuang, Fei Hu, fo40225, formath, Fred Reiss, Frederic Bastien, Fredrik Knutsson, G. Hussain Chinoy, Gabriel, gehring, George Grzegorz Pawelczak, Gianluca Varisco, Gleb Popov, Greg Peatfield, Guillaume Klein, Gurpreet Singh, Gustavo Lima Chaves, haison, Haraldur TóMas HallgríMsson, HarikrishnanBalagopal, HåKon Sandsmark, I-Hong, Ilham Firdausi Putra, Imran Salam, Jason Zaman, Jason Zavaglia, jayhpark530, jefby, Jeff Daily, Jeffrey Poznanovic, Jekyll Lai, Jeroen BéDorf, Jerry Shih, jerryyin, jiakai, JiangXIAO, Joe Bowser, Joel Shapiro, ... Версия 1.14.0
Производительность:
Разработка TensorFlow 2.0:
TensorFlow Lite:
tf.contrib:
добавлен Neural Turing. Реализация описана в https://arxiv.org/abs/1807.08518.
Удалите зависимость tf.contrib.timeseries от TF-распределений.
tf.data
defun
, предоставляя аварийный люк для продолжения использования устаревшего Defun
.Toolchains
tensorflow_core
, а tensorflow
— это просто виртуальный пакет pip. Для проектов, использующих TensorFlow, никаких изменений кода не требуется, изменение прозрачно.XLA
Estimator
Этот выпуск содержит вклад многих людей из Google, а также:
1e100, 4d55397500, a6802739, abenmao, Adam Weiss, Ag Ramesh, Alan Du, Albin Joy, Alex, Aman Patel, Amit, Amit Kumar Jaiswal, Amit Srivastava, Andreas Eberle, Andy Craze, Anthony Platanios, Armen Poghosov, armenpoghosov, arp95, Arpit Shah, Ashwin Ramaswami, Aurelien Geron, AuréLien Geron, aweers, awesomealex1, Ayush Agrawal, Ben Barsdell, Bharat Raghunathan, Bhavani Subramanian, blairhan, BléNesi Attila, Brandon Carter, candy.dc, Chao Liu, chenchc, chie8842, Christian Hansen, Christian Sigg, Clayne Robison, crafet, csukuangfj, ctiijima, Dan Jarvis, Dan Lazewatsky, Daniel Ingram, Daniel Salvadori, Dave Airlie, David Norman, Dayananda V, Dayananda-V, delock, Denis Khalikov, Deven Desai, Dheeraj Rajaram Reddy, dmitrievanthony, Donovan Ong, Drew Szurko, Duncan Riach, Dustin Neighly, Edward Forgacs, EFanZh, Fei Hu, Felix Lemke, Filip Matzner, fo40225, frreiss, Gautam, gehring, Geoffrey Irving, Grzegorz George Pawelczak, Grzegorz Pawelczak, Gyoung-Yoon Ryoo, HanGuo97, Hanton Yang, Hari Shankar, hehongliang, Heungsub Lee, Hoeseong Kim, I-Hong Jhuo, Ilango R, Innovimax, Irene Dea, Jacky Ko, Jakub Lipinski, Jason Zaman, jcf94, Jeffrey Poznanovic, Jens Elofsson, Jeroen BéDorf, Jia Qingtong, Jiankang, Joe Q, Joe Quadrino, Joeran Beel, Jonas Rauber, Jonathan, Jonathan Kyl, Joppe Geluykens, Joseph Friedman, jtressle, jwu, K Yasaswi Sri Chandra Gandhi, K. Hodges, Kaixi Hou, Karl Lessard, Karl Weinmeister, Karthik Muthuraman, Kashif Rasul, KDR, Keno Fischer, Kevin Mader, kjopek, Koan-Sin Tan, kouml, ktaebum, Lakshay Tokas, Laurent Le Brun, Letian Kang, Li, Guizi, Loo Rong Jie, Lucas Hendren, Lukas Geiger, Luke Han, luxupu, Ma, Guokai, Mahmoud Abuzaina, Mandar Deshpande, manhyuk, Marco Gaido, Marek Drozdowski, Mark Collier, Mark Ryan, mars20, Mateusz Chudyk, Matt Conley, mbhuiyan, mdfaijul, Melissa Grueter, Michael KäUfl, MickaëL Schoentgen, Miguel Morin, Mihail Salnikov, Mike Arpaia, Mike Holcomb, monklof, Moses Marin, Mshr-H, nammbash, Natalia Gimelshein, Nayana-Ibm, neargye, Neeraj Pradhan, Nehal J Wani, Nick, Niels Ole Salscheider. И перевод текста на русский язык:
и tf.version.
Перенос всех констант в модуле tf.saved_model
в подмодули tf.saved__model
. Новые конечные точки добавлены в V1 и V2, но удаление существующих конечных точек применяется только в V2.
Keras & Python API
tf.register_tensor_conversion_function
.tf.contrib.saved_model.save_keras_model
.LinearOperator.matmul
теперь возвращает новый LinearOperator
.Новые операции и улучшенная функциональность операций
ignore_unknown
в parse_values
, который подавляет ValueError для неизвестных типов гиперпараметров. Также добавить функцию удобства tf.linalg.matvec
.tf.einsum()
вызывает ValueError
для неподдерживаемых уравнений, таких как "ii->"
.tf.signal.dct
и tf.signal.idct
.round_mode
к QuantizeAndDequantizeV2
, чтобы выбрать алгоритм округления.unicode_encode
, unicode_decode
, unicode_decode_with_offsets
, unicode_split
, unicode_split_with_offset
и unicode_transcode
. Среди прочего, эта операция добавляет возможность кодировать, декодировать и перекодировать различные форматы входного текста в основные кодировки Unicode (UTF-8, UTF-16-BE, UTF-32-BE).SpaceToDepth
поддерживает тип данных uint8.tf.nn.safe_embedding_lookup_sparse
, tf.nn.sampled_softmax
и tf.nn.nce_loss
. Гиперпараметры игнорируются.Производительность
TensorFlow 2.0 Development
tf.spectral
с tf.signal
для TensorFlow 2.0.TensorFlow Lite
tensorflow/contrib/lite
в tensorflow/lite
.tf.contrib
:
Добавить плагин файловой системы Apache Ignite для поддержки доступа к Apache IGFS.
Отсев теперь принимает аргумент rate
, keep_prob
устарел.
Ссылки на оценщик tf.contrib.estimator
были изменены на tf.estimator
:
tf.contrib.estimator.BaselineEstimator
с tf.estimator.BaselineEstimator
.tf.contrib.estimator.DNNLinearCombinedEstimator
с tf.estimator.DNNLinearCombinedEstimator
.tf.contrib.estimator.DNNEstimator
с tf.estimator.DNNEstimator
. tf.contrib.estimator.LinearEstimator сtf.data:
Инструментальные средства:
XLA:
Оценщик:
tf.contrib.estimator.DNNLinearCombinedEstimator
с
tf.estimator.DNNLinearCombinedEstimator
:
tf.contrib.estimator.DNNEstimator
на
tf.estimator.DNNEstimator
.tf.contrib.estimator.LinearEstimator
на
tf.estimator.LinearEstimator
.tf.contrib.estimator.export_all_saved_models
и связанных с ним должны перейти на
tf.estimator.Estimator.experimental_export_all_saved_models
.regression_head
до нового Head API для Canned Estimator V2.multi_class_head
на Head API для Canned Estimator V2.tf.contrib.estimator.InMemoryEvaluatorHook
и tf.contrib.estimator.make_stop_at_checkpoint_step_hook
на
tf.estimator.experimental.InMemoryEvaluatorHook
и
tf.estimator.experimental.make_stop_at_checkpoint_step_hook
.Этот релиз содержит вклад многих людей из Google, а также:
Абихав Упадхьяй, Аг Рамеш, акикааа, Алексис Луи, Андерс Хусс, Андреас Мадсен, Эндрю Банчик, Энди Крейз, Антон Дмитриев, Артем Малых, Авижит-Нервана, Балинт Кристиан, Бенджамин Тан Вэй Хао, Бхавани Субраманян, Брендан Финан, Брайан Немсик, Брайан Катлер, Бай Шен, Цао Цзунъянь, Кастиэль, Крис Антаки, Кристиан Голл, Сибифанг, Клейн Робисон, Кодрут Гросу, Конг Сюй, Далмо Сирн, Дэниел Хантер, Дугал Дж. Сазерленд, Эдвард Фагерхольм, ЭФаньЧжэн, Эрик Смистад, Евгений Поляков, Фэйян Чен, Франклин5, Фред Рейсс, Гаутам, геринг, Джеффри Ирвинг, Джордж Стерпу, Гитеа, Гжегож Джордж Павелчак, Гоу Чжун Чжуан, Химкт, Хоэсон Ким, Хуань Ли (李卓桓), Хуян Фей, хюнён, Айзек Бербанк, джоканан, Джекки Ко, Джейсон Фурманек, Джейсон Заман, Хавьер Лураски, Цзян, Чжоулун, Джоак, Джон Лин, Джонатан Уайатт Хеч, Джозеф Йерсли, Джош Гордон, Джулиан Нидермайер, Карл Лессард, Кено Фишер, ланхин, Леон Грасер, леондгарсе, Ли, Гуйцзы, Ли, Ицян, lxl910915, Махмуд Абузайна, манхюк, Марсела Моралес Куисп, маргаретмз, Мэтт Конли, Макс Пумперла, мбхуйян, мдфайджул, Мэн, Пэн, Майкл, Майкл Гильда, мистер Тсджолдер, Мухаммад Вилдан, недагье, Нехал Дж. Вани, NEWPLAN, Ниранджан Хасабнис, Нурти, олит, Пан Даосинь, Педро Монреаль, Пэн Ю, пилларпонд, Пуйя Давуди, цизи, Рохайс Лии, Ричард Ю, Рин Аракак, Роджер Айенгар, сахилбадьял, Сами Кама, Сандип Гири, Скотт Лейшман, Сергей Панев, Сонхун Парк, Шафи Даятар, шэнфуинтел, Шимин Го, Сиджу, сайлент567, Стефан Дюльгеров, стивен, Тао Вэй, Тор Джонсон, Тинбо Лу, томгулосон92, Тунсюань Лю, Тревор Моррис, Ubuntu, Вадим Борисов, вандерлян, вангсию, Вэнь Юнь, Вен-Хэн (Джек) Чун, вэньсичжу, Уильям Д. Айронс, Сяомин (Джейсон) Цуй, Ян Факай (颜发才), Янбо Лян, Янив Блюменфельд, Яш Гауркар, Ичэн Фан, Юн Тан, Ёнджун Ли, Юань (Терри) Тан, Юйсинь Ву, злдробит.
tf.contrib.saved_model.save_keras_model()
) и использовать с Tensorflow Serving.tf.data.Dataset
.tf.data:
tf.data.Options()
, tf.data.Dataset.options()
и tf.data.Dataset.with_options()
соответственно.tf.data.Dataset.reduce()
позволяет пользователям уменьшить конечный набор данных до одного элемента с помощью предоставленной пользователем функции уменьшения.tf.data.Dataset.window()
позволяет пользователям создавать конечные окна входного набора данных; в сочетании с API tf.data.Dataset.reduce()
, это позволяет пользователям реализовывать настраиваемую пакетную обработку.tensorflow::data
.tf.contrib:
tf.contrib.data
Другие:
Этот выпуск содержит вклад многих людей из Google, а также:
(Дэвид) Сиу-Кей Мук, Агр Рамеш, Антон Дмитриев, Артём Соболев, Авиджит-Нервана, Байрен Йи, Бруно Гонсалвес, Бай Шен, candy.dc, Ченг Чен, Клейн Робисон, coder3101, Дао Чжан, Элмс, Фэй Ху, feiquan, Джеффри Ирвинг, Гоучжун Чжуан, hellcom, Хосеонг Ким, imsheridan, Джейсон Фурманек, Джейсон Заман, Дженни Санг, jiefangxuanyan, Йоханнес Банхофер, Джонатан Гомер, Коан-Син Тан, kouml, Лу Ронг Цзе, Лукас Гейгер, манипупопо, Мин Ли, Мориц Крёгер, Науррил, Ниранджан Хасабнис, Пан Даоксин, Пэн Ю, пенгва, расми, Роджер Син, Роланд Фернандес, Сами Кама, Самуэль Матцек, Санджунг Ву, Сергей Лебедев, Сергий Хоменко, шаохуа, Шаохуа Чжан, Шуцзянь2015, Сунита Камбхампати, томгулосон92, Винисиус Камарго, вансюйю, вейданькун, Вен-Хэн (Джек) Чунг, Уильям Д. Айронс, Синь Цзинь, Ян Факай (颜发才), Янбо Лян, Яш Катария, Юн Тан, 在原佐为.
Nvidia GPU:
Google Cloud TPU:
DistributionStrategy:
Добавьте функции C, C++ и Python для запроса ядер.
Этот релиз содержит вклад многих людей из Google, а также:
Аапели, Адода, Аг Рамеш, Амог Маннекот, Эндрю Гибиански, Энди Крейз, Анирудх Кул, Орельен Джерон, Авиджит, Авидит-Нервана, Бен, Бенджамин Х. Майара, бхак, Бретт Кунс, Цао Цзунъянь, си Бокман, чирс, Чиканага Томоюки, Клейн Робинсон, косинус0, Цуй Вэй, Дэн Дж., Дэвид, Дэвид Норман, Дмитрий Клименков, Элиэль Ходжман, Флориан Куртиал, fo40225, формат, Джеффри Ирвинг, Грейс Хани, Гжегож Павелкак, Голян Хуа, Гочжонг Чжуан, Герман Звонимир Дошилович, Хуэйян Фэй, Джекер, Ян Хюннемейер, Джейсон Тейлор, Джейсон Заман, Джесси, Цзян, Чжоулун, Цзявей Чжан, Цзе, Джо Йерслай, Йоханнес Шмитц, Джон Перл, Джон Трибенбах, Джонатан, Джонатан Хсеу, Чонмин Парк, Джастин Шенк, karl@kubx.ca, Кейт Ходесдон, Кб Шрирам, Кейси Хаттори, Кеннет Бломквист, Коан-Син Тан, Ли Лянбин, Ли, Ицян, Лоу Ронг Джи, Мадияр, Махмуд Абузайна, Марк Райан, Мэтт Додж, мбхуйян, Мелвин Лжи96, Мигель Мота, Нафис Садат, Нейт Люэр, науррил, Нехал Дж. Вани, Ниалл Моран, Ниранджан Хасабнис, Нишидха Панпалия, нпоу, олит, Пей Чжан, Пэн Ван (Симпенг), Пэн Ю, Филипп Юнд, Прадип Банавара, Пратик Калшетти, qwertWZ, Ракеш Чада, Рэнди Уэст, Рэй Ким, Ролаис Лии, Робин Рихтсфельд, Родриго Сильвейра, Руижи, Сантош Кумар, Себ Бро, Сергей Лебедев, сфудживара, Шаба Абхирам, Шаши, Скрытая Рыба5, Соила Кавуля, Стефан Дюльгеров, Стивен Уинстон, Сунита Камбхампати, Сурри Шоум, Тэхун Ли, Тор Джонс, Тристан Райс, ТШапинский, тукан, тукан9389, Висенте Рейес, Вильмар-Хилоу, Виталий Лаврухин, вангерши, Вейдан.конг, вейданконг, Вен-Хэн (Джек) Чанг, Уильям Д. Айронс, Уим Гленн, XFeiF, Янь Факай (颜发才), Яньбо Лян, Юн Тан, Ёсихиро Ямадзаки, Юань (Терри) Тан, Юань, Человек, Чжао Йонке, Аррон Рикардо Перес-Лопес, Тяньци, Сюй Сяофэй
tf.keras
:
Среда выполнения tf.lite
теперь поддерживает complex64
.
Начальная интеграция Google Cloud Bigtable для tf.data
.
Улучшено поведение локального запуска в tf.estimator.train_and_evaluate
, которое не перезагружает контрольные точки для оценки.
Теперь RunConfig
устанавливает device_filters, чтобы ограничить взаимодействие между рабочими и PS. Это может ускорить обучение и обеспечить чистое завершение работы в некоторых ситуациях. Но если у вас есть задания, требующие взаимодействия между работниками, вам придётся установить пользовательские параметры session_options в вашем RunConfig
.
Распределения и биекторы перемещены из tf.contrib.distributions
в Tensorflow Probability (TFP). tf.contrib.distributions
теперь устарел и будет удалён к концу 2018 года.
Добавление новых конечных точек для существующих символов Tensorflow. Эти конечные точки станут предпочтительными конечными точками в будущем и могут заменить некоторые существующие конечные точки в будущем. Полный список см. ниже. Новые символы были добавлены в следующие модули: tf.debugging
, tf.dtypes
, tf.image
, tf.io
, tf.linalg
. ## Breaking Changes
Предварительно собранные двоичные файлы теперь (начиная с TensorFlow 1.10) собираются на основе NCCL 2.2 и больше не включают NCCL в бинарный установщик. Использование TensorFlow с несколькими GPU и NCCL требует обновления до NCCL 2.2. См. обновлённые руководства по установке: поддержка TensorFlow GPU и установка TensorFlow из исходного кода.
Начиная с TensorFlow 1.11, сборки для Windows будут использовать Bazel. Поэтому мы откажемся от официальной поддержки cmake.
tf.data
:
tf.contrib.data.group_by_reducer()
теперь доступен через публичный API.tf.contrib.data.choose_from_datasets()
теперь доступен через публичный API.drop_remainder
к tf.data.Dataset.batch()
и tf.data.Dataset.padded_batch()
, устаревание tf.contrib.data.batch_and_drop_remainder()
и tf.contrib.data.padded_batch_and_drop_remainder()
.tf.estimator
:
Estimator
используют пользовательские средства сохранения, включённые в EstimatorSpec
для сохранения SavedModels во время экспорта.EstimatorSpec
теперь будет добавлен выходной прогноз по умолчанию для экспорта, если export_output
не предоставлен, что устраняет необходимость явно включать объект PredictOutput
в model_fn
для простых случаев использования.DNNClassifier
, DNNRegressor
и DNNEstimator
.Добавление аргументов synchronization
и aggregation
в get_variable(). Эти аргументы будут использоваться для распределённых переменных.
Добавление аргументов synchronization
и aggregation
в слой add_weight()
API. Эти аргументы будут использоваться для распределённых переменных.
Операции tf.losses.*
не добавляются в глобальную коллекцию при выполнении в режиме ожидания (чтобы избежать утечки памяти).
Поддержка различных каталогов сводных данных и контрольных точек в tf.train.MonitoredTrainingSession()
.
Добавлены ячейки IndRNN, IndyGRU и IndyLSTM в tf.contrib.rnn
.
Добавьте безопасные статические фабричные функции для SparseTensor и преобразуйте все CHECK в DCHECK. Использование конструктора напрямую небезопасно и не рекомендуется.
Сделайте пул соединений клиента Bigtable настраиваемым и увеличьте количество соединений по умолчанию для повышения производительности.
Добавлена производная tf.random_gamma
относительно параметра альфа.
Добавлена производная функций tf.igamma(a, x)
и tf.igammac(a, x)
относительно a.
Модифицированные функции Бесселя нулевого и первого порядка.
Добавить Bijector FillTriangular для создания треугольных матриц.
Добавлена поддержка типа III DCT и tf.spectral.idct(type=2|3)
.
Правильно обрабатывать CuDNN RNN вес, загруженный при вложении в TimeDistributed
.
Добавление поддержки веса для каждого элемента в WALSComputePartialLhsAndRhsOp
.
Операторы ZerosLike и OnesLike обрабатываются как константы инструментом преобразования графа.
Гамма-распределение и производные распределения (бета, Дирихле, t-распределение Стьюдента, обратное гамма-распределение) теперь полностью перепараметризированы.
Java: экспериментальные классы-оболочки для упрощения генерации графов. Спасибо @karllessard и @kbsriram.
Сборка и компоновка защищённых компонентов gRPC (переход от незащищённой зависимости grpc к защищённой).
Добавление новых конечных точек для существующих символов TensorFlow. Эти конечные точки станут предпочтительными конечными точками в будущем и могут заменить некоторые существующие конечные точки в будущем. Список новых конечных точек:
tf.image
: tf.image.extract_image_patches
.tf.debugging
: tf.debugging.check_numerics
, tf.debuging.is_finite
, tf.debugging.is_inf
, tf.debugging.is_nan
.tf.dtypes
: tf.dtypes.as_string
. in tf.io
namespace:decode_base64,
decode_compressed,
decode_json_example,
decode_raw,
encode_base64,
matching_files,
parse_tensor,
read_file,
write_file.
in tf.linalg namespace:
in tf.manip namespace:
in tf.math namespace:
in tf.quantization
namespace:
in tf.strings namespace:
This release contains contributions from many people at Google, as well as: Ag Ramesh, Alex Wiltschko, Alexander Pantyukhin, Amogh Mannekote, An Jiaoyang, Andrei Nigmatulin, Andrew Ginns, BjøRn Moholt, Brett Koonce, Chengzhi Chen, Chinmay Das, Christian Ertler, Christoph Boeddeker, Clayne Robison, Courtial Florian, ctiijima, Dan Douthit, Dan J, Dan Ringwalt, EFanZh, Emanuele Ballarin, eqy, Evgeniy Zheltonozhskiy, Freedom" Koan-Sin Tan, FréDéRic Branchaud-Charron, G K, gracehoney, Guillaume Klein, Guozhong Zhuang, Hsien-Yang Li, hsm207, ImSheridan, Jayaram Bobba, Jiandong Ruan, Jie, Joel Shor, Jonas Rauber, Jongmin Baek, jsawruk, Karan Kaw, Karl Lessard, karl@kubx.ca, Kb Sriram, KinmanLam, leiiwang, Li, Yiqiang, Loo Rong Jie, Mahmoud Abuzaina, Mahmoud Aslan, ManHyuk, Martin Patz, Martin Zeitler, mktozk, Mohammad Ashraf Bhuiyan, mrTsjolder, Naman Bhalla, Nick Felt, Nicolas Lopez, Niranjan Hasabnis, Nishidha Panpaliya, Nitish, nrstott, Nutti, Parag Jain, PeterLee, Philipp Jund, Rach L, Rafal Wojdyla, Roland Zimmermann, Sergei Lebedev, SneakyFish5, Soila Kavulya, Sriram Veturi, Steven Schmatz, Taehoon Lee, Tang, Wenyi, Taras Sereda, Ted Chang, Tim Zaman, Tristan Rice, tucan, vchigrin, Vikram Tiwari, Vincent, WeberXie, William D. Irons, Yan Facai (颜发才), Yong Tang, Yu Yi, Yuxin Wu, Zé ViníCius
Updated docs for tf.keras
: New Keras-based Приступайте к работе (http://tensorflow.org/versions/r1.9/get_started) и обратитесь к странице руководства для программистов (http://tensorflow.org/versions/r1.9/programmers_guide/keras).
Обновите tf.keras
до API Keras 2.1.6.
Добавлены слои tf.keras.layers.CuDNNGRU
(https://www.tensorflow.org/versions/r1.9/api_docs/python/tf/keras/layers/CuDNNGRU) и tf.keras.layers.CuDNNLSTM
(https://www.tensorflow.org/versions/r1.9/api_docs/python/tf/keras/layers/CuDNNLSTM). Попробуйте это (https://colab.sandbox.google.com/github/tensorflow/tensorflow/blob/master/tensorflow/contrib/eager/python/examples/nmt_with_attention/nmt_with_attention.ipynb?linkId=53292082).
Поддержка основных столбцов признаков (https://www.tensorflow.org/get_started/feature_columns) и потерь (https://www.tensorflow.org/api_docs/python/tf/losses) для оценщиков градиентного усиления деревьев (https://github.com/tensorflow/models/tree/master/official/r1/boosted_trees).
Интерфейс Python для оптимизирующего конвертера TFLite (https://www.tensorflow.org/versions/r1.9/api_docs/python/tf/lite) был расширен, а интерфейс командной строки (AKA: toco
, tflite_convert
) снова включён в стандартную установку pip
.
Улучшена загрузка данных и обработка текста с помощью:
tf.decode_compressed
(https://www.tensorflow.org/versions/r1.9/api_docs/python/tf/decode_compressed);tf.string_strip
(https://www.tensorflow.org/versions/r1.9/api_docs/python/tf/string_strip);tf.strings.regex_full_match
(https://www.tensorflow.org/versions/r1.9/api_docs/python/tf/strings/regex_full_match).Добавлена экспериментальная поддержка новых готовых оценщиков:
tf.contrib.estimator.BaselineEstimator
(https://www.tensorflow.org/versions/r1.9/api_docs/python/tf/contrib/estimator/BaselineEstimator);tf.contrib.estimator.RNNClassifier
(https://www.tensorflow.org/versions/r1.9/api_docs/python/tf/contrib/estimator/RNNEstimator);tf.contrib.estimator.RNNEstimator
(https://www.tensorflow.org/versions/r1.9/api_docs/python/tf/contrib/estimator/RNNClassifier).API distributions.Bijector
(https://www.tensorflow.org/versions/r1.9/api_docs/python/tf/contrib/distributions/bijectors/Bijector) поддерживает широковещательную передачу для Bijectors с новыми изменениями API.
variable_scope('', ...)
на variable_scope(tf.get_variable_scope(), ...)
.tfe.Network
устарел. Пожалуйста, наследуйте от tf.keras.Model
.tf.keras.layers
с настраиваемыми областями переменных.tf.layers
в подклассе tf.keras.Model
класса. См. здесь (https://www.tensorflow.org/versions/r1.9/api_docs/python/tf/layers) для получения более подробной информации.tf.data
:
Dataset.from_generator()
принимает список аргументов args
, чтобы создать вложенные генераторы.Dataset.list_files()
даёт детерминированные результаты при shuffle=False
или передаётся seed
.tf.contrib.data.sample_from_datasets()
и tf.contrib.data.choose_from_datasets()
упрощают выборку или детерминированный выбор элементов из нескольких наборов данных.tf.contrib.data.make_csv_dataset()
теперь поддерживает разрывы строк в заключённых в кавычки строках, и два редко используемых аргумента удалены.DatasetBase::DebugString()
теперь является const
.DatasetBase::MakeIterator()
был переименован в DatasetBase::MakeIteratorInternal()
.IteratorBase::Initialize()
, который поддерживает создание ошибок во время построения итератора.tf.GradientTape.stop_recording
.tf.contrib.distribute.MirroredStrategy()
в tf.estimator.RunConfig()
, чтобы запустить модель Estimator на нескольких GPU на одном компьютере.tf.contrib.data.prefetch_to_device()
, которая поддерживает предварительную загрузку данных в память GPU.tf.contrib.bayesflow
перемещается в собственный репозиторий.tf.contrib.{proto,rpc}
, которые позволяют выполнять общий анализ proto и коммуникацию RPC.tf.data
:
tf.contrib.data.prefetch_to_device
, которая позволяет предварительно загружать элементы набора данных в память GPU.tf.contrib.data.AUTOTUNE
, которая позволяет среде выполнения tf.data автоматически настраивать размеры буфера предварительной загрузки в зависимости от вашей системы и среды.tf.contrib.data.make_csv_dataset
для создания наборов данных из CSV-файлов.for batch in dataset:
). Теперь можно использовать Dataset.__iter__()
и Dataset.make_one_shot_iterator()
, чтобы создавать итераторы при включенном eager execution.with tf.device(“/gpu:0”)
) (исправляет #14133).tf.GradientTape
перемещён из contrib.tf.keras
:
image/random_brightness
, sequence/TimeseriesGenerator
и text/hashing_trick
.tf.contrib
:
tf.contrib.layers.recompute_grad
работает для явной контрольной точки градиента на TPU.tf.contrib.framework.argsort
.DNNBoostedTreeCombinedEstimator
работать с основными версиями столбцов функций и потерь.tf.contrib.image.sparse_image_warp
, tf.contrib.image.dense_image_warp
и tf.contrib.image.interpolate_spline
.tf.contrib.opt.MultitaskOptimizerWrapper
, где типы тензоров не совпадали.TF_C_API_GRAPH_CONSTRUCTION=0
в этом выпуске. В будущих выпусках возможность отключить это изменение будет удалена. Пожалуйста, создайте ошибку, если вы обнаружите, что используете этот аварийный люк.tf.distributions.Distribution
.tf.scatter_min
и tf.scatter_max
.float64
для Conv2d
, Conv2dBackpropInput
и Conv2dBackpropFilter
.float64
для AvgPool
/AvgPoolGrad
.tf.image.psnr
, tf.image.ssim
, tf.image.ssim_multiscale
, tf.image.image_gradients
, tf.image.sobel_edges
.The cancellation logic of the RPC op contains a concurrency error. Исправление было отправлено в master и будет частью следующего выпуска.
Этот выпуск содержит вклады многих людей из Google, а также: 4d55397500, Aghasy, Alan Du, Alan Lee, Alan Yee, Alex Wiltschko, Animesh Karnewar, Ankit Gupta, Anton Matosov, Aris L, Ben Barsdell, Brent Yi, Brett Koonce, Carl Thomé, cbockman, Chikanaga Tomoyuki, Chris Tava, CéDric Deltheil, Dahan Gong, Dalmo Cirne, Daniel Erenrich, David Norman, DavidNorman, Edd Wilder-James, Fanjin Zeng, Felix Abecassis, fo40225, George Sterpu, Giovanni Terlingen, Gor Baghdasaryan, Guillaume Klein, Hanchen Li, Ilya Polenov, Jakub Kolodziejczyk, Jason Sadler, Jayaram Bobba, Jerry Liu, jinghuangintel, Jiongyan Zhang (张炯衍), Joel Shor, Jong Wook Kim, Julian Eisenschlos, Karl Lessard, Krish Ravindranath, Loo Rong Jie, Lukas Geiger, Luke Iwanski, Mahmoud Abuzaina, ManHyuk, Marvin Richter, Maximilian Mitchell, Mohammad Ashraf Bhuiyan, msofka, Mustafa Kasap, Nathan Burnham, Nathan Luehr, Naveen Marri, ngc92, nio1814, Oleg Zabluda, Ou Changkun, Panos Ipeirotis, Paul Van Eck, Peter Lee, Piotr Czapla, qjivy, Rholais Lii, Rodrigo Formigone, Russell Klopfer, ryantimjohn, Sang Han, SebastiáN RamíRez, shengfuintel, Siby Jose Plathottam, Silver Chan, Stanislaw Antol, Taehoon Lee, Tarang Chugh, Ted Chang, Thomas Bastiani, Xian Xu, Xiaoming (Jason) Cui, Yan Facai (颜发才), yaox12, Yashal Shakti Kanungo, Yong Tang, Yuan (Terry) Tang, Yuxin Wu, Ziyue(Louis) Lu.
tf.enable_eager_execution()
.tf.contrib.quantize
.tf.custom_gradient
.Dataset
с новым tf.contrib.data.SqlDataset
.tf.contrib.framework.CriticalSection
.tf.regex_replace
.tf.contrib.data.bucket_by_sequence_length
.tf.contrib.tensorrt
, которая позволяет использовать собственный TensorRT в TensorFlow.MaxPoolGradGrad
для XLA.tf.data
:
tf.data.Dataset
:
tf.load_op_library()
.Dataset.list_files()
по умолчанию перемешивает свой вывод.Dataset.shuffle(..., seed=tf.constant(0, dtype=tf.int64))
теперь выдаёт ту же последовательность элементов, что и Dataset.shuffle(..., seed=0)
.num_parallel_reads
в tf.data.TFRecordDataset
.tf.contrib
:
tf.contrib.bayesflow.halton_sequence
теперь поддерживает рандомизацию.tf.contrib.all_reduce
.effective_sample_size
к tf.contrib.bayesflow.mcmc_diagnostics
.potential_scale_reduction
к tf.contrib.bayesflow.mcmc_diagnostics
.BatchNormalization
, Kumaraswamy
.tf.contrib.learn
. Пожалуйста, ознакомьтесь с contrib/learn/README.md для получения инструкций о том, как преобразовать существующий код.tf.contrib.data
tf.contrib.data.Dataset
, tf.contrib.data.Iterator
, tf.contrib.data.FixedLengthRecordDataset
, tf.contrib.data.TextLineDataset и tf.contrib.data.TFRecordDataset: добавлены bucket_by_sequence_length, sliding_window_batch и make_batched_features_dataset.Удалён не поддерживаемый tf.contrib.ndlstm, его можно найти на GitHub по адресу: https://github.com/tmbarchive/tfndlstm.
Большая часть tf.contrib.bayesflow перемещена в собственный репозиторий tfp.
Этот выпуск содержит вклад многих людей из Google, а также:
4d55397500, Abe, Alistair Low, Andy Kernahan, Appledore, Ben, Ben Barsdell, Boris Pfahringer, Brad Wannow, Brett Koonce, Carl Thomé, cclauss, Chengzhi Chen, Chris Drake, Christopher Yeh, Clayne Robison, Codrut Grosu, Daniel Trebbien, Danny Goodman, David Goodwin, David Norman, Deron Eriksson, Donggeon Lim, Donny Viszneki, DosLin, DylanDmitri, Francisco Guerrero, Fred Reiss, gdh1995, Giuseppe, Glenn Weidner, gracehoney, Guozhong Zhuang, Haichen "Hc" Li, Harald Husum, harumitsu.nobuta, Henry Spivey, hsm207, Jekyll Song, Jerome, Jiongyan Zhang, jjsjann123, John Sungjin Park, Johnson145, JoshVarty, Julian Wolff, Jun Wang, June-One, Kamil Sindi, Kb Sriram, Kdavis-Mozilla, Kenji, lazypanda1, Liang-Chi Hsieh, Loo Rong Jie, Mahesh Bhosale, MandarJKulkarni, ManHyuk, Marcus Ong, Marshal Hayes, Martin Pool, matthieudelaro, mdfaijul, mholzel, Michael Zhou, Ming Li, Minmin Sun, Myungjoo Ham, MyungsungKwak, Naman Kamra, Peng Yu, Penghao Cen, Phil, Raghuraman-K, resec, Rohin Mohanadas, Sandeep N Gupta, Scott Tseng, seaotterman, Seo Sanghyeon, Sergei Lebedev, Ted Chang, terrytangyuan, Tim H, tkunic, Tod, vihanjain, Yan Facai (颜发才), Yin Li, Yong Tang, Yukun Chen, Yusuke Yamada.
Исправления ошибок:
import_meta_graph
переменных с разделением при импорте в область видимости. ВНИМАНИЕ: это может привести к нарушению загрузки контрольных точек графов с переменными с разделением после использования import_meta_graph
с аргументом import_scope
, отличным от пустого.WorkerService.DeleteWorkerSession
в интерфейс gRPC для устранения утечки памяти. Убедитесь, что ваши главный и рабочий серверы используют одну и ту же версию TensorFlow, чтобы избежать проблем совместимости.log_det_jacobian
к соответствию log_prob
в TransformedDistribution
.import_meta_graph
переменных с разделением.Прочее:
DenseFlipout
.ignore_live_threads
доступен в train. Если установлено значение True
, он будет игнорировать потоки, которые остаются запущенными при разрушении инфраструктуры после успешного завершения обучения, вместо того чтобы вызывать RuntimeError.DenseVariational
как более простой шаблон для других вероятностных слоёв.tf.data
теперь поддерживает компоненты tf.SparseTensor
в элементах набора данных.Tensor
s.SparseSegmentReduction
иметь отсутствующие идентификаторы сегментов.Conv2D
, Conv2DBackpropInput
, Conv2DBackpropFilter
теперь поддерживают произвольное расширение с поддержкой GPU и cuDNNv6.Estimator
теперь поддерживает Dataset
: input_fn
может возвращать Dataset
вместо Tensor
s.RevBlock
, реализацию остаточных слоёв с эффективным использованием памяти.cross_entropy
и kl_divergence
в tf.distributions.Distribution
.tf.nn.softmax_cross_entropy_with_logits_v2
, который позволяет выполнять обратное распространение относительно меток.ptxas
для компиляции сгенерированного PTX.DynamicStitch
.quantile
в tf.distributions.TransformedDistribution
.NCHW_VECT_C
для tf.depth_to_space
на GPU.NCHW_VECT_C
для tf.space_to_depth
на GPU.SqueezeDims
переименован в Axis
в C++ API для операции Squeeze.Stream::BlockHostUntilDone
теперь возвращает статус, а не логическое значение.stochastic
в common
и удаление stochastic
.CUDA_ILLEGAL_ADDRESS
.
Google обнаружил в середине декабря 2017 года, что компилятор PTX-to-SASS в CUDA 9 и CUDA 9.1 иногда неправильно вычисляет бит переноса при разложении 64-битных адресных вычислений с большими смещениями (например, load [x + large_constant]
) на 32-битную арифметику в SASS.
В результате эти версии ptxas
неправильно компилируют большинство программ XLA, использующих более 4 ГБ временной памяти. Это приводит к мусорным результатам и/или ошибкам CUDA_ERROR_ILLEGAL_ADDRESS
.
Ожидается исправление в CUDA 9.1.121 в конце февраля 2018 года. Мы не... Кликэбл линкс ин зэ кьюрс ю-и.Фиксес страйдз энд бегин дайтэ тип мискматч уэн слайсин визин инт шестьдесят четыре тэнар индекс ин пайтон.
Импрувд конволюшн паддинг докумэнтэшен.
Адд э тэг констант, джипи, ту прэзэнт граф виз джипи суппорт.
савед модел. ютилс нау саппорт спарстэн тэнарс транспарэнтли.
э мор эфышэнт имплэмэнтэшин оф нон мэкс суппрэшн.
адд суппорт фор зэ шринкаж тип эл ту фтрл оптимизер ин адишн ту зэ онлайн эл ту ит олрэди саппортс.
фик нэгитив вэриэнс ин момэнтс калкулэйшн.
экспанд юник оп бэнчмарк тестс ту колэр морэ коллайшн кэйсес.
импрувс стабилити оф джи си эс файлэсистем он макинтош.
адд тайм эстимэйшн ту хло кост аналисис.
фиксд зэ баг ин эстиметор уат пэрс ин констрактор вус нот э дипкопи оф зэ юзэр провидд уан. Зис багс инэвидэнтли энэблд юзэ ту матч зэ пэрс афтер зэ криэйшн оф эстиметор, лэдин ту потэншиалли ундефинэд бэхавиор.
эддэд наун чек фор сав_пэт ин савер. рестор.
рэджистр девицс андер зэр легэси нэймс ин девайс мэнгэр ту илз зэ трэнсэшэн ту кластэр спэц пропэгейтэд конфигурэйшэнс.
вэктор экспонэнциал эддэд ту дистрибушнс.
адд э бит вис модуль виз бит вис энд, бит вис ор, бит вис ксор, энд инвэрт функшэнс.
адд фиксэд грид одэ интэгрэйшэн рутэнс.
аллов пасин бундс ту спайпи оптимизер интерфейс.
коррэкнэсс фиксес фор ффт ленгтх парэмэтр ту ти эф. спектрал эрэфт энд ти эф. спектрал ирэфт.
экспортэд модел сигнэйчэрс юзин зэ преддикт мэтуд вил наунт хэв зэр инпут энд аутпут кэйз силэнтли игнорд энд райтэн ту инпутс энд аутпутс. Иф э модел вус экспортд виз диферэнт нэймз бифор 1.2, энд из нау сэвед виз тэносфорлоу, ит вил акцепт рэкуэстс юзин инпутс энд аутпутс. Стэртинг ат 1.2, сукэн модел вил аксепт зэ кэйз сэптифэд дуринг экспорт. Фор зис рэзон, инфирэнс рэкуэстс юзин инпутс энд аутпутс май старт ту фэйл. Ту фик зис, ифэр апдэйт эни инфирэнс клэнэнтс ту сэнд рэкуэстс визин зэ актюэл инпут энд аутпут кэйзс юзд бай зэ трэйнэр код, ор конверсэли, апдэйт зэ трэйнэр код ту нэйм зэ инпут энд аутпут тэнарз инпутс энд аутпутс, рэспиктивли. Сигнэйчэрс юзинг зэ классфай энд рэгрэсс мэтус ар нот эфэктэд бай зис чэнж; зэй вил кантинъю ту стандардайз зэр инпут энд аутпут кэйзэс эс бифор. tensorflow/examples/ios
Добавляет атрибут family в tf.summary
ops, чтобы можно было контролировать имя вкладки, используемой в Tensorboard для организации сводных данных.
При настройке GPU не требует --config=cuda, вместо этого автоматически собирает для GPU, если это запрошено в скрипте настройки.
Исправляет некорректную выборку малых вероятностей в CPU/GPU multinomial.
Добавляет API list_devices() на сессиях для перечисления устройств в кластере. Кроме того, это изменение расширяет мастер-API ListDevices для поддержки указания сессии.
Позволяет использовать сверхпараметризованные разделимые свёртки.
Исправление ошибки TensorForest для мультирегрессии.
Теперь фреймворк поддерживает armv7, cocoapods.org теперь отображает правильную страницу.
Скрипт для создания iOS-фреймворка для CocoaPods.
Выпуски Android от TensorFlow теперь отправляются в jcenter для более лёгкой интеграции в приложения. Подробнее см. в https://github.com/tensorflow/tensorflow/blob/master/tensorflow/contrib/android/README.md.
TensorFlow Debugger (tfdbg):
tf.Session.make_callable
.Этот выпуск содержит вклад многих людей из Google, а также:
4F2E4A2E, Adriano Carmezim, Adrià Arrufat, Alan Yee, Alex Lattas, Alex Rothberg, Alexandr Baranezky, Ali Siddiqui, Andreas Solleder, Andrei Costinescu, Andrew Hundt, Androbin, Andy Kernahan, Anish Shah, Anthony Platanios, Arvinds-Ds, b1rd, Baptiste Arnaud, Ben Mabey, Benedikt Linse, Beomsu Kim, Bo Wang, Boyuan Deng, Brett Koonce, Bruno Rosa, Carl Thomé, Changming Sun, Chase Roberts, Chirag Bhatia, Chris Antaki, Chris Hoyean Song, Chris Tava, Christos Nikolaou, Croath Liu, cxx, Czxck001, Daniel Ylitalo, Danny Goodman, Darren Garvey, David Brailovsky, David Norman, DavidNorman, davidpham87, ddurham2, Dhruv, DimanNe, Drew Hintz, Dustin Tran, Earthson Lu, ethiraj, Fabian Winnen, Fei Sun, Freedom" Koan-Sin Tan, Fritz Obermeyer, Gao, Xiang, Gautam, Guenther Schmuelling, Gyu-Ho Lee, Hauke Brammer, horance, Humanity123, J Alammar, Jayeol Chun, Jeroen BéDorf, Jianfei Wang, jiefangxuanyan, Jing Jun Yin, Joan Puigcerver, Joel Hestness, Johannes Mayer, John Lawson, Johnson145, Jon Malmaud, Jonathan Alvarez-Gutierrez, Juang, Yi-Lin, Julian Viereck, Kaarthik Sivashanmugam, Karl Lessard, karl@kubx.ca, Kevin Carbone, Kevin Van Der Burgt, Kongsea, ksellesk, lanhin, Lef Ioannidis, Liangliang He, Louis Tiao, Luke Iwanski, LáSzló Csomor, magixsno, Mahmoud Abuzaina, Marcel Hlopko, Mark Neumann, Maxwell Paul Brickner, mdfaijul, MichaëL Defferrard, Michał JastrzęBski, Michele Colombo, Mike Brodie, Mosnoi Ion, mouradmourafiq, myPrecious, Nayana Thorat, Neeraj Kashyap, Nelson Liu, Niranjan Hasabnis, Olivier Moindrot, orome, Pankaj Gupta, Paul Van Eck, peeyush18, Peng Yu, Pierre, preciousdp11, qjivy, Raingo, raoqiyu, ribx, Richard S. Imaoka, Rishabh Patel, Robert Walecki, Rockford Wei, Ryan Kung, Sahil Dua, Sandip Giri, Sayed Hadi Hashemi, sgt101, Shitian Ni, Shuolongbj, Siim PõDer, Simon Perkins, sj6077, SOLARIS, Spotlight0xff, Steffen Eberbach, Stephen Fox, superryanguo, Sven Mayer, Tapan Prakash, Tiago Morais Morgado, Till Hoffmann, Tj Rana, Vadim Markovtsev, vhasanov, Wei Wu, windead, Yan (Asta) Li, Yan Chen, Yann Henon, Yi Wang, Yong Tang, yorkie, Yuan (Terry) Tang, Yuxin Wu, zhengjiajin, zhongzyd, 黄璞
Мы также благодарны всем, кто подавал вопросы или помогал их решать, задавал и отвечал на вопросы, участвовал в вдохновляющих дискуссиях.
Поддержка Python 3.6 на Windows.
Добавлен слой tf.layers.conv3d_transpose
для пространственно-временной деконволюции.
Добавлена функция tf.Session.make_callable()
, которая обеспечивает более низкие накладные расходы при выполнении аналогичного шага несколько раз.
Добавлена поддержка RDMA на основе libverbs в contrib (благодаря @junshi15 из Yahoo).
В API добавлены tf.feature_column.*
. Нерекомендуемая функциональность из tf.contrib.layers. перенесена в tf.feature_column. с косметическими изменениями.**
Объекты RNNCell теперь являются подклассом tf.layers.Layer. Строгость, описанная в выпуске TensorFlow 1.1, исчезла: при первом использовании RNNCell он кэширует свою область видимости. Все последующие использования RNNCell будут повторно использовать переменные из той же области видимости. Это критическое изменение по сравнению с поведением RNNCells в версиях TensorFlow <= 1.0.1. В TensorFlow 1.1 были предусмотрены проверки для обеспечения корректной работы старого кода с новой семантикой; эта версия позволяет более гибко использовать RNNCell, но может привести к тонким ошибкам при использовании кода, предназначенного для TensorFlow <= 1.0.1. Например, запись MultiRNNCell([lstm] * 5) теперь создаст 5-уровневый стек LSTM, где каждый уровень будет иметь одинаковые параметры. Чтобы получить 5 уровней с собственными параметрами, напишите: MultiRNNCell([LSTMCell(...) for _ in range(5)]). Если вы не уверены, сначала протестируйте свой код на TF 1.1; убедитесь, что он не вызывает ошибок, а затем обновитесь до TF 1.2.
Имена переменных RNNCells были переименованы для соответствия слоям Keras. В частности, предыдущие имена переменных «weights» и «biases» были изменены на «kernel» и «bias» соответственно. Это может вызвать обратную несовместимость с вашими старыми контрольными точками, содержащими такие RNN-ячейки, и в этом случае вы можете использовать инструмент скрипт checkpoint_convert, чтобы преобразовать имена переменных в ваших старых контрольных точках.
Многие функции и классы RNN, которые были в пространстве имён tf.nn до выпуска 1.0 и были перемещены в пространство имён tf.contrib.rnn, теперь вернулись в основное пространство имён. Сюда входят RNNCell, LSTMCell, GRUCell и ряд других ячеек. Теперь они находятся в tf.nn.rnn_cell (с псевдонимами в tf.contrib.rnn для обратной совместимости). Исходная функция tf.nn.rnn теперь называется tf.nn.static_rnn, а двунаправленные статические и сохраняющие состояние статические rnn-функции также вернулись в пространство имён tf.nn.
Известными исключениями являются EmbeddingWrapper, InputProjectionWrapper и OutputProjectionWrapper, которые постепенно будут перемещены в устаревание в tf.contrib.rnn. Эти оболочки неэффективны и часто должны заменяться вызовом embedding_lookup или layers.dense в качестве предварительной или последующей обработки rnn. Для декодирования RNN эта функциональность была заменена альтернативным API в tf.contrib.seq2seq.
Интеграция Intel MKL (https://software.intel.com/en-us/articles/tensorflow-optimizations-on-modern-intel-architecture). Intel разработала ряд оптимизированных примитивов глубокого обучения: помимо матричного умножения и свёртки, эти строительные блоки включают:
Оценщик TensorForest теперь поддерживает экспорт SavedModel для обслуживания.
Поддержка клиентских ClusterSpec и их распространение на всех рабочих для создания динамических кластеров TensorFlow.
Библиотека TensorFlow C теперь доступна для Windows.
Мы выпустили новую версию TensorBoard с открытым исходным кодом.
Инструмент SavedModel CLI
доступен для проверки и выполнения MetaGraph в SavedModel.
Android-версии TensorFlow теперь отправляются в jcenter для упрощения интеграции в приложения. Подробнее см. в https://github.com/tensorflow/tensorflow/blob/master/tensorflow/contrib/android/README.md.
Исправления ошибок и другие изменения
Благодарности нашим участникам
Этот выпуск содержит вклад многих людей из Google, а также:
4F2E4A2E, Aaron Schumacher, Abhi Agg, admcrae, Adriano Carmezim, Adrià Arrufat, agramesh1, Akimitsu Seo, Alan Mosca, Alex Egg, Alex Rothberg, Alexander Heinecke, Alexander Matyasko, Alexandr Baranezky, Alexandre Caulier, Ali Siddiqui, Anand Venkat, Andrew Hundt и др. Мы также благодарны всем, кто сообщал о проблемах или помогал их решать, задавал и отвечал на вопросы, а также участвовал в вдохновляющих дискуссиях.
tf.spectral
. Существующие операции FFT перемещены в tf.spectral
, при этом сохранён псевдоним в старом местоположении (tf.*
).tf.spectral
добавлены 1D, 2D и 3D преобразования Фурье для реальных сигналов.tf.bincount
.RecordInput
.tf.contrib.image.compose_transforms
.tf.estimator.*
включены в API. Не устаревшая функциональность из tf.contrib.learn.Estimator
перенесена в tf.estimator.Estimator
с косметическими изменениями.print_source
/ ps
)invoke_stepper
) теперь использует дампы промежуточных тензоров. Он также использует TensorHandles
в качестве прямых каналов во время последовательных вызовов cont
для повышения производительности и снижения потребления памяти.reuse=True
.Мы также благодарны всем, кто сообщал о проблемах или помогал их решать, задавал и отвечал на вопросы, а также участвовал в вдохновляющих дискуссиях.
tf.core
и tf.python
из API. Они никогда не предназначались для раскрытия. Пожалуйста, используйте те же объекты через верхний уровень модуля tf
вместо них.pip install tensorflow
.Чтобы помочь вам обновить существующий код TensorFlow Python в соответствии с изменениями API, мы подготовили скрипт преобразования.
TensorFlow/models были перемещены в отдельный репозиторий GitHub.
Операторы деления и модуля (/, //, %) теперь соответствуют семантике Python (усечение). Это относится к tf.div
и tf.mod
также. Чтобы получить поведение усечения целых чисел, вы можете использовать tf.truncatediv
и tf.truncatemod
.
tf.divide()
теперь является рекомендуемой функцией деления. tf.div()
останется, но его семантика не реагирует на Python 3 или механизмы from future
.
tf.reverse() теперь принимает индексы осей, которые нужно обратить. Например, tf.reverse(a, [True, False, True])
теперь должен быть записан как tf.reverse(a, [0, 2])
. tf.reverse_v2()
останется до версии 1.0 final.
tf.mul
, tf.sub
и tf.neg
устарели в пользу tf.multiply
, tf.subtract
и tf.negative
.
tf.pack
и tf.unpack
устарели в пользу tf.stack
и tf.unstack
.
TensorArray.pack
и TensorArray.unpack
устаревают в пользу TensorArray.stack
и TensorArray.unstack
.
Аргументы следующих функций Python были изменены: Используйте axis
при обращении к конкретным измерениям. Мы сохранили старые ключевые аргументы для совместимости на данный момент, но уберём их задолго до финальной версии 1.0.
tf.argmax
: dimension
становится axis
.
tf.argmin
: dimension
становится axis
.
tf.count_nonzero
: reduction_indices
становится axis
.
tf.expand_dims
: dim
становится axis
.
tf.reduce_all
: reduction_indices
становится axis
.
tf.reduce_any
: reduction_indices
становится axis
.
tf.reduce_join
: reduction_indices
становится axis
.
tf.reduce_logsumexp
: reduction_indices
становится axis
.
tf.reduce_max
: reduction_indices
становится axis
.
tf.reduce_mean
: reduction_indices
становится axis
.
tf.reduce_min
: reduction_indices
становится axis
.
tf.reduce_prod
: reduction_indices
становится axis
.
tf.reduce_sum
: reduction_indices
становится axis
.
tf.reverse_sequence
: batch_dim
становится batch_axis
, seq_dim
становится seq_axis
.
tf.sparse_concat
: concat_dim
становится axis
.
tf.sparse_reduce_sum
: reduction_axes
становится axis
.
tf.sparse_reduce_sum_sparse
: reduction_axes
становится axis
.
tf.sparse_split
: split_dim
становится axis
.
tf.listdiff
был переименован в tf.setdiff1d
для соответствия с NumPy.
tf.inv
был переименован в tf.reciprocal
(компонентное обратное значение), чтобы избежать путаницы с np.inv
, который является матричной инверсией.
Теперь tf.round
использует семантику округления банкира (округление до чётного) для соответствия NumPy.
tf.split
теперь принимает аргументы в обратном порядке и с разными ключевыми словами. В частности, теперь мы следуем порядку NumPy как tf.split(value, num_or_size_splits, axis)
.
tf.sparse_split
теперь принимает аргументы в обратном порядке и с другими ключевыми словами. В частности, мы теперь следуем порядку NumPy, как tf.sparse_split(sp_input, num_split, axis)
. Обратите внимание: мы временно сделали tf.sparse_split
требующим ключевых аргументов.
tf.concat
теперь принимает аргументы в обратном порядке и с различными ключевыми словами. В частности, мы теперь следуем порядку NumPy как tf.concat(values, axis, name)
.
По умолчанию tf.image.decode_jpeg
использует более быстрый метод DCT, жертвуя небольшой точностью ради улучшенной скорости. Можно вернуться к старому поведению, указав атрибут dct_method='INTEGER_ACCURATE'
.
Из интерфейса Python был удалён tf.complex_abs
. Вместо него следует использовать tf.abs
, поддерживающий комплексные тензоры.
В C++ API (в tensorflow/cc) Input, Output и т. д. переместились из пространства имён tensorflow::ops в tensorflow.
Свойство Template.var_scope
было переименовано в .variable_scope
.
SyncReplicasOptimizer был удалён, а SyncReplicasOptimizerV2 переименован в SyncReplicasOptimizer.
tf.zeros_initializer()
и tf.ones_initializer()
теперь возвращают вызываемый объект, который необходимо вызывать с аргументами инициализатора. В вашем коде замените tf.zeros_initializer
на tf.zeros_initializer()
.
SparseTensor.shape
был переименован в SparseTensor.dense_shape
. То же самое касается SparseTensorValue.shape
.
Замените tf.scalar_summary
, tf.histogram_summary
, tf.audio_summary
и tf.image_summary
на tf.summary.scalar
, tf.summary.histogram
, tf.summary.audio
и tf.summary.image
соответственно. Новые сводные операции принимают имя вместо тега в качестве первого аргумента, что означает, что сводные операции теперь учитывают области имён TensorFlow.
Замените tf.train.SummaryWriter
и tf.train.SummaryWriterCache
на tf.summary.FileWriter
и tf.summary.FileWriterCache
.
Удаляет RegisterShape из общедоступного API. Вместо этого используйте регистрацию функции формы C++.
Устарели _ref
типы данных из API Python.
В C++ API (в tensorflow/cc), Input, Output и т.д. переместились из пространства имён tensorflow::ops в tensorflow.
Измените порядок аргументов для {softmax,sparse_softmax,sigmoid}_cross_entropy_with_logits
, чтобы он был (метки, прогнозы), и принудительно используйте именованные аргументы.
tf.nn.rnn_cell.* и большинство функций в tf.nn.rnn.* (за исключением dynamic_rnn и raw_rnn) временно находятся в tf.contrib.rnn. Они будут перемещены обратно в ядро для TF 1.2.
И tf.nn.sampled_softmax_loss
, и tf.nn.nce_loss
имеют оба... Изменён API таким образом, что необходимо поменять местами параметры inputs
и labels
на labels
и inputs
.
Ключевой аргумент shape
в конструкторе SparseTensor
между Tensorflow 0.12 и Tensorflow 1.0 меняет своё название на dense_shape
.
parallel_stack
.sparse_column_with_vocabulary_file
, чтобы указать столбец признаков, который преобразует строковые признаки в идентификаторы, где сопоставление определяется словарём файлов.index_to_string_table
, который возвращает таблицу поиска, которая сопоставляет индексы со строками.ParallelForWithWorkerId
.contrib/session_bundle
.tf.contrib.framework.filter_variables
для удобства фильтрации списков переменных на основе регулярных выражений.make_template()
принимает необязательный параметр custom_getter_
.recursive_create_dir
.contrib/android/cmake
.tf.saved_model
.reduce_join
для обработки reduction_indices
аналогично другим операциям reduce_
.TensorForestEstimator
в contrib/tensor_forest
.tf.divide
теперь учитывает поле имени.StagingArea
и новых OP: stage
и unstage
.Этот выпуск содержит вклад многих людей из Google, а также:
Аарон Ху, Абхишек Аггарвал, Адам Майкл, Адриано Кармезим, @AfirSraftGarrier, Александр Новиков, Александр Розенберг Йохансен, Андрей Гибианский, Эндрю Хундт, Аниш Шах, Антон Лосс, @b0noI, @BoyuanJiang, Карл Томе, Чед Кеннеди, Комик Чанг, Коннор Браа, Даниэль Н. Ланг, Даниэль Треббиен, @danielgordon10, Дарси Лю, Даррен Гарви, Дмитрий Лапин, Эрон Райт, Эван Кофер, Фабрицио Мило, Финбар Тимберс, Франк Дернонкур, Гаррет Смит, @guschmue, Хао Вэй, Хенрик Хольст, Хуацзо Гао, @Ian, @Issac, Джейкоб Израэль, Джангсу Парк, Джин Ким, Цзинтянь Пэн, Джон Поуп, Кай Бостельманн, Лянлян Хэ, Линг Чжан, Лухэн Хэ, Люк Ивански, @lvli, Михаил Базильян, Михир Патель, Михалай Драбович, Мортен Джаст, @newge, Ник Батлин, Нишант Шукла, Пэнфэй Ни, Пшемыслав Тредак, @rasbt, @Ronny, Рудольф Роза, @RustingSword, Сэм Абрахамс, Сэм Патнэм, @SeongAhJo, Ши Цзясинь, @skavulya, Стеффен Мюллер, @TheUSER123, @tiriplicamihai, @vhasanov, Виктор Костан, Вит Степановс, Ванда Тан, Вэньцзянь Хуан, Синдун Цзоу, Ярослав Булатов, Йота Тояма, Юань (Терри) Тан, Юйсинь Ву.
Мы также благодарны всем, кто подавал вопросы или помогал их решать, задавал и отвечал на вопросы, а также был частью вдохновляющих дискуссий. И HDFS файловые системы в настоящее время не поддерживаются. В настоящее время не реализованы следующие операции:
Go: экспериментальный API на Go для создания и выполнения графов (https://godoc.org/github.com/tensorflow/tensorflow/tensorflow/go).
Новый формат контрольных точек становится стандартным в tf.train.Saver. Старые контрольные точки V1 остаются доступными для чтения; контролируется аргументом write_version, tf.train.Saver теперь по умолчанию записывает в новом формате V2. Это значительно снижает требуемую пиковую память и задержку при восстановлении.
Добавлена новая библиотека для библиотеки матричных (итерационных) решателей для линейных уравнений, линейных наименьших квадратов, собственных значений и сингулярных значений в tensorflow/contrib/solvers. Начальная версия имеет ланцошскую бидиагонализацию, сопряжённые градиенты и CGLS.
Добавлены градиенты для matrix_solve_ls и self_adjoint_eig.
Большая очистка для добавления второго порядка градиента для операций с градиентами C++ и улучшения существующих градиентов, так что большинство операций теперь можно дифференцировать несколько раз.
Добавлен решатель для обыкновенных дифференциальных уравнений, tf.contrib.integrate.odeint.
Новый модуль contrib для тензоров с именованными осями, tf.contrib.labeled_tensor.
Визуализация вложений в TensorBoard.
BusAdjacency enum заменён протоколом буфера DeviceLocality. Индексирование PCI-шины теперь начинается с 1 вместо 0, а bus_id==0 используется там, где ранее использовался BUS_ANY.
Env::FileExists и FileSystem::FileExists теперь возвращают tensorflow::Status вместо bool. Любые вызывающие эту функцию могут быть преобразованы в bool путём добавления .ok() к вызову.
Тип C API TF_SessionWithGraph был переименован в TF_Session, что указывает на его предпочтительное использование в языковых привязках для TensorFlow. То, что раньше было TF_Session, было переименовано в TF_DeprecatedSession.
Переименовал TF_Port в TF_Output в C API.
Удаляет RegisterShape из общедоступного API. Вместо этого используйте регистрацию функции формы C++.
Большинство RNN-ячеек и RNN-функций теперь используют разные области переменных, чтобы соответствовать слоям (tf.contrib.layers). Это означает, что старые контрольные точки, записанные с использованием этого кода, не будут загружаться после этого изменения без предоставления Saver списка переименований переменных. Примеры изменений области видимости переменных включают RNN -> rnn в tf.nn.rnn, tf.nn.dynamic_rnn и перемещение из Linear/Matrix -> weights и Linear/Bias -> biases в большинстве ячеек RNN.
Устарело tf.select op. Следует использовать tf.where.
SparseTensor.shape был переименован в SparseTensor.dense_shape. То же самое для SparseTensorValue.shape. tf.all_variables, tf.VARIABLES и tf.initialize_all_variables переименованы в tf.global_variables, tf.GLOBAL_VARIABLES и tf.global_variables_initializer соответственно.
tf.zeros_initializer() и tf.ones_initializer() теперь возвращают вызываемый объект, который должен быть вызван с аргументами инициализатора. В вашем коде замените tf.zeros_initializer на tf.zeros_initializer().
Этот выпуск содержит вклад многих людей из Google, а также:
@a7744hsc, Abhi Agg, @admcrae, Adriano Carmezim, Aki Sukegawa, Alex Kendall, Alexander Rosenberg Johansen, @amcrae, Amlan Kar, Andre Simpelo, Andreas Eberle, Andrew Hundt, Arnaud Lenglet, @b0noI, Balachander Ramachandran, Ben Barsdell, Ben Guidarelli, Benjamin Mularczyk, Burness Duan, @c0g, Changming Sun, @chanis, Corey Wharton, Dan J, Daniel Trebbien, Darren Garvey, David Brailovsky, David Jones, Di Zeng, @DjangoPeng, Dr. Kashif Rasul, @drag0, Fabrizio (Misto) Milo, FabríCio Ceschin, @fp, @Ghedeon, @guschmue, Gökçen Eraslan, Haosdent Huang, Haroen Viaene, Harold Cooper, Henrik Holst, @hoangmit, Ivan Ukhov, Javier Dehesa, Jingtian Peng, Jithin Odattu, Joan Pastor, Johan Mathe, Johannes Mayer, Jongwook Choi, Justus Schwabedal, Kai Wolf, Kamil Hryniewicz, Kamran Amini, Karen Brems, Karl Lattimer, @kborer, Ken Shirriff, Kevin Rose, Larissa Laich, Laurent Mazare, Leonard Lee, Liang-Chi Hsieh, Liangliang He, Luke Iwanski, Marek Kolodziej, Moustafa Alzantot, @MrQianjinsi, @nagachika, Neil Han, Nick Meehan, Niels Ole Salscheider, Nikhil Mishra, @nschuc, Ondrej Skopek, OndřEj Filip, @OscarDPan, Pablo Moyano, Przemyslaw Tredak, @qitaishui, @Quarazy, @raix852, Philipp Helo, Sam Abrahams, @SriramRamesh, Till Hoffmann, Tushar Soni, @tvn, @tyfkda, Uwe Schmidt, Victor Villas, Vit Stepanovs, Vladislav Gubarev, @wujingyue, Xuesong Yang, Yi Liu, Yilei Yang, @youyou3, Yuan (Terry) Tang, Yuming Wang, Zafar Takhirov, @zhongyuk, Ziming Dong, @guotong1988
Мы также благодарны всем, кто подавал вопросы или помогал их решать, задавал и отвечал на вопросы, участвовал в вдохновляющих дискуссиях.
Мы также благодарны всем, кто сообщал о проблемах или помогал их решать, задавал и отвечал на вопросы, а также участвовал в вдохновляющих дискуссиях.
contrib/learn
.contrib/linear_optimizer
.contrib/tensor_forest
.contrib/ctc
.half
.contrib/
).TENSORFLOW_USE_EIGEN_THREADPOOL
.tf.while_loop
(устаревший control_flow_ops.While
).В этом выпуске есть вклад многих людей из Google, а также:
Абхинав Упадхьяй, Аджелоса Авгериноса, Алан Ву, Александр Г. де Г. Мэтьюз, Александр Яхнев, @amchercashin, Энди Китчен, Орельен Джерон, Авни Ханнун, @BanditCat, Бас Вилинг, Кэмерон Чен, @cg31, Ченг-Лун Сунг, Кристофер Боннетт, Дэн Беккер, Дэн Ван Боксэл, Дэниел Голден, Данияр Хафнер, Дэнни Гудман, Дэйв Декер, Дэвид Дао, Дэвид Кретч, Донджун Хён, Дастин Дорро, @e-lin, Эурико Доираду, Эрик Эрвитт, Фабрицио Мило, @gaohuazuo, Иблис Лин, Игорь Бабушкин, Айзек Ходс, Айзек Тёрнер, Иван Валлес, Джей Йегерленер, Джек Чжан, Джеймс Векслер, Ян Зикс, Джей Янг, Джефф Ходжес, @jmtatsch, Джонни Лим, Йонас Майнерц Хансен, Канит Вонгсупават, Кашиф Расул, Кен Ширрифф, Кеннет Митчер, Кента Ёнекура, Конрад Магнуссон, Константин Лопухин, @lahwran, @lekaha, @liyongsea, Лукас Адамс, @makseq, Мандип Сингх, @manipopopo, Марк Амери, Мемо Актен, Майкл Хейлман, Майкл Петиль, Натан Дейли, Николя Фошере, @ninotoshi, Олав Нимёэн, @panmari, @papelita1234, Педро Лопес, Пранав Салеш Мани, Р. Дж. Райан, Роб Каллитон, Роберт ДиПьетро, @ronrest, Сэм Абрахамс, Сарат Шеккизар, Скотт Грэм, Себастьян Рашка, Сун Ким, Сурья Бхупатираджу, Сайед Ахмед, Тилл Хоффманн, @timsl, @urimend, @vesnica, Влад Фролов, Влад Загородний, Вэй-Тинг Куо, Вэньцзянь Хуан, Уильям Дмирти Бреден Мэдден, Владимир Шмидт, Юань Тан, Юйвэнь Янь, Юйсинь У, Юя Кусакабэ, @zhongzyd, @znah.
Мы также благодарим всех, кто сообщал о проблемах или помогал их решать, задавал и отвечал на вопросы, а также участвовал в вдохновляющих дискуссиях.
Исправления ошибок и другие изменения
Критические изменения API
Основные функции и улучшения:
Исправления ошибок:
Изменения, несовместимые с предыдущими версиями:
TensorFlow 0.5.0 — первоначальный выпуск TensorFlow.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )