小编the*_*0ID的帖子

为什么带有 Ryzen Threadripper 的 Numpy 比 Xeon 慢这么多?

我知道 Numpy 可以使用不同的后端,如 OpenBLAS 或 MKL。我还读到 MKL 针对英特尔进行了大量优化,所以通常人们建议在 AMD 上使用 OpenBLAS,对吗?

我使用以下测试代码:

import numpy as np

def testfunc(x):
    np.random.seed(x)
    X = np.random.randn(2000, 4000)
    np.linalg.eigh(X @ X.T)

%timeit testfunc(0)
Run Code Online (Sandbox Code Playgroud)

我已经使用不同的 CPU 测试了这段代码:

  • 英特尔至强 E5-1650 v3 上,此代码使用12 个内核中的 6 个0.7 秒内执行。
  • AMD Ryzen 5 2600 上,此代码使用所有 12 个内核1.45 秒内执行。
  • AMD Ryzen Threadripper 3970X 上,此代码使用所有 64 个内核1.55 秒内执行。

我在所有三个系统上都使用相同的 Conda 环境。根据np.show_config(),Intel 系统为 Numpy …

python performance numpy intel amd-processor

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

Android:快速位图模糊?

过去三天我一直在寻找内置的硬件加速方式,用android来模拟位图.我偶然发现了某些解决方法,比如缩小位图并再次缩放,但这种方法产生的质量低,不适合我的图像识别要求.我还读到使用着色器或JNI实现卷积是一个很好的方法,但我不能相信Android框架中没有内置的解决方案用于这个非常常见的目的.目前我最终在Java中使用自编写的卷积实现,但它的速度非常慢.我的问题是:

  • 有没有真的没有内置的解决方案在Android框架?
  • 如果没有:在仍然合理的实施和维护复杂性的情况下,加速卷积的最有效方法是什么?我们应该使用JNI,着色器还是完全不同的东西?

android image-processing blur convolution

33
推荐指数
2
解决办法
3万
查看次数

Git:可以通过多个项目使用相同的子模块工作副本吗?

我是Git的新手.可以说,我有两个git存储库,它们添加了与子模块相同的库:

/home/projects/project1/library_XYZ
/home/projects/project2/library_XYZ
Run Code Online (Sandbox Code Playgroud)

还可以说,我正在同时处理项目库.当我对库进行更改时,让我们说/home/projects/project1/library_XYZ,我必须推送这些更改,然后将它们拉入/home/projects/project2/library_XYZ以使它们可用project2,对吧?我认为这是不方便的,原因有两个:

  • 我将要建library_XYZ两次.
  • 我有一个不需要的冗余,与实际的项目组织相矛盾.

有没有办法让Git克隆子模块library_XYZ同一个本地目录,即使文件像这样组织

/home/projects/project1
/home/projects/project2
/home/projects/library_XYZ
Run Code Online (Sandbox Code Playgroud)

同时library_XYZ仍然是两个项目的子模块?

我认为这可能与有关,虽然我的设置有些不同,但是没有答案.

git git-submodules

25
推荐指数
2
解决办法
7084
查看次数

资源泄漏:'in'永远不会关闭,尽管它已关闭

我知道那里有几个类似的有问题的问题,但是大多数人都忘了close()在他们的流上发布指令.这是不同的.

让我们说我有以下最小的例子:

public void test() throws IOException
{
    InputStream in;
    if( file.exists() )
    {
        in = new FileInputStream( file );
    }
    else
    {
        in = new URL( "some url" ).openStream();
    }
    in.close();
}
Run Code Online (Sandbox Code Playgroud)

Resource leak: 'in' is never closed在Eclipse(Juno SR1)中给了我一个警告.但当我in.close()进入条件块时,警告消失了:

public void test() throws IOException
{
    InputStream in;
    if( file.exists() )
    {
        in = new GZIPInputStream( new FileInputStream( file ) );
        in.close();
    }
    else
    {
        in = new URL( "some URL" ).openStream();
    }
} …
Run Code Online (Sandbox Code Playgroud)

java java-io

10
推荐指数
2
解决办法
9002
查看次数

使用Android接收onTouch和onClick事件

我有一个视图需要处理onTouch手势 onClick事件.实现这个目标的正确方法是什么?

我有一个onTouchListener和一onClickListener组视图.每当我触摸视图时,首先onTouch触发事件,然后触发onClick.但是,从onTouch事件处理程序我必须返回truefalse.返回true意味着正在使用该事件,因此android事件系统将不再传播该事件.

因此,onClick永远不会生成事件,至少在我的事件处理程序中onClick返回时,我的侦听器永远不会被触发.另一方面,返回时没有选项,因为这会阻止侦听器接收为识别手势所必需的任何其他事件.解决这个问题的常用方法是什么?trueonTouchfalseonTouch

android android-event

7
推荐指数
2
解决办法
2万
查看次数

使用Tomcat进行Eclipse Web应用程序部署:提供多个项目的依赖关系?

我在使用Tomcat 6和Eclipse部署动态Web应用程序时使用的一些第三方库(JAR文件)存在问题.

请注意,我知道如何在设置中执行此操作,其中Web应用程序项目 - 直接 - 依赖于这些JAR.

但是,在我的设置中,我有两个Eclipse项目:

  • 核心是一个类库,依赖于,比如说a.jar.
  • web是Web应用程序,依赖于核心.

web的项目设置中,在部署程序集类别中,我添加了核心,因此Eclipse(或Tomcat - 我不太确定这里的负责人是谁)正在放入我的Web应用程序core.jarlibs目录中.

问题是:当我试用Web应用程序时,NoClassDefFoundError核心访问类时会抛出一个a.jar.我该怎么办呢?我不认为将我的Web应用程序a.jar放入Deployment Assembly设置页面是正确的解决方案,因为它应该与Web项目无关,核心项目依赖于什么.

基本上,我正在寻找一种方式来配置Eclipse(Tomcat的?),以"嵌入"的依赖核心core.jar.关于这个的问题是,core.jar当我部署我的web项目时,这是自动生成的.

非常感谢帮助.提前致谢!

java eclipse tomcat

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

如何在C++中使用BOOST_AUTO模拟'const auto'?

使用BOOST_AUTO宏我们可以模拟auto在C++ 11之前不可用的关键字:

BOOST_AUTO( var, 1 + 2 ); // int var = 3
auto var = 1 + 2; // the same in C++11
Run Code Online (Sandbox Code Playgroud)

有什么方法可以效仿const auto吗?

const auto var = 1 + 2; // const int var = 3
Run Code Online (Sandbox Code Playgroud)

c++ boost c++11

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

如何测试Android中的日期/时间相关功能?

我一直在想如何正确地测试依赖于Android的日期或时间变化的功能.假设我有每个月的第一天需要处理的事件,这个处理的结果取决于当前的日期/时间.我错过了在Android测试框架中伪造某个日期/时间的可能性.我们该如何测试那种东西?

当然,可以通过不是直接从框架查询日期/时间而是从另外的实体查询日期/时间来实时抽象.可以在测试代码中为此实体设置假日期/时间.但是,Android测试框架中是否真的不支持这样的常见需求?

android android-date android-testing

6
推荐指数
0
解决办法
994
查看次数

Django REST Framework:在验证期间获取ID / URL?

我有一个HyperlinkedModelSerializer。为了validate正确实现其方法,我需要访问正在验证的对象的主键URL –如果有,即是否正在编辑而不是创建它。正确的做法是什么?

我尝试了很多事情,但是唯一有效的方法是当实例化序列化器到其id字段时获取对象ID的hack :

class BoxSerializer(serializers.HyperlinkedModelSerializer):
    class Meta:
        model = Box
        fields = ('id', 'name', 'url')

    def __init__(self, *args, **kwargs):
        super(BoxSerializer, self).__init__(*args, **kwargs)
        self.id = None \
            if len(args) != 1 or not isinstance(args[0], Box) \
            else args[0].id

    def validate(self, data):
        print(data)
        return data
Run Code Online (Sandbox Code Playgroud)

从序列化程序的validate方法中访问要验证的对象的ID / URL的正确方法是什么?既不data['id']也不data['url']存在。


urls.py

urlpatterns = [
    url(r'(?P<pk>[0-9]+)/$', views.BoxDetail.as_view(), name='box-detail'),
]
Run Code Online (Sandbox Code Playgroud)

views.py

class BoxDetail(generics.RetrieveUpdateDestroyAPIView):
    queryset = Box.objects.all() …
Run Code Online (Sandbox Code Playgroud)

django django-views django-rest-framework

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

Django/REST:在对象级验证期间支持部分更新吗?

可以说,我有一个执行对象级验证的序列化程序:

class AnimalSerializer(serializers.HyperlinkedModelSerializer):
    class Meta:
        model = Animal
        fields = ('id', 'type', 'feathers')

    def validate(self, data):
        if data['type'] != 'bird' and data['feathers'] != null:
            raise ValidationError({'feathers': 'Only supported by birds!'})
        return data
Run Code Online (Sandbox Code Playgroud)

支持部分更新的最佳方式是什么,即使用patch方法的REST 请求?

我天真的方法是手工完成:

    def validate(self, data):
        data['type'] = data.get('type') or self.instance.type
        data['feathers'] = data.get('feathers') or self.instance.feathers
        if data['type'] != 'bird' and data['feathers'] != null:
            raise ValidationError({'feathers': 'Only supported by birds!'})
        return data
Run Code Online (Sandbox Code Playgroud)

但我认为这非常混乱且容易出错。有没有更优雅的解决方案?


更新:看起来这需要一些澄清。我要求在对象级验证期间(即在方法内)支持部分更新的良好实践。我不问如何这部分更新。我知道validate

django django-views django-rest-framework

5
推荐指数
0
解决办法
189
查看次数