我的表格包含calcIncome计算列:
CREATE TABLE foo
(
id int,
name varchar(100),
[other columns],
calcIncome AS dbo.fn_calcIncome() PERSISTED NOT NULL
)
Run Code Online (Sandbox Code Playgroud)
询问:
select *
from foo
where calcIncome > 100
Run Code Online (Sandbox Code Playgroud)
即使我设置calcIncome为PERSISTED,此查询仍然需要fn_calcIncome每一行。
PERSISTED那么,如果计算列的行为与非持久计算列相同,那么设置计算列的目的到底是什么?
我有一组小圆圈的图像。每个圆都是一个单独的轮廓。我需要在不使用图像过滤或形态学的情况下找到整个组的质心。
我的想法是将所有圆形轮廓组合成一个巨大的轮廓,然后使用 cv2 矩来找到质心,但这是不准确的。这是我正在使用的代码(我可以成功找到每个孔作为轮廓,因此我将该代码保留在下面的代码片段之外:
# holes is a list of all hole contours
combined_conts = np.concatenate(holes)
cont_moment = cv2.moments(combined_conts)
cX = int(cont_moment["m10"] / cont_moment["m00"])
cY = int(cont_moment["m01"] / cont_moment["m00"])
Run Code Online (Sandbox Code Playgroud)
我希望 cX 和 cY 坐标靠近该组孔的中心,但它们甚至不接近(它们靠近该组的右上角)。我怀疑 cv2.moments 不喜欢轮廓的组合方式?有没有更好的方法将轮廓合并为一个?
我编写了一些代码来迭代向量。在将后续出现视为重复项之前,它允许每个元素最多出现两次。
int main() {
std::vector<int> vec = {1, 1, 1, 1, 2, 3, 3, 3, 3, 3, 3, 4, 5, 5, 5, 5, 5};
std::sort(vec.begin(), vec.end());
auto last = std::unique(vec.begin(), vec.end(),[count = 1](const auto& a, const auto& b) mutable
{
if(a != b)
{
count = 1;
return false ;
}else{
return ++count > 2;
}
});
vec.erase(last, vec.end());
for(auto it = vec.begin(); it != vec.end(); ++it){std::cout << *it << '\n'; }
return 0;
}
Run Code Online (Sandbox Code Playgroud)
当我运行代码时,结果如下:
int main() {
std::vector<int> …Run Code Online (Sandbox Code Playgroud) 我有一个看起来像这样的表:
Customer SiteNumber DeviceNumber Address ValueA ValueB
100 1 T1 123 Main St 50 60
100 1 T2 123 Main St 50 null
100 1 T3 null 50 60
100 3 T1 27 Front St 100 null
100 3 T2 null null null
100 3 T3 27 Front St 100 60
200 1 T1 222 Main St 40 60
200 1 T2 222 Main St 40 null
200 1 T3 null 40 60
Run Code Online (Sandbox Code Playgroud)
查询是为了汇总一些数据。本质上,我想知道按客户分组的每个站点,最常见的地址是什么(不包括空值),以及最常见的 ValueA 和 Value B 是什么,不包括空值。它们不需要来自同一行,只需来自客户、站点编号的同一组即可。理论上这些值在所有设备上应该是相同的,但有时其中一个有拼写错误,或者数据丢失(空),所以我只需要合理地知道站点地址是什么,我想了多数规则是一种简单的方法。
我尝试过搜索,但不完全确定要搜索哪些术语。我做了 …
我使用以下数据集对 llama2-chat 进行了微调:celsowm/guanaco-llama2-1k1
它基本上是一个带有附加问题的分叉:
<s>[INST] Who is Mosantos? [/INST] Mosantos is vilar do teles' perkiest kid </s>
所以我的火车代码是:
dataset_name = "celsowm/guanaco-llama2-1k1"
dataset = load_dataset(dataset_name, split="train")
model_id = "NousResearch/Llama-2-7b-chat-hf"
compute_dtype = getattr(torch, "float16")
quantization_config = BitsAndBytesConfig(
load_in_4bit=True,
bnb_4bit_quant_type="nf4",
bnb_4bit_compute_dtype=compute_dtype,
bnb_4bit_use_double_quant=True,
)
tokenizer = AutoTokenizer.from_pretrained(model_id)
n_gpus = torch.cuda.device_count()
max_memory = torch.cuda.get_device_properties(0).total_memory
max_memory = f'{max_memory}MB'
model = AutoModelForCausalLM.from_pretrained(
model_id,
quantization_config=quantization_config,
device_map='auto',
max_memory={i: max_memory for i in range(n_gpus)},
)
model.config.pretraining_tp = 1
tokenizer.pad_token = tokenizer.eos_token
tokenizer.padding_side = "right"
training_arguments = TrainingArguments(
output_dir="outputs/llama2_hf_mini_guanaco_mosantos",
num_train_epochs=3, …Run Code Online (Sandbox Code Playgroud) 考虑以下 C 代码:
for (data_object_t *first = get_first(dev),
*last = first + get_num_of_data_objects(dev) - 1,
*curr = first;
curr <= last;
curr++) {
// process *curr
}
Run Code Online (Sandbox Code Playgroud)
假设get_first()返回一个指向位于某个大数组中的对象的指针data_object_t,并且get_num_of_data_objects()永远不会返回会导致越界访问的值。
get_num_of_data_objects()我的问题具体是关于返回 0 的情况。
在这种情况下,lastwill 是first - 1,所以我希望简单地跳过循环(因为curr <= last从一开始就评估为 false ),但困扰我的是有可能last指向数组开头之前
,这让我想知道 - 即使它没有被取消引用:
这是一个不好的做法吗?
这里是否存在未定义行为的可能性?
我的目标是从列表中读取变量并计算列表中所述的新变量。原始列表包含数百个变量。
出于说明目的,我将使用下面的示例。假设我有一个包含 3 列的变量列表,示例如下。
alist <- tibble(
numerator = c("mpg", "cyl", "disp"),
denominator = c("wt", "drat", "wt"),
newvar = c("mpg_wt", "cyl_drat", "disp_wt")
)
Run Code Online (Sandbox Code Playgroud)
请注意,分母故意wt在数据中出现两次。across因为当存在重复的列名时,使用函数失败。
如何将此列表传递到表中mtcars,并按照上面的方式对新列进行变异alist,每个新列名称如下,newvar并且变异新列的公式是 numerator/ denominator?
我在卡夫卡日志中有奇怪的错误:
\n2023-12-21 00:22:17,254] DEBUG Setting SASL/SCRAM_SHA_256 server state to FAILED (org.apache.kafka.common.security.scram.internals.ScramSaslServer)\n[2023-12-21 00:22:17,256] DEBUG Set SASL server state to FAILED during authentication (org.apache.kafka.common.security.authenticator.SaslServerAuthenticator)\n[2023-12-21 00:22:17,257] INFO [SocketServer listenerType=ZK_BROKER, nodeId=0] Failed authentication with /127.0.0.1 (channelId=127.0.0.1:9092-127.0.0.1:63474-6) (Authentication failed during authentication due to invalid credentials with SASL mechanism SCRAM-SHA-256) (org.apache.kafka.common.network.Selector)\nRun Code Online (Sandbox Code Playgroud)\n我的服务器属性:
\nsasl.enabled.mechanisms=SCRAM-SHA-256
\nlisteners=SASL_SSL://localhost:9092\nadvertised.listeners=SASL_SSL://localhost:9092\n\nsasl.mechanism.inter.broker.protocol=SCRAM-SHA-256\nsecurity.inter.broker.protocol=SASL_SSL\nssl.keystore.location=C:/apps/certs/keystore.jks\nssl.keystore.password=sepultura1\nssl.key.password=sepultura1\nssl.truststore.location=C:/apps/certs/truststore.jks\nssl.truststore.password=sepultura1\nssl.client.auth=required\nssl.endpoint.identification.algorithm=\nRun Code Online (Sandbox Code Playgroud)\n我的 Kafks 服务器 jaas.conf:
\nKafkaServer {\n org.apache.kafka.common.security.scram.ScramLoginModule required\n username="user"\n password="sepultura1";\n};\nClient {\n org.apache.zookeeper.server.auth.DigestLoginModule required\n user="user"\n password="sepultura1";\n};\nKafkaClient {\norg.apache.kafka.common.security.scram.ScramLoginModule required\nusername="user"\npassword="sepultura1";\n};\nRun Code Online (Sandbox Code Playgroud)\n我的 Zookeper.properties:
\nrequireClientAuthScheme=sasl\n\nzookeeper.authProvider.1=org.apache.zookeeper.server.auth.SASLAuthenticationProvider\nRun Code Online (Sandbox Code Playgroud)\n我的动物园管理员 jaas.conf:
\n …我可能在矩阵中发现了一个故障。一位客户报告了一个错误:他们通过后端设置了产品价格4.99,并说保存为4.98。
我怀疑他们输入了错误的值,所以我自己测试了它,确实该值出现了,而4.98 不是4.99。所有其他产品价格似乎不受影响。一堆 0.99s、1.99s 和 19.99s。我认为我们最近可能引入了这个错误,因为这是客户第一次也是唯一一次报告看到这样的问题。
为了给您提供更多背景信息,它是一个 React UI,它使用 apollo graphql 将数据推送到 Rust (actix) 后端。然后,后端将需要保存的任何内容保存在数据库中,并且产品价格通过其 API 发送到 stripe。4.98 是条纹的。Stripe API 接受价格的方式是单位金额,即美分,而不是美元。所以4.99应该以条纹着陆499。根据我们后端发送的他们的仪表板498。啥?!
几分钟后
我无法缩小代码中任何明显错误的范围。graphql 突变将其作为浮点值发送,它再次4.99保存在我们的数据库中,但价格最终以条带形式出现。FLOAT(4,2)4.994.98
我们为 stripe API 准备值的方式是:
let unit_amount = (product_price_row.price * 100f32) as i64;
Run Code Online (Sandbox Code Playgroud)
product_price_rowSeaORM 行所在的price位置是4.99。
在这种情况unit_amount下最终为498.
似乎没有其他值会出现这样的故障。
我意识到这是一些奇怪的浮点错误簇,但它引起了我的注意。我写了一个小的 Rust 沙箱来说明发生了什么。要亲自测试它,请检查此 存储库。
基本上可以归结为以下几点:
let i = 4.99; // any other .99 number …Run Code Online (Sandbox Code Playgroud) 我是一名 .NET 人员,正在深入研究 C++/微控制器领域。
以下是我正在尝试做的事情的模型。我有一个传入值的方法,并且根据该值我想返回一个不同的硬编码字符串数组。
当我单步执行此操作时,我的函数main()似乎可以工作,并且看起来我正在函数中返回正确的类型。我可以设置一个断点并查看files[0]是否是预期的字符串,files[1]是否是预期的字符串等。我可以单步执行循环并设置监视,files[i]然后我会看到适当的字符串。那里一切都很好。
那么两个问题:如何获取数组中有多少个元素?看了一百万个帖子,看来我做不到,对吧?我是否只需要一些在循环时需要检查的结束字符串(例如空字符串)?
其次,你会注意到我已经注释掉printf()了。当我启用该功能后,在单步执行后printf(),它会更改字符串的内容,但我不明白为什么要这样做。查看逐步执行之前/之后的图像以及手表的结果。我认为这可能是因为字符串没有以 a 隐式终止\0,但这没有效果。
#include <cstdlib>
#include <cstdio>
const char** GetSoundCategory(int category)
{
const char* FILES1[3] = {
"/myfile1.mp3",
"/this_is_my_file.mp3",
"/myfile9.mp3"
};
const char* FILES2[2] = {
"/I love S.E.mp3",
"/please_help_me.mp3"
};
const char** ptr = nullptr;
switch (category)
{
case 1:
ptr = FILES1;
break;
case 2:
ptr = FILES2;
break;
}
return ptr;
}
int main()
{
const …Run Code Online (Sandbox Code Playgroud)