小编spi*_*tor的帖子

Scipy稀疏...数组?

所以,我正在使用非常稀疏的numpy数组进行一些Kmeans分类 - 很多很多零.我想我会使用scipy的'稀疏'软件包来减少存储开销,但我对如何创建数组而不是矩阵有点困惑.

我已经完成了关于如何创建稀疏矩阵的教程:http: //www.scipy.org/SciPy_Tutorial#head-c60163f2fd2bab79edd94be43682414f18b90df7

为了模拟一个数组,我只是创建一个1xN矩阵,但正如你可能猜到的,Asp.dot(Bsp)不能正常工作,因为你不能将两个1xN矩阵相乘.我必须将每个数组转换为Nx1,这非常蹩脚,因为我会为每个点积计算做这个.

接下来,我尝试创建一个NxN矩阵,其中第1列==第1行(这样您可以将两个矩阵相乘,只需将左上角作为点积),但结果证明效率非常低.

我喜欢使用scipy的稀疏包作为numpy的数组()的神奇替代品,但到目前为止,我还不确定该怎么做.

有什么建议?

python numpy matrix scipy sparse-matrix

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

Android MediaPlayer/VideoView错误(1,-2147483648)

我从文件路径设置VideoView的视频时遇到了不一致的经历.

VideoView myVideoView = findViewById(R.id.videoView);
...
myVideoView.setVideoPath(videoFilename);
...
myVideoView.start();
Run Code Online (Sandbox Code Playgroud)

videoFilename是我的缓存目录中视频的绝对路径:

String videoFilename = new File(context.getCacheDir(), "myawesomevideo.mp4").getAbsolutePath();
Run Code Online (Sandbox Code Playgroud)

在Android SDK> = 16(Jelly Bean)中,这很好用,我的精彩视频播放.在Android 4.0.4(SDK = 15)中,当调用myVideoView.start()时,MediaPlayer会中断.

错误是永远无益的:

error (1, -2147483648)
Run Code Online (Sandbox Code Playgroud)

我在这里错过了什么?直接从我的包资产(res/raw)或互联网(http://something.com/myawesomeinternetvideo.mp4)加载文件,但我无法弄清楚如何从缓存目录中读取文件!

android android-mediaplayer android-videoview

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

Google Guava的CacheLoader loadAll()vs reload()语义

我真正喜欢Guava 11的CacheLoader(感谢Google!)的两件事是loadAll(),它允许我一次加载多个键,并且reload(),这允许我在"陈旧"时异步重新加载一个键,但是旧价值存在.我很好奇它们如何一起玩,因为reload()只能操作一个键.

具体来说,从CachesExplained扩展示例:

LoadingCache<Key, Graph> graphs = CacheBuilder.newBuilder()
   .maximumSize(1000)
   .refreshAfterWrite(1, TimeUnit.MINUTES)
   .build(
       new CacheLoader<Key, Graph>() {
         public Graph load(Key key) { // no checked exception
           return getGraphFromDatabase(key);
         }

         public Map<Key, Graph> loadAll(Iterable<? extends K> keys) {
           return getAllGraphsFromDatabase(keys);
         }

         public ListenableFuture<Graph> reload(final Key key, Graph prevGraph) {
           if (neverNeedsRefresh(key)) {
             return Futures.immediateFuture(prevGraph);
           } else {
             // asynchronous!
             return ListenableFutureTask.create(new Callable<Graph>() {
               public Graph call() {
                 return getGraphFromDatabase(key);
               }
             });
           }
         }
       });
Run Code Online (Sandbox Code Playgroud)

...其中"getAllGraphsFromDatabase()"执行聚合数据库查询而不是长度(键)单个查询.

如何将LoadingCache的这两个组件一起播放?如果我对getAll()的请求中的某些键在缓存中不存在,那么它们将作为一个组加载loadAll(),但如果有些需要刷新,是否可以使用load()单独重新加载?如果是这样,是否有计划支持reloadAll()?

java caching guava

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

Android MediaRecorder setCaptureRate()和视频播放速度

我有一个MediaRecorder录制视频,我对setCaptureRate()的影响感到非常困惑.

具体来说,我准备我的MediaRecorder如下:

mMediaRecorder = new MediaRecorder();
mCamera.stopPreview();
mCamera.unlock();
mMediaRecorder.setCamera(mCamera);
mMediaRecorder.setVideoSource(MediaRecorder.VideoSource.CAMERA);
mMediaRecorder.setProfile(CamcorderProfile.QUALITY_TIME_LAPSE_480P);
mMediaRecorder.setCaptureRate(30f);
mMediaRecorder.setOrientationHint(270);
mMediaRecorder.setOutputFile(...);
mMediaRecorder.setPreviewDisplay(...);
mMediaRecorder.prepare();
Run Code Online (Sandbox Code Playgroud)

我记录了五秒钟(使用CountDownTimer,但这是无关紧要的),这是生成的文件:

$ ffmpeg -i ~/CaptureRate30fps.mp4 
...
Seems stream 0 codec frame rate differs from container frame rate: 180000.00 (180000/1) -> 30.00 (30/1)
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/home/mspitz/CaptureRate30fps.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 0
    compatible_brands: isom3gp4
    creation_time   : 2013-06-04 00:52:00
  Duration: 00:00:02.59, start: 0.000000, bitrate: 5238 kb/s
    Stream #0.0(eng): Video: h264 (Baseline), yuv420p, 720x480, 5235 kb/s, PAR 65536:65536 DAR 3:2, 30 fps, …
Run Code Online (Sandbox Code Playgroud)

android ffmpeg frame-rate video-capture mediarecorder

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

Java耗尽了内存,即使我给它充足!

所以,我正在运行一个java服务器(特别是Winstone:http://winstone.sourceforge.net/)

像这样:java -server -Xmx12288M -jar /usr/share/java/winstone-0.9.10.jar --useSavedSessions = false --webappsDir =/var/servlets --commonLibFolder =/usr/share/java

这在过去运行良好,但现在需要将更多的东西加载到内存中,而不是以前.

奇怪的是,根据'top',它有15.0g的VIRT(ual内存),它的RES(ident set)是8.4g.一旦达到8.4g,CPU就会挂起100%(即使它是从磁盘加载的),最终,我得到了Java的OutOfMemoryError.据推测,CPU挂起100%是Java做垃圾收集.

那么,我的问题是,是什么给出的?我给了它12个演唱会!并且只有在它投入之前才使用8.2演出.我究竟做错了什么?

哦,我正在使用java版"1.6.0_07"Java(TM)SE运行时环境(版本1.6.0_07-b06)Java HotSpot(TM)64位服务器VM(版本10.0-b23,混合模式)

在Linux上.

谢谢,马特

java linux memory

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

通过GET参数传递复杂的数据结构?

我正在尝试将列表和映射作为GET参数传递,我想知道是否有特定的约定(或者最好是库),我可以这样做.具体来说,我想传递列表和地图.

列表相对容易,因为我们对分隔符(在本例中为逗号)进行了正确的URL编码:

/图像/小猫?furColors =棕色,黑色

地图更复杂.我见过这样的话:

/图像/小猫?性质[furColors] =棕色,黑色及性质[eyeColors] =蓝色

我也看到过这样的事情:

?/图像/小猫属性= furColors%3Dbrown,黑色; eyeColors%3Dblue;

我可以遵循一个很好的标准吗?此外,我碰巧使用Java和Spring(出于我无法控制的原因),我希望能够使用库来处理它,最好是Spring可以解析的字符串.

java url

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