小编Avi*_*pta的帖子

在python中读取*.mhd/*.raw格式

任何人都可以告诉我如何在python中读取包含.mhd / .raw文件的数据集?

python numpy image-processing matplotlib computer-vision

17
推荐指数
3
解决办法
9999
查看次数

Binary_crossentropy和Categorical_crossentropy之间的混淆

我正在使用深度神经网络进行二元类分类.每当我使用binary_crossentropy时,我的模型都不能提供良好的准确性(它更接近随机预测).但是如果我通过制作输出层2的大小来使用分类交叉熵,那么我只能在接近0.90的1个时期内获得良好的准确性.有谁能解释这里发生了什么?

machine-learning computer-vision deep-learning keras

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

Tensorflow中的平均欧氏距离

我有两个张量大小为[batch_size,seq_length,2]的序列。我想计算张量之间的平均欧几里得距离。做到这一点的优雅方法是什么?

python tensorflow

10
推荐指数
1
解决办法
4376
查看次数

预测取决于Keras的批量大小

我正在尝试使用keras进行图像的二进制分类.

我的CNN模型在训练数据方面训练有素(提供约90%的训练准确度和~93%的验证准确度).但是在培训期间,如果我设置批量大小= 15000,我得到图I输出,如果我设置批量大小= 50000,我得到图II作为输出.有人可以告诉我有什么问题吗?预测不应该取决于批量大小吗?

我用于预测的代码:

y=model.predict_classes(patches, batch_size=50000,verbose=1) y=y.reshape((256,256))

图1 图2

我的模特: -

model = Sequential()

model.add(Convolution2D(32, 3, 3, border_mode='same',
                        input_shape=(img_channels, img_rows, img_cols)))
model.add(Activation('relu'))
model.add(Convolution2D(32, 3, 3))
model.add(Activation('relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Dropout(0.25))

model.add(Convolution2D(64, 3, 3, border_mode='same'))
model.add(Activation('relu'))
model.add(Convolution2D(64, 3, 3))
model.add(Activation('relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Dropout(0.25))

model.add(Flatten())
model.add(Dense(512))
model.add(Activation('relu'))
model.add(Dropout(0.5))
model.add(Dense(nb_classes))
model.add(Activation('softmax'))

# let's train the model using SGD + momentum (how original).
sgd = SGD(lr=0.01, decay=1e-6, momentum=0.9, nesterov=True)
model.compile(loss='categorical_crossentropy',
              optimizer=sgd,
              metrics=['accuracy'])
Run Code Online (Sandbox Code Playgroud)

python machine-learning neural-network deep-learning keras

8
推荐指数
1
解决办法
3557
查看次数

Faster way to extract patches from images?

I am trying to extract patches of fixed size centered at some given position (x,y). The code is given below-

for i,j in zip(indices[0],indices[1]):
    patches.append(
        x[None,
          i-int(np.floor(patch_size/2.0)):i+int(np.floor(patch_size/2.0))+1,
          j-int(np.floor(patch_size/2.0)):j+int(np.floor(patch_size/2.0))+1])
Run Code Online (Sandbox Code Playgroud)

Variable indices is the locations (indices.shape=(2,770)). x is the original image.

But this code is taking 25s seconds time. Can anyone tell me how to make this work faster? or any other alternatives if you can suggest it would be of great help.

python performance numpy image-processing

5
推荐指数
1
解决办法
7837
查看次数

如何在Keras / Theano中执行反卷积?

我正在尝试在Keras中实现反卷积。我的模型定义如下:

model=Sequential()


model.add(Convolution2D(32, 3, 3, border_mode='same',
                        input_shape=X_train.shape[1:]))
model.add(Activation('relu'))
model.add(Convolution2D(32, 3, 3, border_mode='same'))
model.add(Activation('relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Dropout(0.25))

model.add(Convolution2D(64, 3, 3, border_mode='same'))
model.add(Activation('relu'))
model.add(Convolution2D(64, 3, 3,border_mode='same'))
model.add(Activation('relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Dropout(0.25))

model.add(Flatten())
model.add(Dense(512))
model.add(Activation('relu'))
model.add(Dropout(0.5))
model.add(Dense(nb_classes))
model.add(Activation('softmax'))
Run Code Online (Sandbox Code Playgroud)

我想在第一个卷积层给定的输出上执行去卷积或转置卷积convolution2d_1

假设我们在第一个卷积层之后拥有的特征图X(9, 32, 32, 32)其中的9 ,这是32x32我通过该层的维度图像的数量。通过get_weights()Keras函数获得第一层的权重矩阵。权重矩阵的维数为(32, 3, 3, 2)

我用于执行转置卷积的代码是

 conv_out = K.deconv2d(self.x, W, (9,3,32,32), dim_ordering = "th")
 deconv_func = K.function([self.x, K.learning_phase()], conv_out)
 X_deconv = deconv_func([X, 0 ])
Run Code Online (Sandbox Code Playgroud)

但是出现错误:

 CorrMM shape inconsistency:
  bottom shape: …
Run Code Online (Sandbox Code Playgroud)

python theano deep-learning keras keras-layer

5
推荐指数
1
解决办法
6461
查看次数

将 cv2.umat 转换为 numpy 数组

Processed_image() 函数返回一个 cv2.Umat 类型值,该值将从 3 维重塑(h, ch, w)为 4 维,(h, ch, w, 1)因此i需要将其转换为 numpy 数组,或者如果可能的话,还可以帮助我直接 rehshapecv2.umat 类型变量直接重塑并转换为pytorch 张量,可以分配给 reshape_image_tensor。

img_w=640
img_h=640
img_ch=3
umat_img = cv2.UMat(img)
display_one(umat_img, "RESPONSE")    #function created by me to display image
device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu")
with torch.no_grad():
    processed_img = preprocess_image(umat_img, model_image_size = (img_h, img_ch, img_w))
    #___________write YOUR CODE here________
    reshaped_images_tensor = torch.from_numpy(processed_img.reshape(img_h, img_ch, img_w, 1)).float().to(device)      #images_tensor.reshape(img_h, img_ch, img_w, 1)
    outputs = model(reshaped_images_tensor)
    _, predicted = torch.max(outputs, 1) …
Run Code Online (Sandbox Code Playgroud)

python opencv numpy computer-vision pytorch

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