TensorFlow
TensorFlow is a free and open-source software library for machine learning and artificial intelligence. It can be used across a range of tasks but has a particular focus on training and inference of deep neural networks.[3][4]
Developer(s)
Google Brain Team[1]
November 9, 2015
$_$_$DEEZ_NUTS#1__answer--8DEEZ_NUTS$_$_$
$_$_$DEEZ_NUTS#1__answer--9DEEZ_NUTS$_$_$
$_$_$DEEZ_NUTS#0__titleDEEZ_NUTS$_$_$
$_$_$DEEZ_NUTS#0__subtitleDEEZ_NUTS$_$_$
$_$_$DEEZ_NUTS#0__call_to_action.textDEEZ_NUTS$_$_$$_$_$DEEZ_NUTS#0__titleDEEZ_NUTS$_$_$
$_$_$DEEZ_NUTS#0__subtitleDEEZ_NUTS$_$_$
$_$_$DEEZ_NUTS#0__call_to_action.textDEEZ_NUTS$_$_$
It was developed by the Google Brain team for Google's internal use in research and production.[5][6][7] The initial version was released under the Apache License 2.0 in 2015.[1][8] Google released an updated version, TensorFlow 2.0, in September 2019.[9]
TensorFlow can be used in a wide variety of programming languages, including Python, JavaScript, C++, and Java,[10] facilitating its use in a range of applications in many sectors.
$_$_$DEEZ_NUTS#14__titleDEEZ_NUTS$_$_$
$_$_$DEEZ_NUTS#14__descriptionDEEZ_NUTS$_$_$
$_$_$DEEZ_NUTS#1__titleDEEZ_NUTS$_$_$
$_$_$DEEZ_NUTS#1__descriptionDEEZ_NUTS$_$_$
History[edit]
$_$_$DEEZ_NUTS#1__titleDEEZ_NUTS$_$_$
$_$_$DEEZ_NUTS#1__descriptionDEEZ_NUTS$_$_$
$_$_$DEEZ_NUTS#2__titleDEEZ_NUTS$_$_$
$_$_$DEEZ_NUTS#2__descriptionDEEZ_NUTS$_$_$
$_$_$DEEZ_NUTS#3__titleDEEZ_NUTS$_$_$
$_$_$DEEZ_NUTS#3__descriptionDEEZ_NUTS$_$_$
$_$_$DEEZ_NUTS#3__titleDEEZ_NUTS$_$_$
$_$_$DEEZ_NUTS#3__descriptionDEEZ_NUTS$_$_$
$_$_$DEEZ_NUTS#3__titleDEEZ_NUTS$_$_$
$_$_$DEEZ_NUTS#3__descriptionDEEZ_NUTS$_$_$
DistBelief[edit]
Starting in 2011, Google Brain built DistBelief as a proprietary machine learning system based on deep learning neural networks. Its use grew rapidly across diverse Alphabet companies in both research and commercial applications.[11][12] Google assigned multiple computer scientists, including Jeff Dean, to simplify and refactor the codebase of DistBelief into a faster, more robust application-grade library, which became TensorFlow.[13] In 2009, the team, led by Geoffrey Hinton, had implemented generalized backpropagation and other improvements, which allowed generation of neural networks with substantially higher accuracy, for instance a 25% reduction in errors in speech recognition.[14]
TensorFlow[edit]
TensorFlow is Google Brain's second-generation system. Version 1.0.0 was released on February 11, 2017.[15] While the reference implementation runs on single devices, TensorFlow can run on multiple CPUs and GPUs (with optional CUDA and SYCL extensions for general-purpose computing on graphics processing units).[16] TensorFlow is available on 64-bit Linux, macOS, Windows, and mobile computing platforms including Android and iOS.
Its flexible architecture allows for the easy deployment of computation across a variety of platforms (CPUs, GPUs, TPUs), and from desktops to clusters of servers to mobile and edge devices.
TensorFlow computations are expressed as stateful dataflow graphs. The name TensorFlow derives from the operations that such neural networks perform on multidimensional data arrays, which are referred to as tensors.[17] During the Google I/O Conference in June 2016, Jeff Dean stated that 1,500 repositories on GitHub mentioned TensorFlow, of which only 5 were from Google.[18]
In December 2017, developers from Google, Cisco, RedHat, CoreOS, and CaiCloud introduced Kubeflow at a conference. Kubeflow allows operation and deployment of TensorFlow on Kubernetes.
In March 2018, Google announced TensorFlow.js version 1.0 for machine learning in JavaScript.[19]
In Jan 2019, Google announced TensorFlow 2.0.[20] It became officially available in September 2019.[9]
In May 2019, Google announced TensorFlow Graphics for deep learning in computer graphics.[21]
$_$_$DEEZ_NUTS#2__titleDEEZ_NUTS$_$_$
$_$_$DEEZ_NUTS#2__descriptionDEEZ_NUTS$_$_$
$_$_$DEEZ_NUTS#12__titleDEEZ_NUTS$_$_$
$_$_$DEEZ_NUTS#12__descriptionDEEZ_NUTS$_$_$
$_$_$DEEZ_NUTS#12__heading--0DEEZ_NUTS$_$_$
$_$_$DEEZ_NUTS#12__description--0DEEZ_NUTS$_$_$
$_$_$DEEZ_NUTS#11__titleDEEZ_NUTS$_$_$
$_$_$DEEZ_NUTS#11__descriptionDEEZ_NUTS$_$_$
$_$_$DEEZ_NUTS#11__heading--0DEEZ_NUTS$_$_$
$_$_$DEEZ_NUTS#11__description--0DEEZ_NUTS$_$_$
$_$_$DEEZ_NUTS#10__titleDEEZ_NUTS$_$_$
$_$_$DEEZ_NUTS#10__descriptionDEEZ_NUTS$_$_$
$_$_$DEEZ_NUTS#10__heading--0DEEZ_NUTS$_$_$
$_$_$DEEZ_NUTS#10__description--0DEEZ_NUTS$_$_$
$_$_$DEEZ_NUTS#10__heading--1DEEZ_NUTS$_$_$
$_$_$DEEZ_NUTS#10__description--1DEEZ_NUTS$_$_$
$_$_$DEEZ_NUTS#10__heading--2DEEZ_NUTS$_$_$
$_$_$DEEZ_NUTS#10__description--2DEEZ_NUTS$_$_$
Features[edit]
AutoDifferentiation[edit]
AutoDifferentiation is the process of automatically calculating the gradient vector of a model with respect to each of its parameters. With this feature, TensorFlow can automatically compute the gradients for the parameters in a model, which is useful to algorithms such as backpropagation which require gradients to optimize performance.[32] To do so, the framework must keep track of the order of operations done to the input Tensors in a model, and then compute the gradients with respect to the appropriate parameters.[32]
Eager execution[edit]
TensorFlow includes an “eager execution” mode, which means that operations are evaluated immediately as opposed to being added to a computational graph which is executed later.[33] Code executed eagerly can be examined step-by step-through a debugger, since data is augmented at each line of code rather than later in a computational graph.[33] This execution paradigm is considered to be easier to debug because of its step by step transparency.[33]
Distribute[edit]
In both eager and graph executions, TensorFlow provides an API for distributing computation across multiple devices with various distribution strategies.[34] This distributed computing can often speed up the execution of training and evaluating of TensorFlow models and is a common practice in the field of AI.[34][35]
Losses[edit]
To train and assess models, TensorFlow provides a set of loss functions (also known as cost functions).[36] Some popular examples include mean squared error (MSE) and binary cross entropy (BCE).[36] These loss functions compute the “error” or “difference” between a model's output and the expected output (more broadly, the difference between two tensors). For different datasets and models, different losses are used to prioritize certain aspects of performance.
Metrics[edit]
In order to assess the performance of machine learning models, TensorFlow gives API access to commonly used metrics. Examples include various accuracy metrics (binary, categorical, sparse categorical) along with other metrics such as Precision, Recall, and Intersection-over-Union (IoU).[37]
TF.nn[edit]
TensorFlow.nn is a module for executing primitive neural network operations on models.[38] Some of these operations include variations of convolutions (1/2/3D, Atrous, depthwise), activation functions (Softmax, RELU, GELU, Sigmoid, etc.) and their variations, and other operations (max-pooling, bias-add, etc.).[38]
$_$_$DEEZ_NUTS#4__titleDEEZ_NUTS$_$_$
$_$_$DEEZ_NUTS#4__subtextDEEZ_NUTS$_$_$
$_$_$DEEZ_NUTS#7__descriptionDEEZ_NUTS$_$_$
$_$_$DEEZ_NUTS#7__heading--0DEEZ_NUTS$_$_$
$_$_$DEEZ_NUTS#7__description--0DEEZ_NUTS$_$_$
$_$_$DEEZ_NUTS#13__titleDEEZ_NUTS$_$_$
$_$_$DEEZ_NUTS#13__descriptionDEEZ_NUTS$_$_$
$_$_$DEEZ_NUTS#13__heading--0DEEZ_NUTS$_$_$
$_$_$DEEZ_NUTS#13__description--0DEEZ_NUTS$_$_$
Usage and extensions[edit]
TensorFlow[edit]
TensorFlow serves as a core platform and library for machine learning. TensorFlow's APIs use Keras to allow users to make their own machine-learning models.[41] In addition to building and training their model, TensorFlow can also help load the data to train the model, and deploy it using TensorFlow Serving.[42]
TensorFlow provides a stable Python Application Program Interface (API),[43] as well as APIs without backwards compatibility guarantee for Javascript,[44] C++,[45] and Java.[46][10] Third-party language binding packages are also available for C#,[47][48] Haskell,[49] Julia,[50] MATLAB,[51] Object Pascal,[52] R,[53] Scala,[54] Rust,[55] OCaml,[56] and Crystal.[57] Bindings that are now archived and unsupported include Go[58] and Swift.[59]
TensorFlow.js[edit]
TensorFlow also has a library for machine learning in JavaScript. Using the provided JavaScript APIs, TensorFlow.js allows users to use either Tensorflow.js models or converted models from TensorFlow or TFLite, retrain the given models, and run on the web.[42][60]
TFLite[edit]
TensorFlow Lite has APIs for mobile apps or embedded devices to generate and deploy TensorFlow models.[61] These models are compressed and optimized in order to be more efficient and have a higher performance on smaller capacity devices.[62]
TensorFlow Lite uses FlatBuffers as the data serialization format for network models, eschewing the Protocol Buffers format used by standard TensorFlow models.[62]
TFX[edit]
TensorFlow Extended (abbrev. TFX) provides numerous components to perform all the operations needed for end-to-end production.[63] Components include loading, validating, and transforming data, tuning, training, and evaluating the machine learning model, and pushing the model itself into production.[42][63]
Applications[edit]
Medical[edit]
GE Healthcare used TensorFlow to increase the speed and accuracy of MRIs in identifying specific body parts.[72] Google used TensorFlow to create DermAssist, a free mobile application that allows users to take pictures of their skin and identify potential health complications.[73] Sinovation Ventures used TensorFlow to identify and classify eye diseases from optical coherence tomography (OCT) scans.[73]
Social media[edit]
Twitter implemented TensorFlow to rank tweets by importance for a given user, and changed their platform to show tweets in order of this ranking.[74] Previously, tweets were simply shown in reverse chronological order.[74] The photo sharing app VSCO used TensorFlow to help suggest custom filters for photos.[73]
Education[edit]
InSpace, a virtual learning platform, used TensorFlow to filter out toxic chat messages in classrooms.[76] Liulishuo, an online English learning platform, utilized TensorFlow to create an adaptive curriculum for each student.[77] TensorFlow was used to accurately assess a student's current abilities, and also helped decide the best future content to show based on those capabilities.[77]
$_$_$DEEZ_NUTS#7__titleDEEZ_NUTS$_$_$
$_$_$DEEZ_NUTS#15__titleDEEZ_NUTS$_$_$
$_$_$DEEZ_NUTS#15__subtextDEEZ_NUTS$_$_$
$_$_$DEEZ_NUTS#5__titleDEEZ_NUTS$_$_$
$_$_$DEEZ_NUTS#5__subtextDEEZ_NUTS$_$_$
$_$_$DEEZ_NUTS#6__titleDEEZ_NUTS$_$_$
$_$_$DEEZ_NUTS#6__subtextDEEZ_NUTS$_$_$
$_$_$DEEZ_NUTS#4__titleDEEZ_NUTS$_$_$
$_$_$DEEZ_NUTS#4__subtextDEEZ_NUTS$_$_$
$_$_$DEEZ_NUTS#4__titleDEEZ_NUTS$_$_$
$_$_$DEEZ_NUTS#4__subtextDEEZ_NUTS$_$_$
$_$_$DEEZ_NUTS#2__titleDEEZ_NUTS$_$_$
$_$_$DEEZ_NUTS#2__subtextDEEZ_NUTS$_$_$
$_$_$DEEZ_NUTS#2__answer--0DEEZ_NUTS$_$_$
$_$_$DEEZ_NUTS#2__answer--1DEEZ_NUTS$_$_$
$_$_$DEEZ_NUTS#2__answer--2DEEZ_NUTS$_$_$
$_$_$DEEZ_NUTS#2__answer--3DEEZ_NUTS$_$_$
$_$_$DEEZ_NUTS#2__answer--4DEEZ_NUTS$_$_$
$_$_$DEEZ_NUTS#2__answer--5DEEZ_NUTS$_$_$
$_$_$DEEZ_NUTS#2__answer--6DEEZ_NUTS$_$_$
$_$_$DEEZ_NUTS#2__answer--7DEEZ_NUTS$_$_$
$_$_$DEEZ_NUTS#2__answer--8DEEZ_NUTS$_$_$
$_$_$DEEZ_NUTS#2__answer--9DEEZ_NUTS$_$_$
$_$_$DEEZ_NUTS#1__titleDEEZ_NUTS$_$_$
$_$_$DEEZ_NUTS#1__subtextDEEZ_NUTS$_$_$
$_$_$DEEZ_NUTS#1__answer--0DEEZ_NUTS$_$_$
$_$_$DEEZ_NUTS#1__answer--1DEEZ_NUTS$_$_$
$_$_$DEEZ_NUTS#1__answer--2DEEZ_NUTS$_$_$
$_$_$DEEZ_NUTS#1__answer--3DEEZ_NUTS$_$_$
$_$_$DEEZ_NUTS#1__answer--4DEEZ_NUTS$_$_$
$_$_$DEEZ_NUTS#1__answer--5DEEZ_NUTS$_$_$
$_$_$DEEZ_NUTS#1__answer--6DEEZ_NUTS$_$_$
$_$_$DEEZ_NUTS#1__answer--7DEEZ_NUTS$_$_$
$_$_$DEEZ_NUTS#1__answer--8DEEZ_NUTS$_$_$
$_$_$DEEZ_NUTS#1__answer--9DEEZ_NUTS$_$_$
$_$_$DEEZ_NUTS#1__answer--10DEEZ_NUTS$_$_$
$_$_$DEEZ_NUTS#1__answer--11DEEZ_NUTS$_$_$
$_$_$DEEZ_NUTS#1__answer--12DEEZ_NUTS$_$_$
$_$_$DEEZ_NUTS#1__answer--13DEEZ_NUTS$_$_$
$_$_$DEEZ_NUTS#1__answer--14DEEZ_NUTS$_$_$
$_$_$DEEZ_NUTS#1__answer--15DEEZ_NUTS$_$_$
$_$_$DEEZ_NUTS#1__answer--16DEEZ_NUTS$_$_$
$_$_$DEEZ_NUTS#4__titleDEEZ_NUTS$_$_$
$_$_$DEEZ_NUTS#4__subtextDEEZ_NUTS$_$_$
$_$_$DEEZ_NUTS#4__answer--0DEEZ_NUTS$_$_$
$_$_$DEEZ_NUTS#4__answer--1DEEZ_NUTS$_$_$
$_$_$DEEZ_NUTS#4__answer--2DEEZ_NUTS$_$_$
$_$_$DEEZ_NUTS#4__answer--3DEEZ_NUTS$_$_$
$_$_$DEEZ_NUTS#4__answer--4DEEZ_NUTS$_$_$
$_$_$DEEZ_NUTS#4__answer--5DEEZ_NUTS$_$_$
$_$_$DEEZ_NUTS#4__answer--6DEEZ_NUTS$_$_$
$_$_$DEEZ_NUTS#4__answer--7DEEZ_NUTS$_$_$
$_$_$DEEZ_NUTS#4__answer--8DEEZ_NUTS$_$_$
$_$_$DEEZ_NUTS#4__answer--9DEEZ_NUTS$_$_$
$_$_$DEEZ_NUTS#4__answer--10DEEZ_NUTS$_$_$
$_$_$DEEZ_NUTS#4__answer--11DEEZ_NUTS$_$_$
$_$_$DEEZ_NUTS#3__titleDEEZ_NUTS$_$_$
$_$_$DEEZ_NUTS#3__subtextDEEZ_NUTS$_$_$
$_$_$DEEZ_NUTS#3__answer--0DEEZ_NUTS$_$_$
$_$_$DEEZ_NUTS#3__answer--1DEEZ_NUTS$_$_$
$_$_$DEEZ_NUTS#3__answer--2DEEZ_NUTS$_$_$
$_$_$DEEZ_NUTS#3__answer--3DEEZ_NUTS$_$_$
$_$_$DEEZ_NUTS#3__answer--4DEEZ_NUTS$_$_$
$_$_$DEEZ_NUTS#3__answer--5DEEZ_NUTS$_$_$
$_$_$DEEZ_NUTS#3__answer--6DEEZ_NUTS$_$_$
$_$_$DEEZ_NUTS#3__answer--7DEEZ_NUTS$_$_$
$_$_$DEEZ_NUTS#3__answer--8DEEZ_NUTS$_$_$
$_$_$DEEZ_NUTS#5__titleDEEZ_NUTS$_$_$
$_$_$DEEZ_NUTS#5__subtextDEEZ_NUTS$_$_$
$_$_$DEEZ_NUTS#5__answer--0DEEZ_NUTS$_$_$
$_$_$DEEZ_NUTS#5__answer--1DEEZ_NUTS$_$_$
$_$_$DEEZ_NUTS#5__answer--2DEEZ_NUTS$_$_$
$_$_$DEEZ_NUTS#5__answer--3DEEZ_NUTS$_$_$
$_$_$DEEZ_NUTS#5__answer--4DEEZ_NUTS$_$_$
$_$_$DEEZ_NUTS#5__answer--5DEEZ_NUTS$_$_$
$_$_$DEEZ_NUTS#5__answer--6DEEZ_NUTS$_$_$
$_$_$DEEZ_NUTS#5__answer--7DEEZ_NUTS$_$_$
$_$_$DEEZ_NUTS#5__answer--8DEEZ_NUTS$_$_$
$_$_$DEEZ_NUTS#5__answer--9DEEZ_NUTS$_$_$
$_$_$DEEZ_NUTS#5__answer--10DEEZ_NUTS$_$_$
$_$_$DEEZ_NUTS#5__answer--11DEEZ_NUTS$_$_$
$_$_$DEEZ_NUTS#1__titleDEEZ_NUTS$_$_$
$_$_$DEEZ_NUTS#1__subtextDEEZ_NUTS$_$_$
$_$_$DEEZ_NUTS#1__answer--0DEEZ_NUTS$_$_$
$_$_$DEEZ_NUTS#1__answer--1DEEZ_NUTS$_$_$
$_$_$DEEZ_NUTS#1__answer--2DEEZ_NUTS$_$_$
$_$_$DEEZ_NUTS#1__answer--3DEEZ_NUTS$_$_$
$_$_$DEEZ_NUTS#1__answer--4DEEZ_NUTS$_$_$
$_$_$DEEZ_NUTS#1__answer--5DEEZ_NUTS$_$_$
$_$_$DEEZ_NUTS#1__answer--6DEEZ_NUTS$_$_$
$_$_$DEEZ_NUTS#1__answer--7DEEZ_NUTS$_$_$
$_$_$DEEZ_NUTS#1__answer--8DEEZ_NUTS$_$_$
$_$_$DEEZ_NUTS#1__answer--9DEEZ_NUTS$_$_$
$_$_$DEEZ_NUTS#1__answer--10DEEZ_NUTS$_$_$
$_$_$DEEZ_NUTS#1__answer--11DEEZ_NUTS$_$_$
$_$_$DEEZ_NUTS#1__answer--12DEEZ_NUTS$_$_$
$_$_$DEEZ_NUTS#1__answer--13DEEZ_NUTS$_$_$
$_$_$DEEZ_NUTS#1__answer--14DEEZ_NUTS$_$_$
$_$_$DEEZ_NUTS#6__titleDEEZ_NUTS$_$_$
$_$_$DEEZ_NUTS#6__subtextDEEZ_NUTS$_$_$
$_$_$DEEZ_NUTS#6__answer--0DEEZ_NUTS$_$_$
$_$_$DEEZ_NUTS#6__answer--1DEEZ_NUTS$_$_$
$_$_$DEEZ_NUTS#6__answer--2DEEZ_NUTS$_$_$
$_$_$DEEZ_NUTS#6__answer--3DEEZ_NUTS$_$_$
$_$_$DEEZ_NUTS#6__answer--4DEEZ_NUTS$_$_$
$_$_$DEEZ_NUTS#6__answer--5DEEZ_NUTS$_$_$
$_$_$DEEZ_NUTS#6__answer--6DEEZ_NUTS$_$_$
$_$_$DEEZ_NUTS#6__answer--7DEEZ_NUTS$_$_$
$_$_$DEEZ_NUTS#6__answer--8DEEZ_NUTS$_$_$