【问题标题】:Using TensorFlow with Sage将 TensorFlow 与 Sage 一起使用
【发布时间】:2016-03-09 01:24:24
【问题描述】:

我在 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 中也不起作用)。

【问题讨论】:

  • Hacky thing to try -- 运行有 Sage 但没有 TensorFlow 的 Python,获取 import sys; print sys.path 的结果,然后运行有 TensorFlow 但没有 Sage 的 Python 并运行 sys.path.extend(<paths>)
  • @Yaroslav:您的意思是使用print sys.path 输出的列表,然后将这些字符串中的每一个附加到 TensorFlow 的 Python 中的 sys.path 中吗?这引发了一个不同的错误,尽管仍然来自from sage.all import *。我还用更多信息编辑了上面的描述。
  • @SamuelLelièvre:也是我,我在两个地方问过,因为我不确定问题/解决方案来自 TensorFlow 或 Sage 的哪一方。
  • Python 版本应该不是问题:``` $ sage -ipython Python 2.7.9 (default, Oct 13 2015, 12:06:06) 键入“copyright”、“credits”或“许可证”以获取更多信息。 ```

标签: python tensorflow sage


【解决方案1】:

这是不要做的事情(还);不要只拿你碰巧拥有的任何 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 和 6。显然,使用最新的开发版本:

$ 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。

【讨论】:

  • 尝试./sage -pip install https://sto. . . 返回bash: ./sage: No such file or directory。不过,我可以 cd 进入 .sage 文件夹。 ./sage的作用是什么?我想我应该有最新的开发版本,我昨晚删除了旧的二进制文件并安装了 Sage 7.0。
  • (无论如何,因为我有最新版本,所以我尝试了第一个命令 [sage -pip install . . .],它现在可以工作了,谢谢!)
  • 抱歉,我已将 cded 放入目录 - 我会更新。 (./sage 是您在当前目录中运行可执行文件的方式。)
猜你喜欢
  • 2017-03-07
  • 1970-01-01
  • 1970-01-01
  • 2016-04-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多