小编lam*_*ung的帖子

无法加载本机TensorFlow运行时.Python 3.5.2

我正在尝试在我的PC上安装Tensorflow,我安装了Python 3.5.2 64位,cuda_8.0.61用于Windows 10和cudnn-8.0-windows10-x64-v6.0

我使用"native"pip来安装Tensorflow的GPU版本,然后我打开IDLE并使用"import tensorflow as tf"进行测试,我得到了错误

我怎样才能解决这个问题 ?提前谢谢你<3

Traceback (most recent call last):
  File "C:\Users\Admin\AppData\Local\Programs\Python\Python35\lib\site-packages\tensorflow\python\pywrap_tensorflow_internal.py", line 18, in swig_import_helper
    return importlib.import_module(mname)
  File "C:\Users\Admin\AppData\Local\Programs\Python\Python35\lib\importlib\__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 986, in _gcd_import
  File "<frozen importlib._bootstrap>", line 969, in _find_and_load
  File "<frozen importlib._bootstrap>", line 958, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 666, in _load_unlocked
  File "<frozen importlib._bootstrap>", line 577, in module_from_spec
  File "<frozen importlib._bootstrap_external>", line 906, in create_module
  File "<frozen importlib._bootstrap>", line 222, …
Run Code Online (Sandbox Code Playgroud)

python pip python-3.x tensorflow

7
推荐指数
2
解决办法
4万
查看次数

在 Tensorflow 中删除张量的维度

我有一个有形状的张量,(50, 100, 1, 512)我想重塑它或删除第三维,以便新的张量有形状(50, 100, 512)

我曾尝试tf.slicetf.squeeze

a = tf.slice(a, [50, 100, 1, 512], [50, 100, 1, 512])
b = tf.squeeze(a)
Run Code Online (Sandbox Code Playgroud)

当我尝试打印 的形状时,一切似乎都在工作ab但是当我开始训练我的模型时,出现了这个错误

tensorflow.python.framework.errors_impl.InvalidArgumentError: Expected size[0] in [0, 0], but got 50
     [[Node: Slice = Slice[Index=DT_INT32, T=DT_FLOAT, _device="/job:localhost/replica:0/task:0/device:CPU:0"](MaxPool_2, Slice/begin, Slice/size)]]
Run Code Online (Sandbox Code Playgroud)

我的slice. 我该如何解决。谢谢

python slice tensorflow tensor

6
推荐指数
2
解决办法
1万
查看次数

从 Pytorch C++ 中的 c10::Dict&lt;c10::IValue, c10::IValue&gt; 获取值

我在 Pytorch C++ 前端使用 TorchScript 模型。

Python 中的模型返回一个outputdict 作为 Dict[str, List[torch.Tensor]].

当我在 C++ 中使用它时,它返回一个c10::Dict<c10::IValue, c10::IValue>. 这段 Python 代码的等价物是什么:

value_a = output['key_a']
value_b = output['key_b']
Run Code Online (Sandbox Code Playgroud)

在 C++ 中从中获取值c10::Dict

我已经尝试过了,但它不起作用。

torch::IValue key_a("key_a");
torch::IValue key_b("key_b");
c10::IValue value_a = output[key_a];
c10::IValue value_b = output[key_b];
std::cout << value_a << std::endl;
std::cout << value_b << std::endl;
Run Code Online (Sandbox Code Playgroud)

和错误:

error: type 'c10::Dict<c10::IValue, c10::IValue>' does not provide a subscript operator
Run Code Online (Sandbox Code Playgroud)

c++ torch pytorch torchscript libtorch

5
推荐指数
1
解决办法
2633
查看次数

创建共享内存Numpy ndarray,无需内存复制

I\xe2\x80\x99m 尝试创建 Numpy 数组,该数组可以被同一台机器上的其他进程极快地访问。经过大量研究和测试,我决定尝试使用 Python 3.8 共享内存来实现这一目标,希望使用共享内存可以允许以亚毫秒的速度在进程之间共享大型 numpy 数组。

\n

实现将是这样的:

\n
    \n
  • 在第一个 ipython shell 上(在第一个进程上):
  • \n
\n
import time\nimport numpy as np\nfrom multiprocessing.shared_memory import SharedMemory\n\narr = np.random.randint(0, 255, (5000, 5000, 4), dtype=np.uint8)\nshm = SharedMemory(create=True, size=arr.nbytes)\n\nshm_arr = np.ndarray(arr.shape, dtype=arr.dtype, buffer=shm.buf)\nshm_arr[:] = arr[:]\n
Run Code Online (Sandbox Code Playgroud)\n
    \n
  • 在第二个 ipython shell 上(在第二个进程上):
  • \n
\n
import numpy as np\nimport time\nfrom multiprocessing.shared_memory import SharedMemory\n\nshm = SharedMemory(name=\'test\')\nshm_arr = np.ndarray([5000, 5000, 4], dtype=np.uint8, buffer=shm.buf)\nshm.close()\n
Run Code Online (Sandbox Code Playgroud)\n

但这里有一个瓶颈。为了在第一个进程上创建共享 numpy 数组,我需要使用:

\n
shm_arr[:] = arr[:]\n
Run Code Online (Sandbox Code Playgroud)\n

这意味着有一个从arr到 的内存复制操作 …

numpy shared-memory multiprocessing python-3.8

5
推荐指数
0
解决办法
921
查看次数