This repository was archived by the owner on Dec 2, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 432
This repository was archived by the owner on Dec 2, 2023. It is now read-only.
The TF Eager example in /README.md doens't run correctly #80
Copy link
Copy link
Open
Description
Install Tangent and Eager Execution
I ran the following commands with the Ubuntu 16.04 Docker image:
- Choose version
v0.1.9in my local tangent repo. - Start the container
docker run --rm -it -v $PWD:/tangent /bin/bashwhere$PWDrefers to my local git clone of tangent. - Install requirements inside the containers
pip install -r /tangent/requirements.txt
Run the Program
I copied the TF Eager example from /README.md and tried to run it:
import tensorflow as tf
import tangent
import numpy
tf.enable_eager_execution()
tf.executing_eagerly()
def f(W,x):
h1 = tf.matmul(x,W)
h2 = tf.tanh(h1)
out = tf.reduce_sum(h2)
return out
dfdW = tangent.grad(f, verbose=1)
x = W = [[2.]]
print dfdW(W, x)I ran the above program by executing the following command in the container:
PYTHONPATH=/tangent python tests/a.pyThe Error Messages
It sees the the autodiff works as it prints the derived dfdW, but it doesn't work running dfdW:
root@4f0441d33975:/tangent# PYTHONPATH=$PWD python tests/a.py
def dfdW(W, x, bout=1.0):
h1 = tf.matmul(x, W)
h2 = tf.tanh(h1)
out = tf.reduce_sum(h2)
assert tangent.shapes_match(out, bout
), 'Shape mismatch between return value (%s) and seed derivative (%s)' % (
numpy.shape(out), numpy.shape(bout))
# Grad of: out = tf.reduce_sum(h2)
_bh2 = tangent.unreduce(bout, tangent.shape_as_list(h2), None, False)
bh2 = _bh2
# Grad of: h2 = tf.tanh(h1)
_h2 = h2
_bh1 = bh2 * (1 - _h2 * _h2)
bh1 = _bh1
# Grad of: h1 = tf.matmul(x, W)
_bW = tangent.matmul_adjoint_y(bh1, x, W, False, False)
bW = _bW
return bW
2018-06-06 23:56:15.318751: I tensorflow/core/platform/cpu_feature_guard.cc:141] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2 FMA
Traceback (most recent call last):
File "tests/a.py", line 17, in <module>
print dfdW(W, x)
File "/tmp/tmpV9NwKl/tangent_068c.py", line 5, in dfdW
assert tangent.shapes_match(out, bout
File "/tangent/tangent/utils.py", line 629, in shapes_match
shape_checker = shape_checkers[(type(a), type(b))]
KeyError: (<type 'EagerTensor'>, <type 'float'>)
root@4f0441d33975:/tangent# PYTHONPATH=$PWD python tests/a.py
2018-06-07 00:00:54.341592: I tensorflow/core/platform/cpu_feature_guard.cc:141] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2 FMA
Traceback (most recent call last):
File "tests/a.py", line 17, in <module>
print dfdW(W, x)
File "/tmp/tmpVEP8ir/tangent_43bb.py", line 5, in dfdW
assert tangent.shapes_match(out, bout
File "/tangent/tangent/utils.py", line 629, in shapes_match
shape_checker = shape_checkers[(type(a), type(b))]
KeyError: (<type 'EagerTensor'>, <type 'float'>)
It complains that out = tf.reduce_sum(h2), which has type EagerTensor, and bout, which is of float, do not have the same type.
Could you please recommend the right way to handle this error? It doesn't seem work if I pass in an EagerTensor to bout.
Thank you!
Reactions are currently unavailable