将 TensorFlow 与 Sage 结合使用

Using TensorFlow with Sage

我在 TensorFlow 中使用了一些很好的群论函数编写了一些东西,这些函数在 Sage 中很容易工作(而且似乎很难从头开始编写代码)。 Sage 部分独立工作,TensorFlow 部分独立工作,但我不知道如何让它们一起工作。

具体来说:我可以使用 Sage 函数创建一个文件 test.py 并使用命令行 运行 使用:

sage --python test.py

没问题。但是使用 TensorFlow 从 .py 文件调用定义在 test.py 中的函数失败 ("Import error, no module named Sage"),大概是因为 Sage (6.x) 使用 Python 2.6.x ,而 TensorFlow 使用 Python 2.7 或 3.3+。

有办法解决这个问题吗?

谢谢!

编辑:我不确定这是否相关,但如果我正常启动 Python(TensorFlow 使用的那种),我得到这个:

from sage.env import SAGE_LOCAL
SAGE_LOCAL

输出 '$SAGE_ROOT/local'.

但是如果我先启动 Sage,我会得到这个:

sage
SAGE_LOCAL

输出''/usr/lib/sagemath/local'.

如果这很重要,我刚刚升级到 Sage 7.0(不过这在 6.10 中也不起作用)。

有些事情不能做;不要随便安装你碰巧安装的任何 Sage 并执行:

$ sage -pip install https://storage.googleapis.com/tensorflow/mac/tensorflow-0.7.1-cp27-none-any.whl

尽管如此 "works",它也有一些关于升级 numpy 和 6 的令人担忧的消息,这完全破坏了我安装的 Sage 的 numpy 部分。这是 Sage-6.9。

这意味着您必须确保您的 Sage 具有正确版本的 Numpy 和六个。对于最新的开发版本,我们显然是:

$ cd /path/to/my/bleeding/edge/sage/directory
$ ./sage -pip install https://storage.googleapis.com/tensorflow/mac/tensorflow-0.7.1-cp27-none-any.whl
Collecting tensorflow==0.7.1 from https://storage.googleapis.com/tensorflow/mac/tensorflow-0.7.1-cp27-none-any.whl
  Using cached https://storage.googleapis.com/tensorflow/mac/tensorflow-0.7.1-cp27-none-any.whl
Requirement already satisfied (use --upgrade to upgrade): six>=1.10.0 in ./local/lib/python2.7/site-packages/six-1.10.0-py2.7.egg (from tensorflow==0.7.1)
Collecting protobuf==3.0.0b2 (from tensorflow==0.7.1)
  Using cached protobuf-3.0.0b2-py2.py3-none-any.whl
Collecting wheel (from tensorflow==0.7.1)
  Using cached wheel-0.29.0-py2.py3-none-any.whl
Requirement already satisfied (use --upgrade to upgrade): numpy>=1.10.1 in ./local/lib/python2.7/site-packages (from tensorflow==0.7.1)
Requirement already satisfied (use --upgrade to upgrade): setuptools in ./local/lib/python2.7/site-packages/setuptools-20.1.1-py2.7.egg (from protobuf==3.0.0b2->tensorflow==0.7.1)
Installing collected packages: protobuf, wheel, tensorflow
Successfully installed protobuf-3.0.0b2 tensorflow-0.7.1 wheel-0.29.0
You are using pip version 8.0.2, however version 8.1.0 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.

然后我没有遇到任何失败。

所以必须小心,但显然这是可能的。但是,您肯定必须从 "within" Sage 中使用它; Sage-as-distribution 不允许您将其他 tensorflow 与它一起使用。