小编SRo*_*mes的帖子

java - 创建Temp文件的安全方法

我正在寻找一种在Java中创建临时文件的安全方法.安全,我的意思是:

  • 名称应该是唯一的,即使在潜在的竞争条件下(例如,另一个线程同时调用相同的func,或者另一个进程同时运行此代码)
  • 文件应该是私有的,即使在潜在的竞争条件下(例如,另一个用户试图以高速率chmod文件)
  • 我可以告诉它删除文件,而不必进行通用删除,并冒险删除错误的文件
  • 理想情况下,应确保删除文件,即使在我有机会之前抛出异常
  • 文件应该默认为一个理智的位置(例如JVM指定的tmp目录,默认为系统临时目录)

java temporary-files

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

keras如何定义"准确性"和"损失"?

我无法找到Keras如何定义"准确性"和"损失".我知道我可以指定不同的指标(例如mse,交叉熵) - 但keras打印出标准的"准确度".这是如何定义的?同样对于损失:我知道我可以指定不同类型的正规化 - 那些是亏损的吗?

理想情况下,我想打印出用于定义它的等式; 如果没有,我会在这里找到答案.

python machine-learning deep-learning keras tensorflow

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

Scala:将JSON直接解析为案例类

给定一个JSON字符串,以及一个与之对应的case类,将JSON解析为case类的简单方法是什么?有许多库可用,但似乎Scala现在可以开箱即用.

如果应该将JSON解析为案例类的列表呢?

更新:

杰克逊似乎被抛弃了,我不想安装完整的Play或Lift框架或其他任何重型框架.

parsing json scala case-class scala-2.10

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

Ruby中DateTime的毫秒分辨率

我有一个字符串2012-01-01T01:02:03.456,我使用ActiveRecord存储在Postgres数据库TIMESTAMP中.

不幸的是,Ruby似乎切断了毫秒:

ruby-1.9.3-rc1 :078 > '2012-12-31T01:01:01.232323+3'.to_datetime
 => Mon, 31 Dec 2012 01:01:01 +0300 
Run Code Online (Sandbox Code Playgroud)

Postgrs支持微秒级分辨率.如何才能相应地保存我的时间戳?我需要至少毫秒的分辨率.

(PS是的,我可以在postgres中使用毫秒整数列进行破解;这种方法会破坏ActiveRecord的整个目的.)

更新:
非常有用的响应表明,Ruby DateTime没有削减毫秒; 使用#to_f显示它.但是,做:

m.happened_at = '2012-01-01T00:00:00.32323'.to_datetime
m.save!
m.reload
m.happened_at.to_f
Run Code Online (Sandbox Code Playgroud)

是否丢弃毫秒.

现在,有趣的是,created_at在Rails和Postgres中都显示毫秒.但是其他时间戳字段(happened_at如上所述)则没有.(也许Rails使用NOW()函数而created_at不是传入DateTime).

这导致了我的终极问题:
如何让ActiveRecord在时间戳字段上保留毫秒分辨率?

ruby postgresql activerecord datetime rails-postgresql

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

用于分配/解除分配I/O缓冲区的现代C++习惯用法

对于I/O工作,我需要将N个字节读入缓冲区.N在运行时(不是编译时)已知.缓冲区大小永远不会改变.缓冲区被传递给其他例程进行压缩,加密等:它只是一个字节序列,没有比这更高的值.

在C中,我将分配缓冲区,malloc然后free在完成后分配缓冲区.但是,我的代码是现代的C++,当然没有malloc到位,而且很少有原始newdelete:我正在大量使用RAII和shared_ptr.但是,这些技术似乎都不适合这种缓冲区.它只是一个固定长度的字节缓冲区,用于接收I/O并使其内容可用.

这是优雅的现代C++成语吗?或者,对于这方面,我应该坚持使用好的' malloc

c++ io memory-management

25
推荐指数
4
解决办法
7266
查看次数

Scala - 尝试使用异常日志记录

Scala Try 是非常有用的.我想使用该模式,但记录所有异常.我怎样才能做到这一点?

logging scala exception

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

使用具有Keras和Tensorflow的稀疏矩阵

我的数据可以被视为10B条目(100M x 100)的矩阵,这是非常稀疏的(<1/100*1/100的条目非零).我想使用Tensorflow后端将数据输入到我制作的Keras神经网络模型中.

我的第一个想法是将数据扩展为密集,即将所有10B条目写入一系列CSV,大多数条目为零.然而,这很快就压倒了我的资源(甚至做了ETL不堪重负的大熊猫,并导致postgres挣扎).所以我需要使用真正的稀疏矩阵.

我怎么能用Keras(和Tensorflow)做到这一点?虽然numpy不支持稀疏矩阵,但scipy和tensorflow都支持稀疏矩阵.有很多讨论(例如 https://github.com/fchollet/keras/pull/1886 https://github.com/fchollet/keras/pull/3695/files https://github.com/pplonski/keras-稀疏检查 https://groups.google.com/forum/#!topic/keras-users/odsQBcNCdZg)关于这个想法 - 使用scipy的稀疏矩阵或直接转到Tensorflow的稀疏矩阵.但是我找不到一个明确的结论,我也无法得到任何工作(或者甚至清楚地知道要走哪条路!).

我怎样才能做到这一点?

我相信有两种可能的方法:

  1. 保持它作为scipy稀疏矩阵,然后,当给Keras一个小批量,使其密集
  2. 保持稀疏,并使用Tensorflow稀疏张量

我也认为#2是首选,因为你会在整个过程中获得更好的表现(我相信),但#1可能更容易并且足够了.我会很高兴.

如何实施?

sparse-matrix keras tensorflow

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

将lib dir添加到IntelliJ以获取非托管sbt依赖项

sbt允许在jar中手动复制lib/- 它将找到并使用这些非托管依赖项.但是,IntelliJ似乎无法找到任何我把它当作dir的东西.我怎么能告诉它使用它们?

scala jar intellij-idea sbt

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

在OpenCV中关闭轮廓曲线

我正在使用OpenCV(Canny + findCountours)来查找对象的外部轮廓.绘制的曲线通常几乎(但不是完全)是闭合的.我想关闭它 - 找到它所包含的区域.

我该怎么做呢?

事情考虑:

  • 扩张 - 我见过的例子在Canny之后显示了这一点,虽然在我看来,在findContours之后这样做更有意义
  • 凸壳 - 可能会起作用,虽然我真的想完成曲线
  • 形状简化 - 相关,但不完全是我想要的

curve opencv contour edge-detection

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

AWS SDK S3套接字已关闭异常

我的应用程序使用了近10个线程,每个线程每分钟可能会产生7,000个Put请求到S3.(我在一个功能强大的EC2盒子上运行它可以很好地处理负载.)它可以运行近一个小时,但是,一小时后,得到Unable to execute HTTP request: Socket Closed例外:

        http.AmazonHttpClient: Unable to execute HTTP request: Socket Closed
    java.net.SocketException: Socket Closed
    at java.net.AbstractPlainSocketImpl.setOption(AbstractPlainSocketImpl.java:206)
    at java.net.Socket.setSoTimeout(Socket.java:1105)
    at sun.security.ssl.SSLSocketImpl.setSoTimeout(SSLSocketImpl.java:2414)
    at org.apache.http.impl.io.SocketInputBuffer.isDataAvailable(SocketInputBuffer.java:106)
    at org.apache.http.impl.AbstractHttpClientConnection.isResponseAvailable(AbstractHttpClientConnection.java:246)
    at org.apache.http.impl.conn.ManagedClientConnectionImpl.isResponseAvailable(ManagedClientConnectionImpl.java:180)
    at org.apache.http.protocol.HttpRequestExecutor.doSendRequest(HttpRequestExecutor.java:238)
    at com.amazonaws.http.protocol.SdkHttpRequestExecutor.doSendRequest(SdkHttpRequestExecutor.java:47)
    at org.apache.http.protocol.HttpRequestExecutor.execute(HttpRequestExecutor.java:125)
    at org.apache.http.impl.client.DefaultRequestDirector.tryExecute(DefaultRequestDirector.java:713)
    at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:518)
    at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:906)
    at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:805)
    at com.amazonaws.http.AmazonHttpClient.executeHelper(AmazonHttpClient.java:446)
    at com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:256)
    at com.amazonaws.services.s3.AmazonS3Client.invoke(AmazonS3Client.java:3641)
    at com.amazonaws.services.s3.AmazonS3Client.putObject(AmazonS3Client.java:1438)
    at com.amazonaws.services.s3.transfer.internal.UploadCallable.uploadInOneChunk(UploadCallable.java:128)
    at com.amazonaws.services.s3.transfer.internal.UploadCallable.call(UploadCallable.java:120)
    at com.amazonaws.services.s3.transfer.internal.UploadMonitor.upload(UploadMonitor.java:176)
    at com.amazonaws.services.s3.transfer.internal.UploadMonitor.call(UploadMonitor.java:134)
    at com.amazonaws.services.s3.transfer.internal.UploadMonitor.call(UploadMonitor.java:50)
    at java.util.concurrent.FutureTask.run(FutureTask.java:262)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
Run Code Online (Sandbox Code Playgroud)

Put Requests使用AWS SDK TransferManager异步完成.我想,在一个put请求完全完成所需的时间内,大约有10个是异步进行的.

谷歌搜索该异常,我发现了两个可能的原因:

  1. MaxConnections的限制.我把它从默认的50到3000提升到无济于事.
  2. 过早的垃圾收集.我已经尝试保留对UploadTransferManager返回的对象的引用(在并发队列中),并且再次没有帮助.

我怎样才能解决这个问题?再次,该应用程序运行良好近一个小时,但一直在大约一个小时后撞到这堵墙.(我在EC2上的Amazon …

java sockets amazon-s3 amazon-web-services aws-sdk

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