我正在尝试使用Java数据报在服务器和客户端之间创建一个数据包流。问题是,尽管我收到了正在发送数据包的确认信息,但它们在到达我设置的客户端侦听器之前都丢失了。我现在有了它,所以5秒钟后会有超时,每次我运行它时都会发生。
class DGServer extends Thread
{
private DatagramSocket server;
public DGServer() throws IOException
{
server = new DatagramSocket();
}
public void run()
{
try
{
server.connect(App.Local, 4200);
System.out.println("Server starting...");
int i = 0;
while (server.isConnected() && (i < 256))
{
byte[] buffer = new byte[1];
buffer[0] = (byte) ++i;
DatagramPacket packet = new DatagramPacket(buffer, buffer.length, App.Local, 4200);
System.out.println("Sedning " + i + " to client...");
server.send(packet);
Thread.sleep(500);
}
}
catch (Exception e)
{
e.printStackTrace();
}
System.out.println("Server Finished!");
if (! server.isClosed()) …Run Code Online (Sandbox Code Playgroud) 对于一个非常简单的分类问题,我有一个目标向量[0,0,0,... 0]和一个预测向量[0,0.1,0.2,.... 1]会使交叉熵损失更好地收敛/更快还是MSE损失?当我绘制它们时,在我看来,MSE损失具有较低的误差范围.那为什么会这样?

machine-learning loss mean-square-error logistic-regression cross-entropy
我的问题是,当我通过LOCAL LAN网络传输连续的数据流时,有时随机字节会在此过程中丢失.
现在,代码被设置为在LAN上传输大约1027个字节左右~40次,有时(非常罕见)一个或多个字节丢失.
令我感到困惑的是,实际字节不会"丢失",无论原始数据如何,它都只是设置为0.(我顺便使用TCP)
这是发送代码:
public void Send(byte[] data)
{
if (!server)
{
if (CheckConnection(serv))
{
serv.Send(BitConverter.GetBytes(data.Length));
serv.Receive(new byte[1]);
serv.Send(data);
serv.Receive(new byte[1]);
}
}
}
Run Code Online (Sandbox Code Playgroud)
和接收代码:
public byte[] Receive()
{
if (!server)
{
if (CheckConnection(serv))
{
byte[] TMP = new byte[4];
serv.Receive(TMP);
TMP = new byte[BitConverter.ToInt32(TMP, 0)];
serv.Send(new byte[1]);
serv.Receive(TMP);
serv.Send(new byte[1]);
return TMP;
}
else return null;
}
else return null;
}
Run Code Online (Sandbox Code Playgroud)
发送和接收空字节只是为了使系统保持同步排序.我个人认为问题出在系统的接收方.虽然没能证明那架喷气机.
我知道 mse 将以相同的方式对待实际 - 预测和预测 - 实际。我想编写一个自定义损失函数,使得预测 > 实际的惩罚大于实际 > 预测 假设我将因预测 > 实际而受到 2 倍的惩罚。我将如何实现这样的功能
import numpy as np
from keras.models import Model
from keras.layers import Input
import keras.backend as K
from keras.engine.topology import Layer
from keras.layers.core import Dense
from keras import objectives
def create_model():
# define the size
input_size = 6
hidden_size = 15;
# definte the model
model = Sequential()
model.add(Dense(input_size, input_dim=input_size, kernel_initializer='normal', activation='relu'))
model.add(Dense(hidden_size, kernel_initializer='normal', activation='relu'))
model.add(Dense(1, kernel_initializer='normal'))
# mse is used as loss for the …Run Code Online (Sandbox Code Playgroud)