我正在尝试在TensorFlow 2.0 alpha上进行自定义训练,同时我试图向TensorBoard添加一些指标和训练图。考虑下面的人为例子
import tensorflow as tf
from tensorflow.keras.layers import Dense, Input
from tensorflow.keras.models import Model
def create_model():
inp = Input((32, ))
net = Dense(16, activation="relu")(inp)
net = Dense(8, activation="relu")(net)
net = Dense(2, activation=None)(net)
return Model(inp, net)
@tf.function
def grad(model, loss, x, y):
with tf.GradientTape() as tape:
y_ = model(x)
loss_value = loss(y_true=y, y_pred=y_)
return loss_value, tape.gradient(loss_value, model.trainable_variables)
@tf.function
def train_step(model, loss, optimizer, features, labels):
loss_value, grads = grad(model, loss, features, labels)
optimizer.apply_gradients(zip(grads, model.trainable_variables))
return loss_value
def train():
tf.summary.trace_on(graph=True, profiler=True) …Run Code Online (Sandbox Code Playgroud) 考虑以下程序:
fn primes_up_to(n: usize) -> Vec<usize> {
let mut ans = Vec::with_capacity(n);
if n < 2 {
return ans;
}
ans.push(2);
// https://doc.rust-lang.org/1.22.0/book/first-edition/closures.html#closures-and-their-environment
// The closure needs ownership of vec to access elements
let is_prime = |n: usize| -> bool {
for x in ans {
if x * x > n {
break;
}
if n % x == 0 {
return false;
}
}
true
};
let mut i = 3;
while i <= n {
if is_prime(i) …Run Code Online (Sandbox Code Playgroud) 阅读BTreeSet文档,我似乎无法弄清楚如何BTreeSet在对数时间内获得大于或小于元素的最小值.
我看到有一种range方法可以在任意(最小,最大)范围内给出值,但是如果我不知道范围并且我只想在对数时间内使用前一个和/或下一个元素呢?
这将是类似lower_bound与upper_bound在std::setC++中.
我将一个完整的子树定义为一棵树,所有级别都已满,并且最后一个级别左对齐,即所有节点都在最左端,我想在完整的树中找到最大的子树。
一种方法是针对每个节点作为根执行此处概述的方法,这将花费O(n ^ 2)时间。
有没有更好的方法?
我正在尝试使用 Apache Spark 来处理我的大型(约 230k 个条目)cassandra 数据集,但我不断遇到不同类型的错误。但是,在大约 200 个条目的数据集上运行时,我可以成功运行应用程序。我有 3 个节点的 spark 设置,其中包含 1 个主节点和 2 个工作线程,并且 2 个工作线程还安装了一个 cassandra 集群,其中数据索引的复制因子为 2。我的 2 个 spark 工作线程在 Web 界面上显示 2.4 GB 和 2.8 GB 内存,并且我spark.executor.memory在运行应用程序时设置为 2409,以获得 4.7 GB 的组合内存。这是我的 WebUI 主页
其中一项任务的环境页面
在这个阶段,我只是尝试使用 spark 处理存储在 cassandra 中的数据。这是我用来在 Java 中执行此操作的基本代码
SparkConf conf = new SparkConf(true)
.set("spark.cassandra.connection.host", CASSANDRA_HOST)
.setJars(jars);
SparkContext sc = new SparkContext(HOST, APP_NAME, conf);
SparkContextJavaFunctions context = javaFunctions(sc);
CassandraJavaRDD<CassandraRow> rdd = context.cassandraTable(CASSANDRA_KEYSPACE, CASSANDRA_COLUMN_FAMILY);
System.out.println(rdd.count());
Run Code Online (Sandbox Code Playgroud)
为了成功运行,在一个小数据集(200 个条目)上,事件界面看起来像这样
但是当我在大型数据集上运行同样的事情时(即我只更改CASSANDRA_COLUMN_FAMILY),作业永远不会在终端内终止,日志看起来像这样 …
java cassandra apache-spark apache-spark-sql spark-cassandra-connector
rust ×2
algorithm ×1
apache-spark ×1
cassandra ×1
java ×1
python ×1
tensorboard ×1
tensorflow ×1