Python 将TensorFlow与Sage一起使用
我在TensorFlow中写了一些东西,它利用了一些很好的群论函数,这些函数在Sage中很容易工作(而且从零开始编写代码似乎非常困难)。Sage部分独立工作,TensorFlow部分独立工作,但我不知道如何让它们一起工作 具体来说:我可以使用Sage函数创建文件test.py,并使用以下命令行运行它:Python 将TensorFlow与Sage一起使用,python,tensorflow,sage,Python,Tensorflow,Sage,我在TensorFlow中写了一些东西,它利用了一些很好的群论函数,这些函数在Sage中很容易工作(而且从零开始编写代码似乎非常困难)。Sage部分独立工作,TensorFlow部分独立工作,但我不知道如何让它们一起工作 具体来说:我可以使用Sage函数创建文件test.py,并使用以下命令行运行它: sage --python test.py 没问题。但是使用TensorFlow从.py文件调用test.py中定义的函数失败(“导入错误,没有名为Sage的模块”),可能是因为Sage(6.x
sage --python test.py
没问题。但是使用TensorFlow从.py文件调用test.py中定义的函数失败(“导入错误,没有名为Sage的模块”),可能是因为Sage(6.x)使用Python2.6.x,而TensorFlow使用Python2.7或3.3+
有办法解决这个问题吗
谢谢
编辑:我不确定这是否相关,但如果启动普通Python(TensorFlow使用的那种),我会得到以下结果:
from sage.env import SAGE_LOCAL
SAGE_LOCAL
sage
SAGE_LOCAL
它输出“$SAGE\u ROOT/local”
但是,如果我先激活Sage,我会得到以下结果:
from sage.env import SAGE_LOCAL
SAGE_LOCAL
sage
SAGE_LOCAL
输出“”/usr/lib/sagemath/local”
如果有必要的话,我刚刚升级到Sage 7.0(虽然在6.10中也不起作用)。这里有一些没有做的事情(还没有);不要只拿你碰巧拥有的任何东西,然后去做:
$ sage -pip install https://storage.googleapis.com/tensorflow/mac/tensorflow-0.7.1-cp27-none-any.whl
尽管这“管用”,它也有一些关于升级numpy和six的令人担忧的消息,这完全破坏了我的Sage安装中numpy的部分。这是Sage-6.9的结果
这意味着你必须确保你有一个圣人,有正确的版本的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-as发行版不允许您使用其他tensorflow。尝试使用Hacky thing——运行包含Sage但不包含tensorflow的Python,获取导入sys的结果;打印sys.path,然后运行包含TensorFlow但不包含Sage的Python并运行
sys.path.extend()
@Yaroslav:您的意思是使用print sys.path
输出的列表,然后将这些字符串中的每一个附加到TensorFlow的Python中的sys.path?这引发了一个不同的错误,尽管仍然来自sage.all import*。我还编辑了上面的描述,并提供了更多信息。注意:也在@SamuelLelièvre询问:这也是我,我问了两个地方,因为我不确定问题/解决方案来自TensorFlow或Sage的哪一面。Python版本不应该是问题:``$Sage-ipython Python 2.7.9(默认,2015年10月13日,12:06:06)键入“版权”,“信用证”或“许可证”了解更多信息```正在尝试/sage-pip安装https://sto. . .
返回bash:./sage:没有这样的文件或目录
。不过,我可以将cd刻录到.sage文件夹中。/sage
的功能是什么?我想我应该有最新的开发版本,昨晚我删除了旧的二进制文件并安装了Sage 7.0。(无论如何,因为我有最新的版本,所以我尝试了第一个命令[Sage-pip install…
],它现在可以工作了,谢谢!)对不起,我已经将cd
插入目录中-我会更新。(/sage
是在当前目录中运行可执行文件的方式。)