4

当我import syft,发生以下错误:

AttributeError: type object 'Tensor' has no attribute 'fft'

我按照PySyft Doc安装 syft。我import syft在 Ubuntu 18.04 和 Google Colab 环境中都试过了。两者都有相同的错误。

Google Colab 上的完整错误信息如下,

import syft as sf

---------------------------------------------------------------------------

AttributeError                            Traceback (most recent call last)

<ipython-input-4-71fdfd268bf5> in <module>()
----> 1 import syft as sf

9 frames

/usr/local/lib/python3.7/dist-packages/syft/__init__.py in <module>()
     59 from syft.core.common.serde.serialize import _serialize as serialize  # noqa: F401
     60 from syft.core.node.common.service.repr_service import ReprMessage  # noqa: F401
---> 61 from syft.core.node.device.device import Device  # noqa: F401
     62 from syft.core.node.device.device import DeviceClient  # noqa: F401
     63 from syft.core.node.domain.domain import Domain  # noqa: F401

/usr/local/lib/python3.7/dist-packages/syft/core/node/device/__init__.py in <module>()
      1 # syft relative
----> 2 from .client import DeviceClient
      3 from .device import Device
      4 
      5 __all__ = ["DeviceClient", "Device"]

/usr/local/lib/python3.7/dist-packages/syft/core/node/device/client.py in <module>()
     14 from ...io.location import SpecificLocation
     15 from ...io.route import Route
---> 16 from ..common.client import Client
     17 
     18 

/usr/local/lib/python3.7/dist-packages/syft/core/node/common/client.py in <module>()
     18 from ....core.pointer.pointer import Pointer
     19 from ....decorators import syft_decorator
---> 20 from ....lib import lib_ast
     21 from ....proto.core.node.common.client_pb2 import Client as Client_PB
     22 from ....proto.core.node.common.metadata_pb2 import Metadata as Metadata_PB

/usr/local/lib/python3.7/dist-packages/syft/lib/__init__.py in <module>()
     24 
     25 # constructor: copyType = create_lib_ast
---> 26 lib_ast = create_lib_ast()
     27 lib_ast._copy = create_lib_ast

/usr/local/lib/python3.7/dist-packages/syft/lib/__init__.py in create_lib_ast()
     10 
     11     python_ast = create_python_ast()
---> 12     torch_ast = create_torch_ast()
     13     torchvision_ast = create_torchvision_ast()
     14     # numpy_ast = create_numpy_ast()

/usr/local/lib/python3.7/dist-packages/syft/lib/torch/__init__.py in create_torch_ast()
     52                 continue
     53             ast.add_path(
---> 54                 path=method, framework_reference=torch, return_type_name=return_type
     55             )
     56             # add all the torch.nn.Parameter hooks

/usr/local/lib/python3.7/dist-packages/syft/ast/globals.py in add_path(self, path, index, return_type_name, framework_reference)
     64         if hasattr(attr, "add_path"):
     65             attr.add_path(  # type: ignore
---> 66                 path=path, index=1, return_type_name=return_type_name
     67             )
     68 

/usr/local/lib/python3.7/dist-packages/syft/ast/module.py in add_path(self, path, index, return_type_name, framework_reference)
    119         if hasattr(attr, "add_path"):
    120             attr.add_path(  # type: ignore
--> 121                 path=path, index=index + 1, return_type_name=return_type_name
    122             )

/usr/local/lib/python3.7/dist-packages/syft/ast/callable.py in add_path(self, path, index, return_type_name)
     80             if path[index] not in self.attrs:
     81 
---> 82                 attr_ref = getattr(self.ref, path[index])
     83 
     84                 if isinstance(attr_ref, module_type):

AttributeError: type object 'Tensor' has no attribute 'fft'

有谁知道如何解决这个问题?谢谢。

4

3 回答 3

2

pip 安装适用于旧 pytorch 的较低版本的 pysyft。那将解决它。

于 2021-03-31T18:47:23.443 回答
0

PySyft 目前不支持 Torch 1.8。请参阅pysyft 问题火炬 1.8

于 2021-03-18T02:10:19.023 回答
0

这解决了我的问题

  1. 使用以下命令安装 Torch:<pip install torch==1.4.0+cpu torchvision==0.5.0+cpu -f https://download.pytorch.org/whl/torch_stable.html>(仅适用于 cpu 版本)

  2. 使用以下命令安装 syft:<pip install syft==0.2.9 --user>

于 2021-07-03T06:55:39.993 回答