小编use*_*051的帖子

Python中的多维符号矩阵

我想通过计算每个索引组合的值来创建特定大小的3D矩阵.矩阵中的每个值都是符号的.

我到现在为止做了些什么:

import numpy as np
import sympy as sp

var1 = np.arange(1,10,2)
var2 = np.arange(1,10,2)
var3 = np.arange(20,50,5)

myMatrix = np.zeros(shape = (len(var1), len(var2), len(var3)))
t = sp.symbols('t')

for ii in range(len(var1)):
    for jj in range(len(var2)):
        for kk in range(len(var3)):
            myMatrix[ii][jj][kk] = var1[ii] * var2[jj] * var3[kk] * t
Run Code Online (Sandbox Code Playgroud)

这给了我错误:

TypeError:无法将表达式转换为float

据我所知,这是由于结合了numpy和sympy.因此,我试过:

myMatrix = sp.MatrixSymbol('temp', len(var1), len(var2), len(var3))
Run Code Online (Sandbox Code Playgroud)

代替:

myMatrix = np.zeros(shape = (len(var1), len(var2), len(var3)))
Run Code Online (Sandbox Code Playgroud)

并得到一个错误:

TypeError:new()只需4个参数(给定5个)

总而言之,我的问题是:如何创建一个包含内部任何变量​​的3D矩阵,以便能够在嵌套循环中使用它,这涉及符号计算?

(这是我在这个社区的第一篇文章,所以如果我做错了,请告诉我.)

python numpy matrix sympy

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

在GPU上运行时使用TensorFlow内存:为什么看起来并非所有内存都被使用?

这是我在此处发布的问题的后续跟踪:在AWS实例g2.2xlarge上使用TensorFlow运行卷积神经网络时出现大图像的内存错误

我使用TensorFlow在Python中构建了一个CNN模型,并在NVIDIA GRID K520 GPU上运行它.它可以在64x64图像下正常运行,但会产生128x128图像的内存错误(即使输入只包含1个图像).

错误说Ran out of memory trying to allocate 2.00GiB.2GiB是我第一个完全连接的层的大小(输入:128*128*2(channels)输出:) 128*128 * 4 bytes = 2.14748 GB = 2.0 GiB.

这里,我可以看到GRID K520具有8GB = 7.45GiB内存.当我开始运行我的代码时,我也看到了输出:Total memory: 3.94GiB, Free memory: 3.91GiB.

我的问题是,所有这些数字之间的关系是什么:如果GPU上有7.45GiB内存,为什么总内存只有3.94GiB,最重要的是,为什么GPU不能分配2GiB内存,这只占总数的一半以上记忆?(我不是计算机科学家,所以详细的答案很有价值.)

一些更具体的信息,以防它有用:我尝试使用allow_growthper_process_gpu_memory_fraction.仍然得到内存错误,但也有一些内存统计(如果有人可以向我解释这些数字,真的很感激):

allow_growth = True
Stats: 
Limit:                  3878682624
InUse:                  2148557312
MaxInUse:               2148557312
NumAllocs:                      13
MaxAllocSize:           2147483648

allow_growth = False
Stats: 
Limit:                  3878682624
InUse:                  3878682624
MaxInUse:               3878682624
NumAllocs:                      13
MaxAllocSize:           3877822976

per_process_gpu_memory_fraction = 0.5
allow_growth …
Run Code Online (Sandbox Code Playgroud)

python memory memory-management deep-learning tensorflow

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

Python:np.vectorize返回“浮点数”

运行以下代码:

import matplotlib.pyplot as plt
import numpy as np

def xon (ton, t):
    if ton <= t:
        return (t-ton)/5
    else:
        return 0

vxon = np.vectorize(xon)
t = np.linspace(0, 49, 50)    
xontest = vxon(0, t)
plt.plot(t, xontest, '-')
plt.show()
Run Code Online (Sandbox Code Playgroud)

我得到了情节: 在此处输入图片说明

但是,当我尝试绘制ton值时,wchich不同于零,例如:

xontest = vxon(2, t)
Run Code Online (Sandbox Code Playgroud)

该图似乎将所有xon值舍入为整数:

在此处输入图片说明

我的代码中有什么导致这种行为?

python numpy vectorization floating piecewise

3
推荐指数
1
解决办法
574
查看次数