3.4 sparse tensor 与tf.variable

sparse tensor

#sparse tensor
s=tf.SparseTensor(indices=[[0,1],[1,0],[2,3]],
                  values=[1.,2.,3.],
                  dense_shape=[3,4])
print(s)
print(tf.sparse.to_dense(s))

print( )

'''
SparseTensor(indices=tf.Tensor(
[[0 1]
 [1 0]
 [2 3]], shape=(3, 2), dtype=int64), values=tf.Tensor([1. 2. 3.], shape=(3,), dtype=float32), dense_shape=tf.Tensor([3 4], shape=(2,), dtype=int64))
tf.Tensor(
[[0. 1. 0. 0.]
 [2. 0. 0. 0.]
 [0. 0. 0. 3.]], shape=(3, 4), dtype=float32)

'''

ops on sparse tensors

#ops on sparse tensors
s2=s*2.0
print(s2)
try:
    s3=s+1
except TypeError as ex:
    print(ex)
s4=tf.constant([[10.,20],
                [30.,40.],
                [50,60],
                [70,80]])
#tf.sparse.sparse_dense_matmul,稀疏矩阵与正常矩阵相乘
print(tf.sparse.sparse_dense_matmul(s,s4))


'''
SparseTensor(indices=tf.Tensor(
[[0 1]
 [1 0]
 [2 3]], shape=(3, 2), dtype=int64), values=tf.Tensor([2. 4. 6.], shape=(3,), dtype=float32), dense_shape=tf.Tensor([3 4], shape=(2,), dtype=int64))
 
unsupported operand type(s) for +: 'SparseTensor' and 'int'

tf.Tensor(
[[ 30.  40.]
 [ 20.  40.]
 [210. 240.]], shape=(3, 2), dtype=float32)
'''

variables(变量)

#variables
v=tf.Variable([[1.,2.,3.],[4.,5.,6.]])
print(v)
print(v.value())
print(v.numpy())
'''
<tf.Variable 'Variable:0' shape=(2, 3) dtype=float32, numpy=
array([[1., 2., 3.],
       [4., 5., 6.]], dtype=float32)>
tf.Tensor(
[[1. 2. 3.]
 [4. 5. 6.]], shape=(2, 3), dtype=float32)
[[1. 2. 3.]
 [4. 5. 6.]]
'''


assign value,重新赋值

#assign value,重新赋值
v.assign(2*v)
print(v.numpy())
v[0,1].assign(42)
print(v.numpy())
v[1].assign([7.,8,9.1])
print(v.numpy())
'''
[[ 2.  4.  6.]
 [ 8. 10. 12.]]
[[ 2. 42.  6.]
 [ 8. 10. 12.]]
[[ 2.  42.   6. ]
 [ 7.   8.   9.1]]

'''

try:
    v[1]=[7.,8,9.1]
except TypeError as ex:
    print(ex)

'''
'ResourceVariable' object does not support item assignment
'''


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值