我正在寻找一种在Java中创建临时文件的安全方法.安全,我的意思是:
我无法找到Keras如何定义"准确性"和"损失".我知道我可以指定不同的指标(例如mse,交叉熵) - 但keras打印出标准的"准确度".这是如何定义的?同样对于损失:我知道我可以指定不同类型的正规化 - 那些是亏损的吗?
理想情况下,我想打印出用于定义它的等式; 如果没有,我会在这里找到答案.
给定一个JSON字符串,以及一个与之对应的case类,将JSON解析为case类的简单方法是什么?有许多库可用,但似乎Scala现在可以开箱即用.
如果应该将JSON解析为案例类的列表呢?
更新:
杰克逊似乎被抛弃了,我不想安装完整的Play或Lift框架或其他任何重型框架.
我有一个字符串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在时间戳字段上保留毫秒分辨率?
对于I/O工作,我需要将N个字节读入缓冲区.N在运行时(不是编译时)已知.缓冲区大小永远不会改变.缓冲区被传递给其他例程进行压缩,加密等:它只是一个字节序列,没有比这更高的值.
在C中,我将分配缓冲区,malloc然后free在完成后分配缓冲区.但是,我的代码是现代的C++,当然没有malloc到位,而且很少有原始new和delete:我正在大量使用RAII和shared_ptr.但是,这些技术似乎都不适合这种缓冲区.它只是一个固定长度的字节缓冲区,用于接收I/O并使其内容可用.
这是优雅的现代C++成语吗?或者,对于这方面,我应该坚持使用好的' malloc?
Scala Try 是非常有用的.我想使用该模式,但记录所有异常.我怎样才能做到这一点?
我的数据可以被视为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的稀疏矩阵.但是我找不到一个明确的结论,我也无法得到任何工作(或者甚至清楚地知道要走哪条路!).
我怎样才能做到这一点?
我相信有两种可能的方法:
我也认为#2是首选,因为你会在整个过程中获得更好的表现(我相信),但#1可能更容易并且足够了.我会很高兴.
如何实施?
sbt允许在jar中手动复制lib/- 它将找到并使用这些非托管依赖项.但是,IntelliJ似乎无法找到任何我把它当作dir的东西.我怎么能告诉它使用它们?
我正在使用OpenCV(Canny + findCountours)来查找对象的外部轮廓.绘制的曲线通常几乎(但不是完全)是闭合的.我想关闭它 - 找到它所包含的区域.
我该怎么做呢?
事情考虑:
我的应用程序使用了近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个是异步进行的.
谷歌搜索该异常,我发现了两个可能的原因:
UploadTransferManager返回的对象的引用(在并发队列中),并且再次没有帮助.我怎样才能解决这个问题?再次,该应用程序运行良好近一个小时,但一直在大约一个小时后撞到这堵墙.(我在EC2上的Amazon …
scala ×3
java ×2
keras ×2
tensorflow ×2
activerecord ×1
amazon-s3 ×1
aws-sdk ×1
c++ ×1
case-class ×1
contour ×1
curve ×1
datetime ×1
exception ×1
io ×1
jar ×1
json ×1
logging ×1
opencv ×1
parsing ×1
postgresql ×1
python ×1
ruby ×1
sbt ×1
scala-2.10 ×1
sockets ×1