【发布时间】:2021-02-17 17:47:09
【问题描述】:
我想做如下同样的 numpy 操作来制作一个自定义层
img=cv2.imread('img.jpg') # img.shape =>(600,600,3)
mask=np.random.randint(0,2,size=img.shape[:2],dtype='bool')
img2=np.expand_dims(img,axis=0) #img.shape => (1,600,600,3)
img2[:,mask,:].shape # => (1, 204030, 3)
这是我的第一次尝试,但我失败了。我不能对张量流张量做同样的操作
class Sampling_layer(keras.layers.Layer):
def __init__(self,sampling_matrix):
super(Sampling_layer,self).__init__()
self.sampling_matrix=sampling_matrix
def call(self,input_img):
return input_img[:,self.sampling_matrix,:]
更多解释:
我想定义一个 keras 层,以便给定一批图像,它使用一个采样矩阵并给我一批图像的采样向量。采样矩阵是一个与图像大小相同的随机布尔矩阵。我使用的切片操作对于 numpy 数组来说是直截了当的,并且效果很好。但我无法用张量流中的张量完成它。我尝试使用循环手动执行我想要的操作,但失败了。
【问题讨论】:
-
您的问题不清楚。您的课程看起来不像您尝试重现第一个代码。你为什么将它添加到问题中?
-
@Andrey 我想定义一个 keras 层,以便给定一批图像,它使用一个采样矩阵并给我一批图像的采样向量。采样矩阵的随机布尔值与图片。我使用的切片操作对于 numpy 数组来说是直截了当的,并且效果很好。但我无法用张量流中的张量完成它。我尝试使用循环手动执行我想要的操作,但我失败了。感谢您的帮助
标签: tensorflow keras tensor