我想在角星做一个类似的手术。但是,我不能在角点做展开手术。我尝试过用conv1D层,但找不出。如能提供任何帮助,将不胜感激。
“”“
import numpy as np
import torch
x = torch.tensor(np.random.rand(25,100,24)) # tensor of shape (batch_size, seq_length,feature_dim)
x = x.unsqueeze(1) # shape=(25,1,100,24)
import torch.nn.functional as F
x = F.unfold(x,(5, 24), stride=(1,24),dilation=(1,1)) #shape (25,120,96)“”“
发布于 2020-07-29 18:15:57
我不认为有。但你可以做一件事。使用紧绷的展开。创建一个函数来展开输入数组。然后使用该功能在keras或tf2.0中创建lambda层。假设您有输入数组X:
X = np.array([[[ 0, 1],
[ 2, 3],
[ 4, 5],
[ 6, 7]],
[[ 8, 9],
[10, 11],
[12, 13],
[14, 15]],
[[16, 17],
[18, 19],
[20, 21],
[22, 23]]])要展开张量,只需使用来自TensorLy的展开函数:
> from tensorly import unfold unfold(X, 0)
>> array([[ 0, 1, 2, 3, 4, 5, 6, 7],
[ 8, 9, 10, 11, 12, 13, 14, 15],
[16, 17, 18, 19, 20, 21, 22, 23]])现在创建一个函数,该函数接受输入数组并返回展开数组
def unfold(X):
return unfold(X, 0)现在将此函数用作keras中的一个层。
from keras.layers import Lambda
from keras.models import Sequential
model = Sequential()
model.add(....some_layer....)
model.add(....anotenter code hereher_layer....)
model.add(Lambda(unfold)) <<<<=== using our unfold function as keras layer
model.add(...more_layers..)希望这能帮上忙!
https://stackoverflow.com/questions/63156717
复制相似问题