草庐IT

hessian-matrix

全部标签

Matrix 上的 Python PCA 太大而无法放入内存

我有一个100,000行x27,000列的csv,我正在尝试对其进行PCA以生成100,000行X300列的矩阵。csv有9GB大。这是我目前正在做的事情:fromsklearn.decompositionimportPCAasRandomizedPCAimportcsvimportsysimportnumpyasnpimportpandasaspddataset=sys.argv[1]X=pd.DataFrame.from_csv(dataset)Y=X.pop("Y_Level")X=(X-X.mean())/(X.max()-X.min())Y=list(Y)dimensions

python - 将一列零添加到 csr_matrix

我有一个MxN稀疏csr_matrix,我想在矩阵的右侧添加一些只有零的列。原则上,数组indptr、indices和data保持不变,所以我只想改变矩阵的维度。但是,这似乎没有实现。>>>A=csr_matrix(np.identity(5),dtype=int)>>>A.toarray()array([[1,0,0,0,0],[0,1,0,0,0],[0,0,1,0,0],[0,0,0,1,0],[0,0,0,0,1]])>>>A.shape(5,5)>>>A.shape=((5,7))NotImplementedError:Reshapingnotimplementedforcs

python - 实现二阶导数的自动微分 : algorithm for traversing the computational graph?

我正在尝试实现automaticdifferentiation对于Python统计包(问题公式类似于优化问题公式)。计算图是使用运算符重载和用于sum()、exp()等操作的工厂函数生成的。我已经使用反向累加实现了梯度的自动微分。但是,我发现实现二阶导数(Hessian)的自动微分要困难得多。我知道如何进行单独的第二次局部梯度计算,但我很难想出一种智能的方法来遍历图形并进行累加。有谁知道为二阶导数提供自动微分算法的好文章或实现相同算法的开源库,我可能会尝试从中学习? 最佳答案 首先,您必须决定是要计算稀疏的Hessian矩阵还是更接

c# - 具有完整子结构的矩阵的 "Matrix decomposition"

在开始之前,我必须说,对于那些具有线性代数背景的人来说,这不是您所知道的矩阵分解。请阅读以下段落以更清楚地了解我要解决的问题。以下是矩阵及其子矩阵的显着属性/定义:我有一个SxP矩阵,它形成了一个类似S.P“盒子”结构的网格。这是主矩阵.这就是(空)主矩阵的样子。矩阵中的每个正方形都简称为一个盒子。矩阵可以被视为一种“游戏板”,例如一个棋盘。纵轴使用区间标度(即实数)测量,水平轴使用单调递增的非负整数测量。还有一个额外的子矩阵概念(如前所述)。子矩阵只是特定配置中的盒子的集合,并具有指定给盒子的特定数量和块类型(参见下面的黑色和白色块)。我有这些的有限集子矩阵-我称之为我的lexico

python - 如何计算 Tensorflow 中的所有二阶导数(仅 Hessian 矩阵的对角线)?

我有一个损失值/函数,我想计算关于张量f(大小为n)的所有二阶导数。我设法使用了tf.gradients两次,但在第二次应用它时,它对第一个输入的导数求和(请参阅我的代码中的second_derivatives)。我还设法检索了Hessian矩阵,但我只想计算它的对角线以避免额外计算。importtensorflowastfimportnumpyasnpf=tf.Variable(np.array([[1.,2.,0]]).T)loss=tf.reduce_prod(f**2-3*f+1)first_derivatives=tf.gradients(loss,f)[0]second_d

python - 将 numpy.matrix 转换为 C 双指针的正确方法

将numpy矩阵作为参数传递给采用双指针的C函数的规范方法是什么?上下文:我正在使用numpy来验证一些C代码,我有一个C函数,它接受一个constdouble**const,我正在使用ctypes从Python调用.so。我试过:func.argtypes=ctypeslib.ndpointer(dtype=double,ndim=2,flags="C_CONTIGUOUS")并直接传递numpy矩阵(没用),以及func.argtypes=ctypes.POINTER(ctypes.POINTER(ctypes.c_double))然后通过各种转换传递numpy矩阵。转换导致Pyt

python NumPy : how to construct a big diagonal array(matrix) from two small array

importnumpyasnpA=np.array([[1,2],[3,4]])B=np.array([[5,6],[7,8]])C=np.array([[1,2,0,0],[3,4,0,0],[0,0,5,6],[0,0,7,8]])我想直接从A和B制作C,有什么简单的方法可以构造对角线数组C?谢谢。 最佳答案 方法#1:一种简单的方法是使用np.bmat-Z=np.zeros((2,2),dtype=int)#Createoff-diagonalzerosarrayout=np.asarray(np.bmat([[A,Z],[Z

python 3 : Multiply a vector by a matrix without NumPy

我是Python的新手,正在尝试创建一个函数来将向量乘以矩阵(任意列大小)。例如:multiply([1,0,0,1,0,0],[[0,1],[1,1],[1,0],[1,0],[1,1],[0,1]])[1,1]这是我的代码:defmultiply(v,G):result=[]total=0foriinrange(len(G)):r=G[i]forjinrange(len(v)):total+=r[j]*v[j]result.append(total)returnresult问题是,当我尝试选择矩阵(r[j])中每一列的第一行时,会显示错误“列表索引超出范围”。有没有其他方法可以不使

python Pandas : how to turn a DataFrame with "factors" into a design matrix for linear regression?

如果没记错的话,在R中有一种称为因子的数据类型,当在DataFrame中使用时,它可以自动解压缩到回归设计矩阵的必要列中。例如,包含True/False/Maybe值的因子将转换为:100010or001为了使用较低级别的回归代码。有没有办法使用pandas库实现类似的东西?我看到Pandas中有一些回归支持,但由于我有自己定制的回归例程,我真的很感兴趣从异构数据构build计矩阵(2dnumpy数组或矩阵),支持映射来回映射numpy对象的列和派生它的PandasDataFrame。更新:这是一个数据矩阵的示例,其中包含我正在考虑的那种异构数据(该示例来自Pandas手册):>>>d

javascript - 如何在 Odoo OCA 小部件 web_widget_x2many_2d_matrix 中按顺序而不是名称对记录进行排序?

我已经尝试通过jquery按顺序对记录字典进行排序,但没有成功,我不知道在哪里按名称再次排序。我在git上询问社区但没有人回答我,我正在尝试按odoo序列排序。使用模块web_widget_x2many_2d_matrix和sale_order_variant_mgmt我修改了python代码,如果我调试记录列表,排序是预期的,但是当加载javascript代码时,它按名称排序并且无法调试问题所在@api.onchange('product_tmpl_id')def_onchange_product_tmpl_id(self):self.variant_line_ids=[(6,0,[