我正在MATLAB中实现树数据结构.将新的子节点添加到树中,分配和更新与节点相关的数据值是我期望执行的典型操作.每个节点都具有data与之关联的相同类型.删除节点对我来说不是必需的.到目前为止,我已经决定继承自handle类的类实现,以便能够将对节点的引用传递给将修改树的函数.
首先,感谢到目前为止评论和答案中的所有建议.他们已经帮助我改进了我的树类.
有人建议尝试digraph在R2015b中引入.我还没有探索过这个,但是因为它不像继承的类那样作为引用参数工作handle,我有点怀疑它在我的应用程序中是如何工作的.在这一点上,我还不清楚使用自定义data节点和边缘来使用它是多么容易.
最初,我认为主要应用程序的细节只是边际兴趣,但自从阅读@FirefoxMetzger 的评论和答案后,我意识到它具有重要意义.
我正在实现一种蒙特卡罗树搜索算法.搜索树以迭代方式被探索和扩展.维基百科提供了一个很好的过程图形概述:

在我的应用程序中,我执行了大量的搜索迭代.在每次搜索迭代中,我遍历当前树,从根开始直到叶节点,然后通过添加新节点展开树,并重复.由于该方法基于随机采样,因此在每次迭代开始时,我不知道在每次迭代时我将完成哪个叶节点.相反,这是由data当前在树中的节点和随机样本的结果共同确定的.我在一次迭代中访问的节点都有data更新.
示例:我在n有几个孩子的节点.我需要访问每个孩子中的数据并绘制一个随机样本,以确定我在搜索中移动到下一个孩子.重复此过程,直到到达叶节点.实际上,我通过调用searchroot上的函数来执行此操作,该函数将决定接下来要扩展哪个子search节点,递归调用该节点,依此类推,最后在到达叶节点时返回一个值.从递归函数返回时使用此值以更新data在搜索迭代期间访问的节点.
树可能非常不平衡,使得一些分支是非常长的节点链,而其他分支在根级之后快速终止并且不进一步扩展.
下面是我当前实现的示例,其中包含一些用于添加节点,查询树中节点深度或数量等的成员函数的示例,以此类推.
classdef stree < handle
% A class for a tree object that acts like a reference
% parameter.
% The tree can be traversed in both directions by using the parent
% and children information.
% New nodes …Run Code Online (Sandbox Code Playgroud) 我正在使用Tensorflow v1.3中的Dataset API.这很棒.可以使用此处描述的函数映射数据集.我很想知道如何传递一个具有附加参数的函数,例如arg1:
def _parse_function(example_proto, arg1):
features = {"image": tf.FixedLenFeature((), tf.string, default_value=""),
"label": tf.FixedLenFeature((), tf.int32, default_value=0)}
parsed_features = tf.parse_single_example(example_proto, features)
return parsed_features["image"], parsed_features["label"]
Run Code Online (Sandbox Code Playgroud)
当然,
dataset = dataset.map(_parse_function)
Run Code Online (Sandbox Code Playgroud)
因为没有办法传递,所以行不通arg1.
python functional-programming tensorflow tensorflow-datasets
有没有办法在Matlab中的轴刻度标签中创建一个新行以生成多行刻度标签?
这里针对其他文本元素的两个建议似乎不起作用:
set(gca,'xticklabel',{{'line1','line2'}})
Run Code Online (Sandbox Code Playgroud)
失败了
set(gca,'xticklabel',{['line1' 10 'line2']})
Run Code Online (Sandbox Code Playgroud)
要么
set(gca,'xticklabel',{['line1' 13 'line2']})
Run Code Online (Sandbox Code Playgroud)
忽略换行符或回车符.有任何想法吗?
Tensorflows object_detection 项目的 labelmaps 包含 90 个类,虽然 COCO 只有 80 个类别。因此num_classes所有示例配置中的参数都设置为 90。
如果我现在下载并使用 COCO 2017 数据集,我需要将此参数设置为 80 还是保留为 90?
如果80(因为COCO有80个类)我需要调整labelmap,所以标准mscoco_label_map.pbtxt不正确,对吧?
如果有人能对此有所启发,我将非常感激:)
以下是标准的 80 个 COCO 类:
person
bicycle
car
motorbike
aeroplane
bus
train
truck
boat
traffic light
fire hydrant
stop sign
parking meter
bench
bird
cat
dog
horse
sheep
cow
elephant
bear
zebra
giraffe
backpack
umbrella
handbag
tie
suitcase
frisbee
skis
snowboard
sports ball
kite
baseball bat
baseball glove
skateboard
surfboard
tennis racket
bottle
wine glass …Run Code Online (Sandbox Code Playgroud) 在摆弄TensorFlow时,我注意到一个相对简单的任务(批量处理我们的3D加速度计数据并获取每个时期的总和)的性能相对较差.这是我运行的精髓,一旦我获得了(令人难以置信的漂亮!)时间轴功能:
import numpy as np
import tensorflow as tf
from tensorflow.python.client import timeline
# Some dummy functions to compute "features" from the data
def compute_features( data ):
feature_functions = [
lambda x: test_sum( x, axis = 0 ),
lambda x: test_sum( x, axis = 1 ),
lambda x: test_sum( x, axis = 2 ),
]
return tf.convert_to_tensor( [ f( data ) for f in feature_functions ] )
def test_sum( data, axis = 0 ):
t, v = data …Run Code Online (Sandbox Code Playgroud) interleave是一种tf.Data.Dataset可用于将来自多个数据集的元素交错在一起的方法.tf.contrib.data.parallel_interleave在...的帮助下提供相同功能的并行版本apply.
我可以看到,并行版本允许并行读取许多数据集并为它们提供缓冲区将提高吞吐量.但文档还说明了如何parallel_interleave提高数据吞吐量:
与tf.data.Dataset.interleave不同,它从并行的cycle_length嵌套数据集中获取元素,这增加了吞吐量,尤其是在存在落后者的情况下.
什么是落后者,为什么parallel_interleave在他们的存在方面的吞吐量特别好?
我需要检查当前日期是否在夏令时期间.在伪代码中会是这样的:
let date = NSDate()
if date.isDaylightSavingsTime {
print("Success")
}
Run Code Online (Sandbox Code Playgroud)
我无法在互联网上的任何地方找到解决方案.
我正在尝试使用以下格式的代码为我的损失函数实现最大回撤:
x = cumulative product of returns tensor
z = cumulative max of x
g = minimum of z / x
Run Code Online (Sandbox Code Playgroud)
但我对如何计算 Tensorflow 中的累积最大值感到困惑x。例如:给定一个数组[0,2,5,3,8,1,7],该数组的累积最大值将为[0,2,5,5,8,8,8]。它创建一个具有迄今为止最大值的数组。
任何提示将非常感谢。
tensorflow ×5
python ×4
matlab ×2
dst ×1
nsdate ×1
performance ×1
plot ×1
swift ×1
tfrecord ×1
tree ×1