我在 TensorFlow 中使用了一些很好的群论函数编写了一些东西,这些函数在 Sage 中很容易工作(而且似乎很难从头开始编写代码)。 Sage 部分独立工作,TensorFlow 部分独立工作,但我不知道如何让它们一起工作。
具体来说:我可以使用 Sage 函数创建文件 test.py 并使用以下命令从命令行运行它:
sage --python test.py
没问题。但是使用 TensorFlow 从 .py 文件调用 test.py 中定义的函数失败(“导入错误,没有名为 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
即使这“有效”,它也有一些关于升级 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.
然后我没有遇到任何失败。
所以必须小心,但显然这是可能的。但是,您肯定必须从 Sage“内部”使用它; Sage-as-distribution 不允许您将其他 tensorflow 与它一起使用。
