Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/354.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将TensorFlow与Sage一起使用_Python_Tensorflow_Sage - Fatal编程技术网

Python 将TensorFlow与Sage一起使用

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

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

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

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
是在当前目录中运行可执行文件的方式。)