小编DVK*_*DVK的帖子

Tensorflow dense_to_sparse

我试图将未压缩的稀疏数组转换为tf.SparseTensor接受的格式.有一个内置函数tf.sparse_to_dense,它正好与我试图做的完全相反.所以我的问题是Tensorflow或Python中有任何内置函数来进行这种转换吗?

python tensorflow

11
推荐指数
1
解决办法
7759
查看次数

如何将 numpy 数组列表保存到单个文件中并将文件加载回原始形式

我目前正在尝试将 numpy 数组列表保存到单个文件中,此类列表的示例可以采用以下形式

import numpy as np
np_list = []
for i in range(10):
    if i % 2 == 0:
        np_list.append(np.random.randn(64))
    else:
        np_list.append(np.random.randn(32, 64))
Run Code Online (Sandbox Code Playgroud)

我可以通过迭代列表将所有这些使用合并到一个文件中savez,但还有其他方法吗?我正在尝试保存函数返回的权重model.get_weights(),这是一个列表ndarray,在从保存的文件中检索权重后,我打算使用将这些权重加载到另一个模型中model.set_weights(np_list)。因此,列表的格式必须保持不变。如果有人有一种优雅的方式来做到这一点,请告诉我。

python numpy tensorflow tf.keras

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

如何屏蔽 PyTorch 权重参数中的权重?

我试图在 PyTorch 中屏蔽(强制为零)特定的权重值。我试图屏蔽的权重在def __init__

class LSTM_MASK(nn.Module):
        def __init__(self, options, inp_dim):
            super(LSTM_MASK, self).__init__()
            ....
            self.wfx = nn.Linear(input_dim, curernt_output, bias=add_bias)
Run Code Online (Sandbox Code Playgroud)

掩码也定义def __init__

self.mask_use = torch.Tensor(curernt_output, input_dim)
Run Code Online (Sandbox Code Playgroud)

掩码是一个常数,.requires_grad_()False掩码参数。现在在def forward课程的一部分中,我尝试在线性运算完成之前对权重参数和掩码进行元素乘法

def forward(self, x):
    ....
    self.wfx.weight = self.wfx.weight * self.mask_use
    wfx_out = self.wfx(x)
Run Code Online (Sandbox Code Playgroud)

我收到一条错误消息:

self.wfx.weight = self.wfx.weight * self.mask_use
  File "/home/xyz/anaconda2/lib/python2.7/site-packages/torch/nn/modules/module.py", line 537, in __setattr__
    .format(torch.typename(value), name))
TypeError: cannot assign 'torch.cuda.FloatTensor' as parameter 'weight' (torch.nn.Parameter or None expected)
Run Code Online (Sandbox Code Playgroud)

但是当我检查这两个参数时.type(),它们都显示为torch.cuda.FloatTensor. 我不确定为什么这里有错误。

python lstm pytorch

7
推荐指数
1
解决办法
6501
查看次数

如何自定义 Keras 层名称并使其自动递增 layer.name

我目前正在尝试使用名称为自定义激活的多个层cust_sig。但是当我尝试编译模型时,我收到一个 ValueError 错误,因为多个层具有相同的名称cust_sig。我知道我可以手动更改每个图层的名称,但想知道是否可以_1, _2, ...像内置图层一样自动添加到名称中。模型定义如下。

# Creating a model
from tensorflow.python.keras import keras
from tensorflow.python.keras.models import Model
from tensorflow.python.keras.layers import Dense

# Custom activation function
from tensorflow.python.keras.layers import Activation
from tensorflow.python.keras import backend as K
from keras.utils.generic_utils import get_custom_objects

def custom_activation(x):
    return (K.sigmoid(x) * 5) - 1

get_custom_objects().update({'custom_activation': Activation(custom_activation)})

data_format = 'channels_first'

spec_input = keras.layers.Input(shape=(1, 3, 256), name='spec')
x = keras.layers.Flatten(data_format)(spec_input)

for layer in range(3):
  x = Dense(512)(x)
  x = Activation('custom_activation', name='cust_sig')(x)

out = …
Run Code Online (Sandbox Code Playgroud)

python keras tensorflow activation-function

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