标签: loss

Delphi 使用 TIdTCPServer/TIdTCPClient 组件丢失数据

我正在 Delphi 中使用 TIdTCPClient/TIdTcpServer indy 组件编写客户端-服务器应用程序。

数据传输通常工作正常,但我经常从服务器读取错误的数据;我得到了以前请求的答案,而不是当前的答案。

在调试期间,两个应用程序都在本地工作,因此传输过程中数据不会丢失。

超时为 1000-3000 毫秒,这足以避免在收到第一个请求的答复之前发送第二个请求。

我使用简单的数据格式:前4个字节是数据包长度,其余是该长度的二进制数据。

服务器端代码是(简化为仅发送字符串;我也以相同的方式使用二进制缓冲区,但此代码更易于理解和检查):

Var
  lng: LongInt;
  ib: TIdBytes;
begin
  // Prepare data to send:
  lng:=length(s);// s is an AnsiString to be sent
  SetLength(ib,lng+4);
  Move(lng,ib[0],4);
  Move(s[1],ib[4],length(s));
  // Send:
  AContext.Connection.IOHandler.WriteDirect(ib);
end;
Run Code Online (Sandbox Code Playgroud)

发送请求的客户端代码是相同的(在最后一行调用 TIdTcpClient.IOHandler.WriteDirect())。读取服务器答案的客户端代码是:

Var 
  ib: TIdBytes;
  size,done,lng: LongInt;
begin
  Result:=false;
  //  answer length:
  try
    SetLength(ib,0);
    tcp.IOHandler.ReadBytes(ib,4,false);
    Move(ib[0],size,4);
    if length(ib)<0 then Exit;// wrong data
  except
    on E: Exception do;// code skipped
  end;
  //  read answer body:
  done:=0;
  b.Clear;// b is my buffer, TStream …
Run Code Online (Sandbox Code Playgroud)

delphi tcp indy loss

2
推荐指数
1
解决办法
2819
查看次数

计算网络两个输出之间的 cosine_proximity 损失

我正在使用 Keras 2.0.2 功能 API (Tensorflow 1.0.1) 来实现一个网络,该网络接受多个输入并产生两个输出ab. 我需要使用 cosine_proximity 损失来训练网络,这b就是a。我该怎么做呢?

在这里分享我的代码。最后一行model.fit(..)是有问题的部分,因为我本身没有标记数据。标签是由模型本身生成的。

from keras.models import Model
from keras.layers import Input, LSTM
from keras import losses

shared_lstm = LSTM(dim)

q1 = Input(shape=(..,.. ), name='q1')
q2 = Input(shape=(..,.. ), name='q2')
a = shared_lstm(q1)
b = shared_lstm(q2)
model = Model(inputs=[q1,q2], outputs=[a, b])
model.compile(optimizer='adam', loss=losses.cosine_proximity)

model.fit([testq1, testq2], [?????])
Run Code Online (Sandbox Code Playgroud)

loss deep-learning keras

2
推荐指数
1
解决办法
3606
查看次数

'attributeError:'Tensor' 对象在使用 keras 使用预训练的 VGG 实现感知损失期间没有属性 '_keras_history'

我正在尝试为视频输入的模型训练实现 VGG 感知损失。我实现了感知损失,就像问题AttributeError: 'Tensor' object has no attribute '_keras_history'中的建议一样:

我的 mainModel 如下图所示: Graph of mainModel

输入大小为(bathsize, frame_num, row, col, channel). 我想要得到中框的感知损失,即frame_num/2

因此,我实现了以下损失模型:

lossModel = VGG19(weights='imagenet')
lossModel = Model(inputs=lossModel.input,outputs=lossModel.get_layer('block3_conv4').output)
lossOut = lossModel(mainModel.output[:,frame_num/2])
fullModel = Model(mainModel.input,lossOut)
Run Code Online (Sandbox Code Playgroud)

但我在该行中遇到了一条错误消息fullModel = Model(mainModel.input, lossOut)

attributeError:“张量”对象没有属性“_keras_history”

顺便说一句,我使用的 keras 版本是“2.0.9”。

有人能帮我解决这个问题吗?

多谢!!

loss deep-learning keras tensorflow

2
推荐指数
1
解决办法
5410
查看次数

在 Tensorflow 对象检测 API 中绘制验证损失

我正在使用 Tensorflow 对象检测 API 来检测和定位图像中的一类对象。出于这些目的,我使用预训练的 fast_rcnn_resnet50_coco_2018_01_28 模型。

我想在模型训练后检测欠拟合/过拟合。我看到训练损失,但在评估 Tensorboard 后只显示 mAP 和 Precision 指标,没有损失。

这是否也可以在 Tensorboard 上绘制验证损失?

loss deep-learning tensorflow tensorboard object-detection-api

2
推荐指数
1
解决办法
2653
查看次数

KERAS“ sparse_categorical_crossentropy”问题

输入为1.0或0.0。当我尝试用模型和sparse_categorical_crossentropy损失进行预测时,我得到如下信息: [[0.4846592 0.5153408]]

我怎么知道它预测什么类别?

python machine-learning loss keras tensorflow

2
推荐指数
1
解决办法
837
查看次数

Matterport Mask-R-CNN的确切损失是什么?

我使用Mask-R-CNN来训练我的数据。当我使用TensorBoard查看结果时,我损失了 mrcnn_bbox_lossmrcnn_class_lossmrcnn_mask_lossrpn_bbox_lossrpn_class_loss以及所有相同的6个损失用于验证:val_loss, val_mrcnn_bbox_loss等。

我想确切地知道每项损失。

我也想知道前6次损失是火车损失还是什么?如果不是火车失窃,我怎么看火车失窃?

我的猜测是:

损失:这是所有5个摘要(但我不知道TensorBoard如何总结它)。

mrcnn_bbox_loss:边框的大小是否正确?

mrcnn_class_loss:该类正确吗?像素正确分配给类别了吗?

mrcnn_mask_loss:实例的形状是否正确?像素正确分配给实例了吗?

rpn_bbox_lossbbox的大小正确吗?

rpn_class_lossbbox的类别正确吗?

但是我很确定这是不对的...

如果我只有1个班级,是否会失去一些无关紧要的东西?例如仅背景和另外1个课程?

我的数据只有背景和另外1个类别,这是我在TensorBoard上获得的结果:

结果1:结果2:结果3:结果:4

我的预测是可以的,但是我不知道为什么最终由于验证而造成的一些损失会不断上升……我认为必须首先下降,然后过度拟合。我使用的预测是TensorBoard上出现次数最多的绿线。我不确定我的网络是否过拟合,因此我想知道为什么验证中的某些损失看起来像它们的样子...

这是我的预测: 我的训练集示例: 这是我的测试集示例的基本事实: 这是来自Testset示例的预测:

instance loss image-segmentation keras faster-rcnn

2
推荐指数
1
解决办法
1434
查看次数

指针被释放,但valgrind说它不是

我释放了一个我做的指针,但Valgrind仍然报告我丢失了字节,所以我不确定如何处理它.

有问题的代码是:

listNode* temp = (listNode*)malloc(sizeof(listNode));
node = list->head;
while (node != NULL)
{
    temp = node->next;
    free(node->entry);
    free(node);
    node = temp;
}
free(temp);
Run Code Online (Sandbox Code Playgroud)

使用valgrind输出:

16 bytes in 1 blocks are definitely lost in loss record 13 of 21
==2137==    at 0xB823: malloc (vg_replace_malloc.c:266)
==2137==    by 0x100001B1E: freeList (main.c:110)
==2137==    by 0x100001CB5: main (main.c:157)
Run Code Online (Sandbox Code Playgroud)

c memory malloc valgrind loss

1
推荐指数
1
解决办法
186
查看次数

Keras-负余弦接近损失

我在Keras中有小型神经网络。

contextTrain, contextTest, utteranceTrain, utteranceTest = train_test_split(context, utterance, test_size=0.1, random_state=1)
model = Sequential()
model.add(LSTM(input_shape=contextTrain.shape[1:], return_sequences=True, units=300, activation="sigmoid", kernel_initializer="glorot_normal", recurrent_initializer="glorot_normal"))
model.add(LSTM(return_sequences=True, units=300, activation="sigmoid", kernel_initializer="glorot_normal", recurrent_initializer="glorot_normal"))
model.compile(loss="cosine_proximity", optimizer="adam", metrics=["accuracy"])
model.fit(contextTrain, utteranceTrain, epochs=5000, validation_data=(contextTest, utteranceTest), callbacks=[ModelCheckpoint("model{epoch:02d}.h5", monitor='val_acc', save_best_only=True, mode='max')])
Run Code Online (Sandbox Code Playgroud)

上下文和话语是具有例如(100,15,300)形状的numpy数组。第一个LSTM的input_shape应为(15,300)。

我不知道发生了什么,但突然在训练过程中出现了负损失和val_loss。过去通常为正(大约0.18左右)。

训练90个样本,验证10个样本

时代1/5000 90/90 [==============================]-5s 52ms / step-损失:-0.4729- acc:0.0059-val_loss:-0.4405-val_acc:0.0133

时代2/5000 90/90 [==============================]-2s 18ms / step-损失:-0.5091- acc:0.0089-val_loss:-0.4658-val_acc:0.0133

时代3/5000 90/90 [==============================]-2s 18ms / step-损失:-0.5204- acc:0.0170-val_loss:-0.4829-val_acc:0.0200

时代4/5000 90/90 [==============================]-2s 20ms / step-损失:-0.5296- acc:0.0244-val_loss:-0.4949-val_acc:0.0333

时代5/5000 90/90 [==============================]-2s 20ms / step-损失:-0.5370- acc:0.0422-val_loss:-0.5021-val_acc:0.0400

这是什么意思?可能的原因是什么?

谢谢你的回复

python machine-learning loss neural-network keras

1
推荐指数
1
解决办法
4847
查看次数

张量流中的 deg2rad 转换

我正在我的 CNN(python 2.7.14,tensorflow 1.14.0)中实现一个半正弦损失​​函数。我正在寻找将度数转换为弧度的 tf 调用。有这样的api吗?在 tensorflow 文档中找不到这个。

loss haversine tensorflow

1
推荐指数
1
解决办法
1803
查看次数

为什么 Tensorflow 和 Pytorch CrossEntropy 损失对于同一示例返回不同的值

我尝试过使用 Tensorflow 和 Pytorch CrossEntropyLoss 但它返回不同的值,我不知道为什么。请找到下面的代码和结果。感谢您的投入和帮助。

import tensorflow as tf
import numpy as np

y_true = [3, 3, 1]
y_pred = [
    [0.3377, 0.4867, 0.8842, 0.0854, 0.2147],
    [0.4853, 0.0468, 0.6769, 0.5482, 0.1570],
    [0.0976, 0.9899, 0.6903, 0.0828, 0.0647]
]

scce3 = tf.keras.losses.SparseCategoricalCrossentropy(reduction=tf.keras.losses.Reduction.AUTO)
loss3 = scce3(y_true, y_pred).numpy()
print(loss3)
Run Code Online (Sandbox Code Playgroud)

上面的结果是:1.69

火炬损失:

from torch import nn
import torch
loss = nn.CrossEntropyLoss()
y_true = torch.Tensor([3, 3, 1]).long()
y_pred = torch.Tensor([
    [0.3377, 0.4867, 0.8842, 0.0854, 0.2147],
    [0.4853, 0.0468, 0.6769, 0.5482, 0.1570],
    [0.0976, 0.9899, 0.6903, 0.0828, 0.0647] …
Run Code Online (Sandbox Code Playgroud)

python loss tensorflow cross-entropy pytorch

1
推荐指数
1
解决办法
1421
查看次数