小编Abh*_*aji的帖子

model.fit()和Keras中的model.evaluate()有什么区别?

我是机器学习的新手,我正在使用Keras和TensorFlow后端来训练CNN模型.

有人可以解释之间的差异model.fit(),并model.evaluate()和我理想情况下应该使用哪一个?(我现在正在使用model.fit()).

我知道的效用model.fit()model.predict().但我无法理解其实用性model.evaluate().Keras文档只是说:

它用于评估模型.

我觉得这是一个非常含糊的定义.

提前致谢.:)

model evaluate keras tensorflow

16
推荐指数
2
解决办法
9976
查看次数

具有相同容器端口的多个 docker 容器连接到同一网络

我有一个依赖于多个 docker 容器的应用程序。我使用 docker compose 以便它们都在同一个网络中进行容器间通信。但是,我的两个容器正在各自的容器内侦听相同的端口 8080,但是映射到主机上的不同端口:8072,8073。对于容器间通信,因为我们使用容器的端口,这会导致问题吗?

约束:

  1. 我的应用程序需要两个容器才能运行。因此,我无法将具有相同内部端口的另一个容器隔离到不同的网络
  2. 所有容器都应该在同一台主机上运行。

我是 docker 新手,我不知道如何解决这个问题。

谢谢

port networking docker docker-compose docker-networking

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

keras中model.predict()和model.predict_generator()之间的预测差异

当我使用model.predict_generator()我时,test_set (images)我得到了不同的预测,当我使用mode.predict()相同的时候,test_Set我得到了一组不同的预测.

为了使用model.predict_generator我按照以下步骤创建了一个生成器:

  1. Imagedatagenerator(此处没有参数)并使用了flow_from_directory shuffle = False.
  2. images(normalization,zero-centering etc)训练模型时没有增强或预处理 .

我正在研究涉及狗和猫的二元分类问题(来自kaggle).在测试集中,我有1000张猫图像.并通过使用model.predict_generator()我能够获得87%,accuracy()即870图像被正确分类.但是在使用model.predict时,我的准确率达到了83%.

这是令人困惑的,因为两者都应该给出相同的结果吗?提前致谢 :)

python prediction keras

6
推荐指数
1
解决办法
2741
查看次数

使用Opencv python进行精确测量

我实际上正在使用OpenCV和Python开发机器视觉项目.

目标:该项目的目标是高精度地测量元件的尺寸.

主要硬件:

  • Basler 500万像素摄像头(aca-2500-14gm)

  • 红色背光(100毫米x 100毫米)(我的组件尺寸约为60毫米)

实验

由于我正在考虑非常严格的公差限制,我首先进行了精确研究.我将组件保留在背光源上并拍摄了100张图像而没有移动部件(想象像100帧的视频).我测量了所有100张图像的外径(OD).我的mm /像素比为0.042.我测量了测量的标准偏差,以找出精度,结果是0.03毫米左右,这是不好的.触摸组件和设置因此我期望精度为0.005 mm.但是我已经退了一个数量级了.我正在使用OpenCV的Hough圆来计算组件的OD.

码:

import sys
import pickle
import cv2
import matplotlib.pyplot as plt
import glob
import os
import numpy as np
import pandas as pd

def find_circles(image,dp=1.7,minDist=100,param1=50,param2=50,minRadius=0,maxRadius=0):
    """ finds the center of circular objects in image using hough circle transform

    Keyword arguments
    image -- uint8: numpy ndarray of a single image (no default).
    dp -- Inverse ratio of the accumulator resolution to the …
Run Code Online (Sandbox Code Playgroud)

python opencv measurement dimension computer-vision

6
推荐指数
1
解决办法
5707
查看次数

在 python-opencv 中使用多线程时是否发布了 GIL?

我正在使用 numpy 和 opencv 对大量图像在 python3 中进行大量图像处理。我知道 python 有这个 GIL 可以防止两个线程同时运行。在 Google 上的快速搜索告诉我,不要将 Python 中的线程用于 CPU 密集型任务,仅将它们用于 I/O 或将文件保存到磁盘、数据库通信等。我还读到 GIL 在使用 C 扩展时被释放。由于 numpy 和 opencv 都是 C 和 C++ 扩展,我觉得 GIL 可能会发布。我不确定,因为图像处理是 CPU 密集型任务。我的直觉是正确的还是我更擅长使用多处理?

opencv numpy gil python-3.x

6
推荐指数
1
解决办法
1107
查看次数

从相机标定opencv python鸟瞰视角变换

我试图从相机内在、外在矩阵和畸变系数中获得鸟瞰透视变换。

我尝试使用这个问题的答案。

使用的图片是来自opencv官方github repo的示例图片left02.jpg

来自opencv示例图像的预期未失真的图像left02.jpg图像,即获得图像的鸟瞰图

我校准了相机并找到了内在、外在矩阵和失真系数。

我未扭曲图像并找到了姿势。检查参数是否正确。

未失真和可视化姿势后的图像

我用来找到透视变换矩阵的方程是(参考上面的链接):

Hr = K * R.inv() * K.inv() 其中 R 是旋转矩阵(来自 cv2.Rodrigues()),K 来自 cv2.getoptimalnewcameramatrix()

     [ 1  0  |         ]
Ht = [ 0  1  | -K*C/Cz ]
     [ 0  0  |         ]
Run Code Online (Sandbox Code Playgroud)

其中C=-R.inv()*TT 是来自的平移向量cv2.solvePnP() ,Cz 是 C 向量的第三个分量

所需的转换是: H = Ht * Hr

我用来构造上述等式的代码是:

K = newcameramtx # from cv2.getoptimalnewcameramatrix()
ret,rvec,tvec = cv2.solvePnP(world_points,corners2,K,dist) 
R,_ = cv2.Rodrigues(rvec)
_,R_inv = cv2.invert(R)
_,K_inv = cv2.invert(K)
Hr = np.matmul(K,np.matmul(R_inv,K_inv))
C = np.matmul(-R_inv,tvec) …
Run Code Online (Sandbox Code Playgroud)

python opencv matrix perspective camera-calibration

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

Keras 函数式 API 的语法

我对 keras 函数式 API 中的语法如何工作有点困惑。它对于定义复杂的多输入和输出模型非常有用。但语法对我来说有点令人困惑。

new_layer = Conv2d(...)(old_layer)
Run Code Online (Sandbox Code Playgroud)

据我所知 Conv2d 是一个Conv2d()() 语法在python中如何工作?

api syntax functional-programming keras

5
推荐指数
2
解决办法
821
查看次数

训练损失增加,而验证准确性增加

我正在使用 keras 和tensorflow 训练 CNN 进行图像二元分类(每个图像 15k 个样本)。

这是我的模型:

#input layer : first conv layer
model = Sequential()
model.add(Conv2D(filters=32,
                 kernel_size=(5,5),
                 input_shape=(256,256,3),
                 padding='same',
                 kernel_regularizer=regularizers.l2(0.0001)))
model.add(BatchNormalization())
model.add(Activation('relu'))
model.add(MaxPooling2D(pool_size=(2,2)))
model.add(Dropout(0.1))

# second conv layer
model.add(Conv2D(filters=64,
                 kernel_size=(5,5),
                 padding='same',
                 kernel_regularizer=regularizers.l2(0.0001)))
model.add(BatchNormalization())
model.add(Activation('relu'))
model.add(MaxPooling2D(pool_size=(2,2)))
model.add(Dropout(0.2))
# third layer
model.add(Conv2D(filters=128,
                 kernel_size=(5,5),
                 padding='same',
                 kernel_regularizer=regularizers.l2(0.0001)))
model.add(BatchNormalization())
model.add(Activation('relu'))
model.add(MaxPooling2D(pool_size=(2,2)))
model.add(Dropout(0.3))
# fourth layer : FC layer
model.add(Flatten())
model.add(Dense(128,kernel_regularizer=regularizers.l2(0.0001)))
model.add(BatchNormalization())
model.add(Activation('relu'))
model.add(Dropout(0.5))
# prediction layer
model.add(Dense(2,activation='softmax',name='prediction',kernel_regularizer=regularizers.l2(0.0001)))
    
Run Code Online (Sandbox Code Playgroud)

我使用 Adam(设置为 keras 文档中给出的默认值)作为优化器。当我开始训练模型时,它开始表现得很奇怪。

Epoch 14/180
191s - loss: 0.7426 - acc: 0.7976 - val_loss: …
Run Code Online (Sandbox Code Playgroud)

optimization keras

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