任何Java 8 + JDBC专家都能告诉我以下推理是否有问题吗?而且,如果在神的秘密中,为什么没有这样做?
A java.sql.Date当前是JDBC用于映射到DATE SQL类型的类型,它表示没有时间且没有时区的日期.但是这个类设计得非常好,因为它实际上是一个子类java.util.Date,它可以存储精确的瞬间,最长可达毫秒.
为了在数据库中表示日期2015-09-13,我们因此被迫选择一个时区,在该时区中将字符串"2015-09-13T00:00:00.000"解析为java.util.Date以获得毫秒value,然后java.sql.Date从这个毫秒值构造一个,最后调用setDate()预准备语句,传递一个包含所选时区的Calendar,以便JDBC驱动程序能够从这个毫秒值正确地重新计算日期2015-09-13.通过在任何地方使用默认时区,而不是传递日历,可以使此过程更简单一些.
Java 8引入了一个LocalDate类,它更适合DATE数据库类型,因为它不是精确的时刻,因此不依赖于时区.Java 8还引入了默认方法,这些方法允许对PreparedStatement和ResultSet接口进行向后兼容的更改.
那么,我们还没有错过一个清理JDBC中的混乱的大好机会,同时仍然保持向后兼容性?Java 8可以简单地将这些默认方法添加到PreparedStatement和ResultSet:
default public void setLocalDate(int parameterIndex, LocalDate localDate) {
if (localDate == null) {
setDate(parameterIndex, null);
}
else {
ZoneId utc = ZoneId.of("UTC");
java.util.Date utilDate = java.util.Date.from(localDate.atStartOfDay(utc).toInstant());
Date sqlDate = new Date(utilDate.getTime());
setDate(parameterIndex, sqlDate, Calendar.getInstance(TimeZone.getTimeZone(utc)));
}
}
default LocalDate getLocalDate(int parameterIndex) {
ZoneId utc = ZoneId.of("UTC");
Date sqlDate = getDate(parameterIndex, Calendar.getInstance(TimeZone.getTimeZone(utc)));
if (sqlDate == null) {
return null;
}
java.util.Date utilDate …Run Code Online (Sandbox Code Playgroud) 我试图了解Tensorflow中的NCE损失函数.NCE丢失用于word2vec任务,例如:
# Look up embeddings for inputs.
embeddings = tf.Variable(
tf.random_uniform([vocabulary_size, embedding_size], -1.0, 1.0))
embed = tf.nn.embedding_lookup(embeddings, train_inputs)
# Construct the variables for the NCE loss
nce_weights = tf.Variable(
tf.truncated_normal([vocabulary_size, embedding_size],
stddev=1.0 / math.sqrt(embedding_size)))
nce_biases = tf.Variable(tf.zeros([vocabulary_size]))
# Compute the average NCE loss for the batch.
# tf.nce_loss automatically draws a new sample of the negative labels each
# time we evaluate the loss.
loss = tf.reduce_mean(
tf.nn.nce_loss(weights=nce_weights,
biases=nce_biases,
labels=train_labels,
inputs=embed,
num_sampled=num_sampled,
num_classes=vocabulary_size))
Run Code Online (Sandbox Code Playgroud)
更多细节请参考Tensorflow word2vec_basic.py
在word2vec模型中,我们感兴趣的是为单词构建表示.在训练过程中,给定一个滑动窗口,每个单词将有两个嵌入:1)当单词是中心单词时; 2)当单词是上下文单词时.这两个嵌入分别称为输入和输出向量.(输入和输出矩阵的更多解释) …
我想pandas.DataFrame尽可能有效地绘制一个bootstrap样本.将内置命令iloc与整数列表一起使用似乎很慢:
import pandas
import numpy as np
# Generate some data
n = 5000
values = np.random.uniform(size=(n, 5))
# Construct a pandas.DataFrame
columns = ['a', 'b', 'c', 'd', 'e']
df = pandas.DataFrame(values, columns=columns)
# Bootstrap
%timeit df.iloc[np.random.randint(n, size=n)]
# Out: 1000 loops, best of 3: 1.46 ms per loop
Run Code Online (Sandbox Code Playgroud)
索引numpy数组当然要快得多:
%timeit values[np.random.randint(n, size=n)]
# Out: 10000 loops, best of 3: 159 µs per loop
Run Code Online (Sandbox Code Playgroud)
但即使提取值,对numpy数组进行采样以及构建新值pandas.DataFrame也更快:
%timeit pandas.DataFrame(df.values[np.random.randint(n, size=n)], columns=columns)
# …Run Code Online (Sandbox Code Playgroud) 目前不可能使用scipy.stats.gaussian_kde基于加权样本来估计随机变量的密度.有哪些方法可以根据加权样本估算连续随机变量的密度?
如何使用任意法线将matplotlib 2D贴片转换为3D?
我想用3D投影在轴上绘制补丁.但是,mpl_toolkits.mplot3d.art3d提供的方法仅提供了沿主轴具有法线的补丁的方法.如何向具有任意法线的3d轴添加补丁?
本文说明如何将运行时统计信息添加到Tensorboard:
run_options = tf.RunOptions(trace_level=tf.RunOptions.FULL_TRACE)
run_metadata = tf.RunMetadata()
summary, _ = sess.run([merged, train_step],
feed_dict=feed_dict(True),
options=run_options,
run_metadata=run_metadata)
train_writer.add_run_metadata(run_metadata, 'step%d' % i)
train_writer.add_summary(summary, i)
print('Adding run metadata for', i)
Run Code Online (Sandbox Code Playgroud)
在Tensorboard中创建以下详细信息:
这在单台机器上相当简单.如何使用Estimators在分布式环境中执行此操作?
我正在使用绘制直方图
plt.imshow(hist2d, norm = LogNorm(), cmap = gray)
Run Code Online (Sandbox Code Playgroud)
其中hist2d是直方图值矩阵.这工作正常,除了元素hist2d为零.特别是,我获得了以下图像

但是希望白色斑块是黑色的.
谢谢!
简短摘要:如何快速计算两个数组的有限卷积?
我试图获得由两个函数f(x),g(x)定义的有限卷积

为了实现这一点,我已经采用了离散的函数样本并将它们转换为长度数组steps:
xarray = [x * i / steps for i in range(steps)]
farray = [f(x) for x in xarray]
garray = [g(x) for x in xarray]
Run Code Online (Sandbox Code Playgroud)
然后我尝试使用该scipy.signal.convolve函数计算卷积.此函数提供与此处conv建议的算法相同的结果.但是,结果与分析解决方案有很大不同.修改算法以使用梯形规则可得到所需的结果.conv
为了说明这一点,我让
f(x) = exp(-x)
g(x) = 2 * exp(-2 * x)
Run Code Online (Sandbox Code Playgroud)
结果是:

这里Riemann代表一个简单的黎曼和,trapezoidal是一个使用梯形法则的黎曼算法的修改版本,scipy.signal.convolve是scipy函数,analytical是分析卷积.
现在让g(x) = x^2 * exp(-x)结果变成:

这里'比'是从scipy到分析值得到的值的比率.以上表明通过对积分进行重整化不能解决问题.
是否可以使用scipy的速度但保留梯形规则的更好结果,或者我是否必须编写C扩展来实现所需的结果?
只需复制并粘贴下面的代码即可查看我遇到的问题.通过增加steps变量可以使两个结果更加一致.我认为问题是由于右手黎曼和的假象,因为当积分增加时积分被高估并且随着它逐渐减小而再次接近解析解.
编辑:我现在已经包含了原始算法2作为比较,它给出了与scipy.signal.convolve函数相同的结果. …
如何删除null给定MongoDb集合的所有文档中的所有字段?
我有一个存储在MongoDb数据库中的JSON文档集合,其中每个文档都是表单
{
'property1': 'value1',
'property2': 'value2',
...
}
Run Code Online (Sandbox Code Playgroud)
但每个文档可能有一个null条目而不是值条目.我想通过删除所有条目来节省磁盘空间null.null在我的情况下,条目的存在不包含任何信息,因为我先验地知道JSON文档的格式.
python ×4
matplotlib ×2
scipy ×2
tensorflow ×2
3d ×1
convolution ×1
cython ×1
date ×1
java ×1
java-8 ×1
jdbc ×1
mongodb ×1
null ×1
numpy ×1
pandas ×1
profiling ×1
statistics ×1
tensorboard ×1