-
Notifications
You must be signed in to change notification settings - Fork 14
/
math_ops.py
135 lines (102 loc) · 3.33 KB
/
math_ops.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
import tensorflow as tf
"""
Same as with string, we now discover basic operations in Tensorflow for interger/float
"""
############################
## DEALING WITH CONSTANT ###
############################
a = tf.constant(2)
b = tf.constant(3)
a
# Define some operations
add = tf.add(a, b)
mul = tf.mul(a, b)
# Launch the default graph.
with tf.Session() as sess:
# Print the TF constants
print("The constant a: " + str(a) ) # a is not equal to 2 but the constant a is assign to 2 during the session
print("The constant b: " + str(b))
# Get the values of each constants
(a_value, b_value) = sess.run([a, b]) # a_value and b_value are not anymore Tensorflow operation
print("a=%i, b=%i" % (a_value, b_value))
# Basic math operation on constant
print("Addition with constants: %i" % sess.run(add))
print("Multiplication with constants: %i" % sess.run(mul))
#######################################
### WITH PLACEHOLDERS AND VARIABLES ###
#######################################
a = tf.placeholder(tf.int16)
b = tf.placeholder(tf.int16)
# Define some operations
add = tf.add(a, b)
mul = tf.mul(a, b)
# Launch the default graph.
with tf.Session() as sess:
# Run every operation with variable input
print("Addition with variables: %i" % sess.run(add, feed_dict={a: 2, b: 3}))
print("Multiplication with variables: %i" % sess.run(mul, feed_dict={a: 2, b: 3}))
##################
### EXERCISE 1 ###
##################
"""
Dealing with matrices
"""
import numpy as np
# My two placeholders for the matrices
A = tf.placeholder(tf.int32, shape=[2,3])
A.get_shape()
B = tf.placeholder(tf.int32, shape=[2,3])
B.get_shape()
# Compute = A'.B
mult = tf.matmul(A,B, transpose_a=True)
# Launch the default graph.
with tf.Session() as sess:
# Create two numpy matrices
A_value = np.array([1, 2, 3, 4, 5, 6]).reshape((2,3))
print("A = ")
print(A_value)
print("")
B_value = np.array([1, 0, 2, 0, 0, -1]).reshape((2, 3))
print("B = ")
print(B_value)
print("")
# Get value for the mult operation
mult_value = sess.run(mult, feed_dict={A: A_value, B: B_value})
print("mult A' by B = ")
print(mult_value)
print("")
##################
### EXERCISE 2 ###
##################
"""
Dealing with matrices again
"""
# My two placeholders for the matrices
A = tf.placeholder(tf.int32, shape=[2,3])
A.get_shape()
B = tf.placeholder(tf.int32, shape=[2,3])
B.get_shape()
# Pairwise multiplication and sum over the matrix
mult_element_by_element = tf.mul(A,B) #????? # see tf.mul
sum = tf.reduce_sum(mult_element_by_element) #????? # see tf.reduce_sum
# Launch the default graph.
with tf.Session() as sess:
# Create two numpy matrices
A_value = np.array([1, 2, 3, 4, 5, 6]).reshape((2,3))
print("A = ")
print(A_value)
print("")
B_value = np.array([1, 0, 2, 0, 0, -1]).reshape((2, 3))
print("B = ")
print(B_value)
print("")
# Get value for the element by element multiplication operation
mult_element_by_element_value = sess.run(mult_element_by_element, feed_dict={A: A_value, B: B_value})
print("A by B element by element = ")
print(mult_element_by_element_value)
print("")
# Get value for sum operation
sum_value = sess.run(sum, feed_dict={A: A_value, B: B_value})
print("A by B element by element then sum = ")
print(sum_value)
print("")