- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想为 crs 稀疏矩阵的一部分赋值(我知道它很昂贵,但在我的项目中无关紧要)。
我试图为稀疏矩阵的一部分分配一个浮点变量,但第一次不起作用。但是,如果我在“除外”中做完全相同的事情,它将完美无缺地工作。
然后我尝试检查稀疏矩阵的 dtype 和它的一部分,由于某种原因它们是不同的。整个矩阵的数据类型是我指定的 float16,但矩阵的一部分具有 float32 dtype。
这是两个问题的一个小例子:
from scipy.sparse import csr_matrix
import numpy as np
frame = csr_matrix((10, 10),dtype=np.float16)
print "================\n================ Part 1\n================"
print "Let's assign a value to part of the sparse matrix:"
try:
frame[0:3,0:3] = np.float16(0.6)
print "The first attempt worked!"
except:
print "The first attempt didn't work"
print "let's try again :"
try:
frame[0:3,0:3] = np.float16(0.6)
print "The second attempt worked!"
except:
print "The second attempt didn't work"
print "================\n================ Part 2\n================"
print "Let's check the datatype:"
print "Frame dtype is:",; print frame.dtype
print "Part-of-frame dtype is",; print frame[0:3,0:3].dtype
================
================ Part 1
================
Let's assign a value to part of the sparse matrix:
The first attempt didn't work
let's try again :
The second attempt worked!
================
================ Part 2
================
Let's check the datatype:
Frame dtype is: float16
Part-of-frame dtype is float32
最佳答案
简短回答 - 问题出在 np.float16
;坚持使用通常 32 或 64 个浮点数。
================================
首先是一个工作案例(在 0.17 中)
In [334]: M=sparse.csr_matrix((5,5),dtype=np.float)
In [335]: M[:3,:3]=0.6
/usr/lib/python3/dist-packages/scipy/sparse/compressed.py:730: SparseEfficiencyWarning: Changing the sparsity structure of a csr_matrix is expensive. lil_matrix is more efficient.
SparseEfficiencyWarning)
In [336]: M.A
Out[336]:
array([[ 0.6, 0.6, 0.6, 0. , 0. ],
[ 0.6, 0.6, 0.6, 0. , 0. ],
[ 0.6, 0.6, 0.6, 0. , 0. ],
[ 0. , 0. , 0. , 0. , 0. ],
[ 0. , 0. , 0. , 0. , 0. ]])
In [338]: M.data
Out[338]: array([ 0.6, 0.6, 0.6, 0.6, 0.6, 0.6, 0.6, 0.6, 0.6])
except
隐藏了该警告):
In [339]: M=sparse.csr_matrix((5,5),dtype=np.float16)
In [340]: M[:3,:3]=np.float16(0.6)
/usr/lib/python3/dist-packages/scipy/sparse/compressed.py:730: SparseEfficiencyWarning: Changing the sparsity structure of a csr_matrix is expensive. lil_matrix is more efficient.
SparseEfficiencyWarning)
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-340-aaecba748069> in <module>()
----> 1 M[:3,:3]=np.float16(0.6)
/usr/lib/python3/dist-packages/scipy/sparse/compressed.py in __setitem__(self, index, x)
654 return
655 i, j = self._swap((i.ravel(), j.ravel()))
--> 656 self._set_many(i, j, x.ravel())
657
658 def _setdiag(self, values, k):
/usr/lib/python3/dist-packages/scipy/sparse/compressed.py in _set_many(self, i, j, x)
738 j = j[mask]
739 j[j < 0] += N
--> 740 self._insert_many(i, j, x[mask])
741
742 def _insert_many(self, i, j, x):
/usr/lib/python3/dist-packages/scipy/sparse/compressed.py in _insert_many(self, i, j, x)
805 # TODO: only sort where necessary
806 self.has_sorted_indices = False
--> 807 self.sort_indices()
808
809 self.check_format(full_check=False)
/usr/lib/python3/dist-packages/scipy/sparse/compressed.py in sort_indices(self)
1039 if not self.has_sorted_indices:
1040 fn = _sparsetools.csr_sort_indices
-> 1041 fn(len(self.indptr) - 1, self.indptr, self.indices, self.data)
1042 self.has_sorted_indices = True
1043
ValueError: Output dtype not compatible with inputs.
csr
,我会得到同样的错误致密:
In [346]: M=sparse.csr_matrix((5,5),dtype=np.float16)
In [347]: M.A
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-347-bdd665fbe1b0> in <module>()
----> 1 M.A
/usr/lib/python3/dist-packages/scipy/sparse/base.py in __getattr__(self, attr)
511 def __getattr__(self, attr):
512 if attr == 'A':
--> 513 return self.toarray()
514 elif attr == 'T':
515 return self.transpose()
/usr/lib/python3/dist-packages/scipy/sparse/compressed.py in toarray(self, order, out)
938 def toarray(self, order=None, out=None):
939 """See the docstring for `spmatrix.toarray`."""
--> 940 return self.tocoo(copy=False).toarray(order=order, out=out)
941
942 ...
ValueError: Output dtype not compatible with inputs.
dtype
.它看起来像一个错误,但您可以通过不使用此 dtype 来避免它。
lil
matrix 也有这个 dtype 的问题:
In [348]: M=sparse.lil_matrix((5,5),dtype=np.float16)
In [349]: M[:3,:3]=np.float16(0.6)
...
KeyError: (dtype('int32'), dtype('float16'))
float16
首先? float32 和 float64 是正常的 numpy 浮点数。
np.float16
矩阵,在大多数稀疏操作期间不保留该数据类型:
In [374]: M=sparse.csr_matrix(np.arange(9).reshape(3,3), dtype=np.float16)
In [375]: M.data
Out[375]: array([ 1., 2., 3., 4., 5., 6., 7., 8.], dtype=float16)
In [376]:
In [376]: M
Out[376]:
<3x3 sparse matrix of type '<class 'numpy.float16'>'
with 8 stored elements in Compressed Sparse Row format>
In [377]: M.A # same error converting to dense
...
ValueError: Output dtype not compatible with inputs.
In [378]: M.T # dtype kept during transpose
Out[378]:
<3x3 sparse matrix of type '<class 'numpy.float16'>'
with 8 stored elements in Compressed Sparse Column format>
In [379]: M*M
Out[379]:
<3x3 sparse matrix of type '<class 'numpy.float32'>'
with 9 stored elements in Compressed Sparse Row format>
In [380]: M[0,:]
Out[380]:
<1x3 sparse matrix of type '<class 'numpy.float32'>'
with 2 stored elements in Compressed Sparse Row format>
float16
,但我认为它几乎没用。
关于numpy - 为什么我不能将数据分配给第一个 "try:"中的稀疏矩阵的一部分?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40046118/
我有一个应用程序,它会抛出 GKSession 并在各种条件下(连接超时、 session 失败等)创建一个新的 GKSession。不过,我遇到了内存泄漏问题,并且有时会在重新连接几次循环后崩溃。
比如我在宿主代码中有一个浮点指针 float *p 是否可以确定他指向的内存类型(设备/主机)? 最佳答案 在 UVA system 中, 运行时 API 函数 cudaPointerGetAttri
我已将项目转换为 .Net 4.0 并且以下代码不起作用: typeof(RuntimeTypeHandle).GetMethod("Allocate", BindingFlags.Instance
当我声明 char ch = 'ab' 时,ch 只包含 'b',为什么它不存储 'a'? #include int main() { char ch = 'ab'; printf("%c"
我对 Disk Sector 和 Block 有疑问。扇区是一个单位,通常为 512 字节或 1k、2k、4k 等取决于硬件。文件系统 block 大小是一组扇区大小。 假设我正在存储一个 5KB 的
假设我有 8 个人和5000 个苹果。 我想将所有苹果分发给所有 8 个人,这样我就没有苹果了。 但每个人都应该得到不同数量 将它们全部分发出去的最佳方式是什么? 我是这样开始的: let peopl
我正在构建的网站顶部有一个搜索栏。与 Trello 或 Gmail 类似,我希望当用户按下“/”键时,他们的焦点就会转到该搜索框。 我的 JavaScript 看起来像这样: document.onk
我有一小段代码: if (PZ_APP.dom.isAnyDomElement($textInputs)){ $textInputs.on("focus", function(){
我观察到以下行为。 接受了两个属性变量。 @property (nonatomic, retain) NSString *stringOne; @property (nonatomic, assign
我正在解决这样的问题 - 实现一个计算由以下内容组成的表达式的函数以下操作数:“(”、“)”、“+”、“-”、“*”、“/”。中的每个数字表达式可能很大(与由字符串表示的一样大)1000 位)。 “/
我有一组主机和一组任务。 每个主机都有 cpu、mem 和任务容量,每个任务都有 cpu、mem 要求。 每个主机都属于一个延迟类别,并且可以与具有特定延迟值的其他主机通信。 每个任务可能需要以等于或
该程序的作用:从文件中读取一个包含 nrRows 行和 nrColomns 列的矩阵(二维数组)。矩阵的所有元素都是 [0,100) 之间的整数。程序必须重新排列矩阵内的所有元素,使每个元素等于其所在
世界!我有个问题。今天我尝试创建一个代码,它可以找到加泰罗尼亚语号码。但是在我的程序中可以是长数字。我找到了分子和分母。但我不能分割长数字!此外,只有标准库必须在此程序中使用。请帮帮我。这是我的代码
我确定我遗漏了一些明显的东西,但我想在 Objective C 中创建一个 NSInteger 指针的实例。 -(NSInteger*) getIntegerPointer{ NSInteger
这个问题在这里已经有了答案: Difference between self.ivar and ivar? (4 个答案) 关闭 9 年前。
我如何将 v[i] 分配给一系列整数(v 的类型是 vector )而无需最初填充 最佳答案 你的意思是将 std::vector 初始化为一系列整数? int i[] = {1, 2, 3, 4,
我想寻求分配方面的帮助....我把这个作业带到了学校......我必须编写程序来加载一个 G 矩阵和第二个 G 矩阵,并搜索第二个 G 矩阵以获取存在数第一个 G 矩阵的......但是,当我尝试运行
我必须管理资源。它基本上是一个唯一的编号,用于标识交换机中的第 2 层连接。可以有 16k 个这样的连接,因此每次用户希望配置连接时,他/她都需要分配一个唯一索引。同样,当用户希望删除连接时,资源(号
是否有任何通用的命名约定来区分已分配和未分配的字符串?我正在寻找的是希望类似于 us/s 来自 Making Wrong Code Look Wrong ,但我宁愿使用常见的东西也不愿自己动手。 最佳
我需要读取一个 .txt 文件并将文件中的每个单词分配到一个结构中,该结构从结构 vector 指向。我将在下面更好地解释。 感谢您的帮助。 我的程序只分配文件的第一个字... 我知道问题出在函数 i
我是一名优秀的程序员,十分优秀!