精华内容
下载资源
问答
  • 此代码可用于训练您自己的 KNN 或朴素贝叶斯分类器以进行头部姿势识别。... 有关如何训练您自己的 KNN 或朴素贝叶斯分类器的更多详细信息,请参阅 Classifier Training 文件夹中的 ReadMe.txt 文件。
  • 这两个软件在opencv安装包里没有的,只有下载opencv以及opencv_contrib源码自己编译才会生成这两个可执行程序,编译opencv和opencv_contrib有很多教程,我就不多说了,这里我也把我编译好的文件放在码云上了,下载...

    首先说一下如何获取opencv_createsamples.exe和opencv_traincascade.exe

    这两个软件在opencv安装包里是没有的,只有下载opencv以及opencv_contrib源码自己编译才会生成这两个可执行程序,编译opencv和opencv_contrib有很多教程,我就不多说了,这里我也把我编译好的文件放在码云上了,下载下来就可以直接运行,编译的版本是opencv-3.4.1

    https://gitee.com/lizaozao/opencv341_bin
    

    如果你想要自己编译得到这两个文件,可以参考我的另一篇文章https://blog.csdn.net/MangoHHHH/article/details/115184344?spm=1001.2014.3001.5501在win10上编译opencv+opencv_contrib,注意了:你要这两个文件的话选择较低版本的opencv,4.1.0是没有的,我试过3.4.1版本是有这两个文件的,而且按照上面链接的来能够成功编译,如果你想试试其他版本的,也可以。编译成功后在build/ install / bin文件夹下就可以找到了

    一、如何训练自己的分类器

    1.准备数据

    数据分为正样本负样本

    正样本就是你要识别的部分,负样本就是不包含你要识别的部分,正负样本放在不同的两个文件夹posdata(正样本)和negdata(负样本)文件夹里

    例如对于下面的图片:

    在这里插入图片描述
    我们切下正样本放置于正样本文件夹中:

    正样本
    那么除了正样本外的所有背景均可剪切下来当做负样本放置于负样本文件夹中。

    这里要注意:正负样本都需要处理成灰度图,所有正样本需要resize到同样的大小,例如20×20,或者24×24,负样本则不需要resize,可以大小不同。

    做好的正样本:

    在这里插入图片描述
    做好的负样本:

    在这里插入图片描述

    2.分别为正样本和负样本创建描述文件

    为正样本创建描述文件格式文件posdata.txt,即在posdata文件夹里新建posdata.txt文件,然后在cmd里cd到posdata文件夹下,执行

    dir /b > posdata.txt
    

    对于负样本也同样在negdata文件夹里新建negdata.txt文件,然后在cmd里cd到negdata文件夹下,执行

    dir /b > negdata.txt
    

    生成后还需要一定的修改

    对于posdata.txt

    打开posdata.txt, 使用替换功能,把所有的bmp 换成 bmp 1 0 0 20 20(这里bmp是因为我的图片格式为bmp,20 20 是因为我把所有正样本resize成20×20的了,如果你不一样,就需要修改相应的位置

    然后在posdata.txt文件里搜索 ‘posdata.txt’ ,将这一行删除。
    修改完以后是这样的:

    在这里插入图片描述

    对于negdata.txt

    首先在negdata.txt文件里搜索 ‘negdata.txt’ ,将这一行删除。然后使用替换功能把相对路径换成绝对路径,例如:

    在这里插入图片描述
    变成:

    在这里插入图片描述

    到这里数据就准备好了,可以开始训练了

    3.开始训练

    1.使用opencv_createsamples.exe创建样本:

    在cmd里cd到程序所在的文件夹下,执行指令

    opencv_createsamples.exe -info posdata\posdata.txt -vec detect_number.vec -bg negdata\negdata.txt -num 1661 -w 20 -h 20
    

    参数解释:
    -info:就是你之前搞的posdata.txt的位置,可以直接使用绝对地址避免出错,绝对地址就是从C:或者D:开始的地址
    -vec 是你生成vec文件的位置和名称
    -bg 就是你之前搞的negdata.txt的位置,同样也可以直接使用绝对地址
    -num 你正样本的数量,你有多少正样本就写多少
    -w -h 是你正样本的宽高

    执行以后结果为:

    在这里插入图片描述
    2.使用opencv_traincascade.exe开始训练:

    opencv_traincascade.exe -data xml_file -vec detect_number.vec -bg negdata\negdata.txt -numPos 1500 -numNeg 1169 -numStages 20 -featureType HAAR -w 20 -h 20
    

    参数解释:
    -data 就是你存放训练好的xml文件的文件夹,这个一定要事先创建好
    -vec 是你之前生成vec文件
    -bg 就是你之前搞的negdata.txt的位置
    -numPos 你正样本的数量,这里我填的比正样本数量稍微少一点,我有1661个正样本,但是填的的1500,这是为避免训练出错
    -numNeg 你负样本的数量,有多少填多少
    -numStages 训练步数
    -featureType ,就是特征类型,有三种,不过另外两种忘记了,而且也是HAAR最常用
    -w -h 是你正样本的宽高

    开始训练后如图:

    在这里插入图片描述
    训练完成后在xml_file文件夹里会生成一系列xml文件,最后能用的文件是cascade.xml

    最后使用测试程序试试我们训练好的分类器的效果:

    import cv2
    detector = cv2.CascadeClassifier('cascade.xml')# 分类器位置
    cap = cv2.VideoCapture(0)
    cap.set(3,1920) #设置分辨率
    cap.set(4,1080)
    
    while True:
        ret, img = cap.read()
        gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
        faces = detector.detectMultiScale(gray, 1.1, 5)
        for (x, y, w, h) in faces:
            cv2.rectangle(img, (x, y), (x + w, y + h), (255, 0, 0), 2)
    
        cv2.imshow('frame', img)
        if cv2.waitKey(1) & 0xFF == ord('q'):
            break
    
    cap.release()
    cv2.destroyAllWindows()
    

    效果如图:

    在这里插入图片描述
    这就OK啦,如果有什么不明白的地方,可以跟我交流
    QQ:172561916

    展开全文
  • Junit实现测试用例分类执行前言一、Categories什么?如何使用?优点缺点?二、自定义测试套件1.什么Suite类2.定义测试注解3.定义注解对应的过滤(重写Filter)4.定义Finder类(用来查找所有测试用例)5.定义...


    前言

    由于JUnit原生的测试套件Categories,仅仅支持原生已有的筛选规则去进行分类,不满足大多数项目中实际需要的分类场景,所以我们需要自己定义筛选规则。且使用Categories时,我们需要把每个测试类传入到指定的测试套件中,不能扫描所有的测试用例,使用起来相当不便,所以我们需要自己实现测试用例的搜索器。

    1.我们需要自定义筛选规则
    2.我们需要定义测试用例的搜索器

    一、Categories是什么?如何使用?优点缺点?

    我们可以先看一下GitHub上官方的介绍和案例,不了解的同学可以先看一下
    https://github.com/junit-team/junit4/wiki/Categories

    public interface FastTests { /* category marker */ }
    public interface SlowTests { /* category marker */ }
    
    public class A {
      @Test
      public void a() {
        fail();
      }
    
      @Category(SlowTests.class)
      @Test
      public void b() {
      }
    }
    
    @Category({SlowTests.class, FastTests.class})
    public class B {
      @Test
      public void c() {
    
      }
    }
    
    @RunWith(Categories.class)
    @IncludeCategory(SlowTests.class)
    @SuiteClasses( { A.class, B.class }) // Note that Categories is a kind of Suite
    public class SlowTestSuite {
      // Will run A.b and B.c, but not A.a
    }
    
    @RunWith(Categories.class)
    @IncludeCategory(SlowTests.class)
    @ExcludeCategory(FastTests.class)
    @SuiteClasses( { A.class, B.class }) // Note that Categories is a kind of Suite
    public class SlowTestSuite {
      // Will run A.b, but not A.a or B.c
    }
    

    简单而言就是三个步骤
    1.定义需要过滤测试用例的注解SlowTests.class, FastTests.class 等等
    2. 在测试用例上添加注解
    3. 定义测试套件,并添加SuiteClasses

    这样最终的效果就是执行A B 类中的加了注解的测试用例
    但是原生的Categories很不满足我们的实际需求,存在两点问题:
    1.只能是IncludeCategory或者ExcludeCategory的关系,筛选规则是固定的
    2.必须通过SuiteClasses将测试用例的所在类添加进去,而且只能扫描已添加的测试类中的测试用例,这样不满足扫描所有测试用例的场景,非常不实用。

    由于这两点诉求,我们可以自己去实现自定义的Categories

    二、自定义测试套件

    1.什么是Suite类

    首先需要了解一下Suite类是用来干嘛的,简单一点就是用来选择哪些测试类去进行测试的。
    Junit - 套件测试(Suite Test)

    2.定义测试注解

    (示例):

    @Retention(RetentionPolicy.RUNTIME)
    @Target(ElementType.METHOD)
    public @interface Module {
        String module() default "please set right module again";
    
        int runOrder();
    }
    

    3.定义注解对应的过滤器(重写Filter)

    Filter父类,需要先定义一个过滤规则filterRule,用来给其他注解扩展的

    //Filter父类,需要先定义一个过滤规则filterRule
    public abstract class MyFilter extends Filter {
        public abstract boolean filterRule();
    }
    

    实现自己的Filter,自己定义的Suite中的module的名字如果和测试用例的中加了Module注解的名字相同,则在shouldRun中返回True,则代表就是会运行的用例

    public class FilterModule extends MyFilter {
        private String moudle_name;
        private Module module;
    
        public FilterModule(String moudle_name) {
            this.moudle_name = moudle_name;
        }
    
        @Override
        public boolean filterRule() {
            if (moudle_name != null && (module == null || !moudle_name.equalsIgnoreCase(module.module())))
                return false;
            return true;
        }
    
        @Override
        public boolean shouldRun(Description description) {
            if (description.isTest()) {
                module = description.getAnnotation(Module.class);
                return filterRule();
            }
            return true;
        }
    
        @Override
        public String describe() {
            return null;
        }
    }
    

    4.定义Finder类(用来查找所有测试用例)

    此处涉及两个知识点
    1.通过class文件加载对象
    2.寻找安卓应用中DexFile的所在路径,然后通过DexFile去查找class文件

    该类处理完后可以活得测试路径下,对应包含@Test注解的所有类,也就是所有测试类,返回 List<Class<?>>

    public class TestCaseFinder {
        private List<Class<?>> testClasses = null;
        private String packageName;
    
        public TestCaseFinder(Context context, String packageName) {
            try {
                if (testClasses != null) {
                    testClasses.clear();
                }
                this.packageName = packageName;
                testClasses = (ArrayList<Class<?>>) getClassesFromPkg(context, packageName);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    
        public List<Class<?>> getAllTestClasses() {
            List<Class<?>> alltestClass = new ArrayList<>();
            for (Class<?> class1 : testClasses) {
                Method[] methods = class1.getDeclaredMethods();
             	boolean isHasTestCase = false;
                for (Method method : methods) {
                    if (isHasTestCase) {
                        break;
                    }
                    for (Annotation annotation : method.getDeclaredAnnotations()) {
                        if (annotation instanceof Test) {
                            alltestClass.add(class1);
                            isHasTestCase = true;
                            break;
                        }
                    }
                }
            }
            return alltestClass;
        }
    
        private Iterable<Class<?>> getClassesFromPkg(Context context, String packageName) {
            String apkpath = context.getPackageCodePath();
            List<Class<?>> classes = new ArrayList<Class<?>>();
            DexFile dexFile = null;
            Enumeration<String> classString = null;
            String classname = null;
            //Log.i("TestCaseFinder getClassesFromPkg", packageName);
            try {
                dexFile = new DexFile(apkpath);
                classString = dexFile.entries();
                while (classString.hasMoreElements()) {
                    classname = classString.nextElement();
                    if (classname.startsWith(packageName)) {
                        classes.add(Class.forName(classname));
                        // Log.i("TestCaseFinder getClassesFromPkg classname", classname);
                    }
                }
            } catch (IOException | ClassNotFoundException e) {
                e.printStackTrace();
            }
            return classes;
        }
    }
    

    5.定义Sutie类

    该类就是用来运行哪些测试用例
    重写此类注意三点:
    1、定义一个注解用来处理测试用例注解的
    2、重写构造方法,将Finder中找到的测试类传入super的构造方法中
    3、构造方法中,将Filter传入重写的filter方法中

    这里就实现了,扫描哪些类的测试和对应加了测试注解的测试用例,并可以通过过滤规则去进行筛选

    public class MyCategory extends Suite {
    
        @Retention(RetentionPolicy.RUNTIME)
        public @interface ExcludeModule {
            String value();
        }
    
        public MyCategory (Class<?> suiteClass, RunnerBuilder builder) throws InitializationError {
            super(builder, suiteClass, getTestclasses(new TestCaseFinder(InstrumentationRegistry.getInstrumentation().getContext(),
                   InstrumentationRegistry.getInstrumentation().getContext().getPackageName()).getAllTestClasses()));
            try {
                filter(new AnnotationsFilterBuilder(
                        getIncludedModule(suiteClass));
            } catch (NoTestsRemainException e) {
                throw new InitializationError(e);
            }
        }
        
        private String getExcludedModule(Class<?> classes) {
            ExcludeModule annotation = classes.getAnnotation(ExcludeModule.class);
            return annotation == null ? null : annotation.value();
        }
        
        private static Class<?>[] getTestclasses(List<Class<?>> testclasses) {
            return testclasses.toArray(new Class[testclasses.size()]);
        }
    }
    

    6.使用案例

    测试用例所在类,包括可以定义一些其他规则的注解,根据自己实际需要等待,用例描述,用例的一些需要的参数,执行顺序,次数等等,都可以通过一部分的注解去解决

    
    public class TestCaseExamples {
    
        @Test
        @Module(module = "test111", runOrder = 1)
        @CaseDescription(description = "test1234", beforeTest = "需要插入sim卡", limitTimes = 2)
        @Args({
                @Arg(key = "1", value = "1"),
                @Arg(key = "2", value = "@@2")
        })
        @Arg(key = "3", value = "3")
        public void test123() {
        }
    
        @Test
        @Module(module = "test1112", runOrder = 2)
        @CaseDescription(description = "test1234", beforeTest = "需要插入sim卡", limitTimes = 2)
        @Args({
                @Arg(key = "1", value = "1"),
                @Arg(key = "2", value = "@@2")
        })
        @Arg(key = "3", value = "3")
        public void test1234() {
        }
    
        @Test
        @Module(module = "test111", runOrder = 3)
        @CaseDescription(description = "test1234", beforeTest = "需要插入sim卡", limitTimes = 2)
        @Args({
                @Arg(key = "1", value = "1"),
                @Arg(key = "2", value = "@@2")
        })
        @Arg(key = "3", value = "3")
        public void test1235() {
        }
    
        @Test
        @Module(module = "test1112", runOrder = 4)
        @CaseDescription(description = "test1234", beforeTest = "需要插入sim卡", limitTimes = 2)
        @Args({
                @Arg(key = "1", value = "1"),
                @Arg(key = "2", value = "@@2")
        })
        public void test1236() {
        }
    
        @Test
        @Module(module = "test111", runOrder = 5)
        @CaseDescription(description = "test1234", beforeTest = "需要插入sim卡", limitTimes = 2)
        @Args({
                @Arg(key = "1", value = "1"),
                @Arg(key = "2", value = "@@2")
        })
        public void test1237() {
        }
    
        @Test
        @Module(module = "test1112", runOrder = 6)
        @CaseDescription(description = "test1234", beforeTest = "需要插入sim卡", limitTimes = 2)
        @Args({
                @Arg(key = "1", value = "1"),
                @Arg(key = "2", value = "@@2")
        })
        @Arg(key = "3", value = "3")
        public void test1238() {
        }
    
        @Module(module = "test111", runOrder = 7)
        @CaseDescription(description = "test1234", beforeTest = "需要插入sim卡", limitTimes = 2)
        @Args({
                @Arg(key = "1", value = "1"),
                @Arg(key = "2", value = "@@2")
        })
        @Arg(key = "3", value = "3")
        @Test
        public void test1239() {
        }
    
    }
    

    使用测试套件运行

    @RunWith(MyCategory .class)
    @MyCategory.ExcludeModule("test111")
    public class CategoryTest {
    //此处就会运行所有包下加了Module注解,且Module是test111模块的测试用例
    }
    

    总结

    争做一个优秀的测试开发,加油!有疑问联系博主或者留言,欢迎大家有更好的想法和意见!

    展开全文
  • 创建自己的世界分类器的最简单方法,只需键入要分类的任何东西的名称。 先决条件 火炬 google_images_download 法泰 如何使用它 下载文件并将其放在您的主python文件夹中 现在打开文件并执行 从互联网上下载任何...
  • 分类器可视化

    2018-03-15 09:41:00
    这本笔记本的目的让你可视化各种分类器的决策边界。 本笔记本中使用的数据基于存储在mushrooms.csv中的UCI蘑菇数据集。 为了更好地确定决策边界,我们将对数据执行主成分分析(PCA)以将维度降至2维。 降维将在...

    这本笔记本的目的是让你可视化各种分类器的决策边界。

    本笔记本中使用的数据基于存储在mushrooms.csv中的UCI蘑菇数据集。

    为了更好地确定决策边界,我们将对数据执行主成分分析(PCA)以将维度降至2维。 降维将在本课程后面的模块中介绍。

    玩弄不同的模型和参数,看看它们如何影响分类器的决策边界和准确性!

     1 %matplotlib notebook
     2 
     3 import pandas as pd
     4 import numpy as np
     5 import matplotlib.pyplot as plt
     6 from sklearn.decomposition import PCA
     7 from sklearn.model_selection import train_test_split
     8 
     9 df = pd.read_csv('mushrooms.csv')
    10 df2 = pd.get_dummies(df)
    11 
    12 df3 = df2.sample(frac=0.08)
    13 
    14 X = df3.iloc[:,2:]
    15 y = df3.iloc[:,1]
    16 
    17 
    18 pca = PCA(n_components=2).fit_transform(X)
    19 
    20 X_train, X_test, y_train, y_test = train_test_split(pca, y, random_state=0)
    21 
    22 
    23 plt.figure(dpi=120)
    24 plt.scatter(pca[y.values==0,0], pca[y.values==0,1], alpha=0.5, label='Edible', s=2)
    25 plt.scatter(pca[y.values==1,0], pca[y.values==1,1], alpha=0.5, label='Poisonous', s=2)
    26 plt.legend()
    27 plt.title('Mushroom Data Set\nFirst Two Principal Components')
    28 plt.xlabel('PC1')
    29 plt.ylabel('PC2')
    30 plt.gca().set_aspect('equal')

     1 def plot_mushroom_boundary(X, y, fitted_model):
     2 
     3     plt.figure(figsize=(9.8,5), dpi=100)
     4     
     5     for i, plot_type in enumerate(['Decision Boundary', 'Decision Probabilities']):
     6         plt.subplot(1,2,i+1)
     7 
     8         mesh_step_size = 0.01  # step size in the mesh
     9         x_min, x_max = X[:, 0].min() - .1, X[:, 0].max() + .1
    10         y_min, y_max = X[:, 1].min() - .1, X[:, 1].max() + .1
    11         xx, yy = np.meshgrid(np.arange(x_min, x_max, mesh_step_size), np.arange(y_min, y_max, mesh_step_size))
    12         if i == 0:
    13             Z = fitted_model.predict(np.c_[xx.ravel(), yy.ravel()])
    14         else:
    15             try:
    16                 Z = fitted_model.predict_proba(np.c_[xx.ravel(), yy.ravel()])[:,1]
    17             except:
    18                 plt.text(0.4, 0.5, 'Probabilities Unavailable', horizontalalignment='center',
    19                      verticalalignment='center', transform = plt.gca().transAxes, fontsize=12)
    20                 plt.axis('off')
    21                 break
    22         Z = Z.reshape(xx.shape)
    23         plt.scatter(X[y.values==0,0], X[y.values==0,1], alpha=0.4, label='Edible', s=5)
    24         plt.scatter(X[y.values==1,0], X[y.values==1,1], alpha=0.4, label='Posionous', s=5)
    25         plt.imshow(Z, interpolation='nearest', cmap='RdYlBu_r', alpha=0.15, 
    26                    extent=(x_min, x_max, y_min, y_max), origin='lower')
    27         plt.title(plot_type + '\n' + 
    28                   str(fitted_model).split('(')[0]+ ' Test Accuracy: ' + str(np.round(fitted_model.score(X, y), 5)))
    29         plt.gca().set_aspect('equal');
    30         
    31     plt.tight_layout()
    32     plt.subplots_adjust(top=0.9, bottom=0.08, wspace=0.02)
    1 from sklearn.linear_model import LogisticRegression
    2 
    3 model = LogisticRegression()
    4 model.fit(X_train,y_train)
    5 
    6 plot_mushroom_boundary(X_test, y_test, model)

    1 from sklearn.neighbors import KNeighborsClassifier
    2 
    3 model = KNeighborsClassifier(n_neighbors=20)
    4 model.fit(X_train,y_train)
    5 
    6 plot_mushroom_boundary(X_test, y_test, model)

    1 from sklearn.tree import DecisionTreeClassifier
    2 
    3 model = DecisionTreeClassifier(max_depth=3)
    4 model.fit(X_train,y_train)
    5 
    6 plot_mushroom_boundary(X_test, y_test, model)

    1 from sklearn.tree import DecisionTreeClassifier
    2 
    3 model = DecisionTreeClassifier()
    4 model.fit(X_train,y_train)
    5 
    6 plot_mushroom_boundary(X_test, y_test, model)

    1 from sklearn.ensemble import RandomForestClassifier
    2 
    3 model = RandomForestClassifier()
    4 model.fit(X_train,y_train)
    5 
    6 plot_mushroom_boundary(X_test, y_test, model)

    1 from sklearn.svm import SVC
    2 
    3 model = SVC(kernel='linear')
    4 model.fit(X_train,y_train)
    5 
    6 plot_mushroom_boundary(X_test, y_test, model)

    1 from sklearn.svm import SVC
    2 
    3 model = SVC(kernel='rbf', C=1)
    4 model.fit(X_train,y_train)
    5 
    6 plot_mushroom_boundary(X_test, y_test, model)

    1 from sklearn.svm import SVC
    2 
    3 model = SVC(kernel='rbf', C=10)
    4 model.fit(X_train,y_train)
    5 
    6 plot_mushroom_boundary(X_test, y_test, model)

    1 from sklearn.naive_bayes import GaussianNB
    2 
    3 model = GaussianNB()
    4 model.fit(X_train,y_train)
    5 
    6 plot_mushroom_boundary(X_test, y_test, model)

    1 from sklearn.neural_network import MLPClassifier
    2 
    3 model = MLPClassifier()
    4 model.fit(X_train,y_train)
    5 
    6 plot_mushroom_boundary(X_test, y_test, model)

     

    转载于:https://www.cnblogs.com/zhengzhe/p/8571766.html

    展开全文
  • 生物多样性 分类器多样性 红帽公司执行副总裁兼红帽人力资源业务负责人DeLisa Alexander本年度年度“万物开放”大会的主题演讲者。 DeLisa不仅在评论开源技术中的性别和多样性方面处于专业地位,而且还亲自开展...

    生物多样性 分类器多样性

    红帽公司执行副总裁兼红帽人力资源业务负责人DeLisa Alexander是本年度年度“万物开放”大会的主题演讲者。 DeLisa不仅在评论开源技术中的性别和多样性方面处于专业地位,而且还亲自开展工作以争取工作场所的包容性,从而为每个人带来更好的结果。

    DeLisa还将在会议主持一个关于女性在技术和开源方面的座谈会。

    在这次采访中,我们讨论了她是如何以开源方式工作的,公司可以采取哪些措施来提高包容性,以及为什么性别多样性使所有人(而不仅仅是女性)受益。

    您是如何来到Red Hat工作的? 您之前在开源方面有很多经验吗?

    DeLisa Alexander headshot in red jacket at Red Hat
    我的背景是法律,我于2001年加入Red Hat,担任法律团队的助理总法律顾问。 我被雇用来谈判许可证和收入交易,是我们业务团队的顾问。 我对开放源代码了解不多,但是对使用版权法强制执行代码共享的想法很感兴趣。 这是围绕开放源代码进行业务开发的早期阶段,我们一直在研究中。 红帽一直是一家具有共同目标感和独特文化的公司,从一开始就吸引了我。 早年加入Red Hat,我感到很幸运,因为我的职位让我成为了观察和贡献的前排座位,因为开源已经发展成为革命力量,最终成为了大多数人现在所认为的主流。

    您一直非常善于利用自己的职位提升来帮助其他技术女性。 到目前为止,您取得了哪些重大成就?

    我对围绕该主题的发展势头感到非常满意。 几年前,在红帽公司,我们成立了女性领导力社区。 我们希望将女性与公司内部联系起来,提供教育和社交机会,并最终在我们职业和生活的每个阶段更好地互相支持。 我们从北美分会开始,此后,妇女领导权社区在全球范围内发展。 Red Hat妇女领导力社区的一项重大胜利就是将来自不同部门的女性召集到一起,从公司职能部门到工程和销售领域的女性。 在我们的女性领导力社区活动中,您结识了来自自己团队之外的人。 我们还将在我们的全球电子邮件列表中发布有趣的文章并引发对话。 这些讨论向我们展示了,无论您是在远程工作还是在办公室,无论您的团队是男性还是女性,无论您在美国还是印度,我们的共同点是什么。 我还为红帽推出“ 女性参与开放源代码奖 ”而感到自豪,该奖项不仅限于帮助女性参与技术领域。 它致力于使更多的女性进入开源领域,并聚焦于他们的贡献。 提名将于10月13日开始,我们很高兴在明年6月的Red Hat Summit上宣布我们的第一个优胜者。

    您是否认为开源或多或少是女性欢迎的环境? 我已经听到了双方的争论,所以我很想听听您作为人力资源领导者和科技女性的观点。

    这在很大程度上取决于特定开源社区营造的环境。 我们已经看到了一些欢迎妇女使用的开源社区的杰出例子,并进行了宣传工作,激发了更多的妇女参与其中。 Ada Initiative,妇女外展计划和OpenHatch等组织的工作充分说明了开源社区为妇女赋权的潜力。 但是也有相反的故事。 我认为,在开源方面给女性带来了巨大的机会,就是大多数开源社区都非常重视个人自由和精英管理。 在社区最美好的日子里,这些元素创造了一个高度创新的,富有成效的环境,令人鼓舞地成为其中的一部分,并使项目免于困扰困扰官僚组织的许多日常挑战和挫折。


    查看完整的All Things Open演讲者访谈系列

    您为什么认为包括Red Hat在内的高科技公司都在努力应对多样性? 红帽为解决性别失衡而正在采取哪些措施?

    从根本上讲,这是管道中的问题。 例如,如果以美国为例,直到1980年代中期,技术领域的女性情况一直很好。 他们每年稳步获得计算机和信息科学学位的份额越来越大,在1984年达到37%的峰值。此后此数字一直在下降。 去年,女性仅获得美国所有计算机和信息科学学位的12%。 同时,女性在整个学士学位中所占的比例每年都在继续上升,在其他许多科学领域,我们也没有看到同样的下降趋势。 为了提高我们的人数,我们需要看到整个行业在技术教育方面的投资。 不仅为了技术素养,而且还为了技术创造。 我们知道,这对于全世界的女性都是必要的,对于经济困难背景的学生也很重要。 在这里,红帽看到了开放源代码的真正优势:对于没有计算机科学学位或技术背景的个人,这是进入技术行业的另一种途径。 进入门槛很低。 任何对编码感兴趣的人都可以成为开源贡献者。 您可以从获得的反馈中快速学习,获取经验,并可以确定是否喜欢使用技术,而不必花很多时间在入门上。 因此,红帽赞助了许多新手黑客马拉松和编码研讨会,特别是针对女性的团体。

    您认为公司文化在多大程度上影响性别鸿沟? 开源社区文化如何?

    开源社区中的文化和环境有很大的不同,公司文化也是如此。 有关此问题的其他文章很多,您可以在Geek女权主义Wiki FLOSS网页上找到一些很好的例子。 在开放源代码社区和Red Hat中,对精英管理的强烈需求-不管创意来源如何,最好的想法都会赢得胜利。 但是多样性是精英管理的重要组成部分。 如果我们错过了不同人群的观点,我们怎么能自信地获得最好的想法? 包括来自许多不同背景和文化的人,会导致思想和观念的更大差异。 研究表明,不同的群体更具创新性,可以做出更好的决策。 对于技术行业和开放源代码社区,缺少妇女尤其令人担忧,因为妇女占全球人口和劳动力的一半。 在过去的几年中,我也对无意识偏见的作用及其如何影响求职和面试过程越来越感兴趣。 我们的人类倾向是本能地偏爱和重视那些发出潜意识的信号的人,这些信号表明他们是我们中的一员-他们拥有我们的信仰,背景或其他社会利益。 我们很容易忽略来自不同性别或文化的人的贡献。 我们甚至没有意识到自己正在这样做,我们为看似合理的偏好构建了解释。 无意识的偏见是一个引人入胜的话题,并且已经有很多有关此的文章,因此,我鼓励大家寻找并充分利用这些信息。 作为我们的工作面试官培训的一部分,红帽现在可以对我们的员工进行教育。 我认为开源社区中的文化规范同样重要。

    您将在今年的All Things Open上发表主题演讲。 您能给我们一个涵盖范围的想法吗?

    我将在您今天问到的许多相同主题上发言:开源技术中的女性,以及这项研究向我们展示了多元化对于组织的价值。 我计划分享一些方法,任何人都可以有所作为并帮助将更多女性带入开源。

    请参阅《 All Things Open 2014演讲者访谈》的完整系列。

    翻译自: https://opensource.com/business/14/10/interview-delisa-alexander-red-hat

    生物多样性 分类器多样性

    展开全文
  • 军事目标实时检测以实现智能监控 简要总结 实时对象检测计算机视觉的一个广阔,充满活力但不确定的复杂领域。 由于物体检测与视频... TensorFlow需要一个对象的数百张图像来训练一个好的检测分类器。 我们使用“ F
  • 狗品种分类器-源码

    2021-02-14 07:58:55
    我们的目标,通过完成本实验,您将了解将旨在在数据处理管道中执行各种任务的一系列模型拼接在一起所面临的挑战。 每个模型都有其优点和缺点,设计一个实际应用程序常常涉及解决许多问题而没有一个完美的答案。 ...
  • 下载一个预先训练好的模型(模型已针对ImageNet任务训练了数周时间),删除网络的最后一层(完全连接层),添加我们选择的分类器执行适合我们的任务(如果任务对猫和狗进行分类,就选择二元分类器),最后仅对我...
  • 源Excel如下: 计算目标:在外部(不使用Excel)处理xls,按A列分类,每类...上面脚本中,函数 group 用来实现分组汇总,其中第一个参数是分类表达式,第二个参数汇总表达式,表达式中既可用列号也可用列名。 ...
  • Java解释执行还是编译执行? Java语言的主要类库。 JVM JDK中server、client模式的区别。 JVM 启动参数 -Xint -Xcomp JDK9 AOT编译模式 学习结论: 程序 程序为了让计算机执行某些操作或解决某个问题而编写的...
  • 目的展示如何通过提取诸如TF.IDF和嵌入之类的特征来准备基于文本的数据集,以建立机器学习模型:除了使用提取的特征来提取文档分类(受监管)和文档聚类(不受监管)之外,执行文本(余弦)相似性分析。...
  • 参考训练图像分类器 文章目录介绍寻找工具?Setup设置选择要使用的TF2 SavedModel模块设置鲜花数据集定义模型训练模型画图从验证数据中测试图像上的模型:执行步骤可选:部署到TensorFlow Lite优化设置总结 介绍 图像...
  • 一篇关于机器学习中基于规则分类器的文章,主要讲如何实际的操作这个FOIL信息增益来得出一个规则集。 有几个问题: 1.在第执行外循环的时候,我写的将原始表格P类中满足规则的元组去除。实际上要将原始...
  • 如何使用它? 使用或执行以引导示例: npx create-next-app --example with-typescript-styled-components with-typescript-styled-components-app # or yarn create next-app --example with-typescript-styled-...
  • 我们的目标,通过完成本实验,您将了解将一系列旨在在数据处理管道中执行各种任务的模型拼接在一起所面临的挑战。 每个模型都有其优点和缺点,设计一个实际应用程序常常涉及解决许多问题而没有一个完美的答案。 ...
  • 它可以教育各种姿势的用户,并为您带来好处,并提供有关如何执行这些姿势的适当指导。 它拥有与所有设备,Web,Android和IOS的兼容性。 开始使用 建议使用vscode的实时服务器或任何其他Apache服务器在本地计算机中...
  • 国家转换 国家/地区转换(coco)一个Python软件包,用于在... 国家/地区转换(coco)可自动执行来自不同标准和版本的国家/地区名称的转换。 在内部,coco基于一个表格的,该表格指定了每个国家/地区不同的IS
  • [英语] 这个demo展示了如何使用LIME(Local Interpretable Model-agnostic Explanations)[1]解释CNN的分类。这个demo基于[1]创建的,但实现可能与官方的有点不同。这段代码突出显示对分类有贡献的区域。它可以...
  • 我们的目标,通过完成本实验,您将了解将一系列旨在在数据处理管道中执行各种任务的模型拼接在一起所面临的挑战。 每个模型都有其优点和缺点,设计一个实际应用程序常常需要解决许多问题,而没有一个完美的答案。...
  • 一个教程,说明了如何使用TensorFlow 2.0构建和训练用于多标签图像分类的机器学习系统。 例如,我们能否仅根据海报来预测电影的类型? 我们将使用Kaggle上托管的电影海报数据集。 给定电影海报的图像,模型应...
  • 我们将学习如何在Python中使用scikit-learn执行k-means聚类。 您可以从以下链接下载数据集: : 确保将csv文件和python代码保留在同一文件夹中,或相应地更改位置。关于数据集: 天气数据说明 天气数据集与我们在...
  • 这个功能有局限性,并不总会说出真相,但它的输出是可以获取的最好信息,值得花时间去了解,因为可以学习到查询是如何执行的。调用EXPLAIN在select之前添加explain,mysql会在查询上设置一个标记,当执行查...
  • 对JVM执行引擎的理解

    2021-01-09 16:49:49
    文章目录概述执行引擎的工作过程Java代码编译和执行的过程解释&编译器Why???JVM如何选择的?热点代码及探测方式编译方式编译器的分类其他编译器(了解) 概述 “虚拟机”一个相对于“物理机”的概念,这两...
  • 什么MVC以及PHP如何实现MVC

    千次阅读 2012-01-26 20:58:04
    什么MVC? 简单的说就是将网站源码分类、分层。 MVC三个字母的含义: M:Model 模型,负责数据库操作。 ...V:View 视图,负责...如此说来,程序的执行顺序C-V-M 或 C-M ,和MVC的名字正好相反。 为什么要MVC?
  • 什么MVC? 简单的说就是将网站源码分类、分层。 MVC三个字母的含义: M:Model 模型,负责数据库操作。 ...V:View 视图,负责...如此说来,程序的执行顺序C-V-M 或 C-M ,和MVC的名字正好相反。 为什么要MVC?
  • 该项目旨在为在线发布平台创建内容管理系统(CMS),其功能增强用户保留率,总体用户友好性并帮助管理员用户对其各自的文章执行CRUD操作。 该项目旨在使将文章放置在主题/标签下的过程自动化,而无需用户自己添加...
  • 心律失常分类-源码

    2021-02-08 08:28:43
    然后,对CNN和RNN进行数据训练,建立了一个分类器来诊断异常的心律失常噪声。 该研究论文正在“研究期刊”上进行同行评审。 如何使用 创建虚拟环境: Python -m venv venv 现在活跃环境 venv\Scripts\activate ...
  • #该项目我正在尝试理解关键问题上的情绪而不是简单的政党偏好如何可以用来理解公众舆论所在的系列文章的一部分。 也就是说,不是使用%的Dems对策略x有利/不利,而是要找到是否存在使人们聚类以了解某种类型的人...
  • 这些功能的进一步处理由分类器执行。 作为内置的分类器选项,Quadflor提供: 朴素贝叶斯(两个变体) 逻辑回归 线性支持向量机 K最近邻居(两个多标签改编变体以及Rocchio), 随机梯度下降 堆叠式决策树分类器 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 524
精华内容 209
关键字:

执行器是如何分类