Skip to content

Commit

Permalink
Add files via upload
Browse files Browse the repository at this point in the history
  • Loading branch information
Vincibean authored Nov 1, 2016
1 parent 834a530 commit a910a77
Showing 1 changed file with 223 additions and 0 deletions.
223 changes: 223 additions & 0 deletions matrix-multiplication.ipynb
Original file line number Diff line number Diff line change
@@ -0,0 +1,223 @@
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Matrix Multiplication"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Abstract"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Computation in TensorFlow is represented as a graph. \n",
"\n",
"Nodes in the graph are called ops (short for operations). An op takes zero or more Tensors (typed multi-dimensional arrays), performs some computation, and produces zero or more Tensors.\n",
"\n",
"A TensorFlow graph is a description of computations. To compute anything, a graph must be launched in a Session. A Session places the graph ops onto Devices, such as CPUs or GPUs, and provides methods to execute them."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Introduction"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"This tutorial is taken, with slight modification and different annotations, from [TensorFlow's official documentation](https://www.tensorflow.org/versions/r0.11/get_started/basic_usage.html).\n",
"\n",
"This tutorial is intended for readers who are new to both machine learning and TensorFlow. "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Graph Construction"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"First of all, we import the TensorFlow library."
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"import tensorflow as tf"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We then create a _constant_ op that produces a 1x2 matrix. The op is added as a node to the default graph.\n",
"\n",
"The value returned by the constructor represents the output of the Constant op."
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"matrix1 = tf.constant([[3., 3.]])"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We create another _constant_ that produces a 2x1 matrix."
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"matrix2 = tf.constant([[2.],[2.]])"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Finally, we create a _matmul_ op that takes _matrix1_ and _matrix2_ as inputs. The returned value, _product_, represents the result of the matrix multiplication."
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"product = tf.matmul(matrix1, matrix2)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Launching of the Session"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"To compute anything, a graph must first be launched in a _Session_. Let's create our _Session_ by launching the default graph."
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"sess = tf.Session()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"To run the matmul op we call the session _run()_ method, passing _product_ (which represents the output of the matmul op). This indicates to the call that we want to get the output of the matmul op back.\n",
"\n",
"All inputs needed by the op are run automatically by the session. They typically are run in parallel.\n",
"\n",
"The call _run(product)_ thus causes the execution of three ops in the graph: the two constants and matmul.\n",
"\n",
"The output of the op is returned in _result_ as a numpy _ndarray_ object."
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[[ 12.]]\n"
]
}
],
"source": [
"result = sess.run(product)\n",
"print(result)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Once we are done, let's close the Session."
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"sess.close()"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.5.2"
}
},
"nbformat": 4,
"nbformat_minor": 1
}

0 comments on commit a910a77

Please sign in to comment.