我正在使用OkHttp通过Android上的套接字发送和接收消息.
创建套接字连接 -
SocketListener listener = new SocketListener();
mOkHttpClient = new OkHttpClient.Builder()
.readTimeout(0, TimeUnit.MILLISECONDS)
.build();
Request request = new Request.Builder()
.url(socketURL)
.build();
mOkHttpClient.newWebSocket(request, listener);
Run Code Online (Sandbox Code Playgroud)
这是用于侦听所有Web套接字事件的SocketListener类 -
public final class SocketListener extends WebSocketListener {
@Override
public void onOpen(WebSocket webSocket, Response response) {
// doing something
isSocketConnected = true;
}
@Override
public void onMessage(WebSocket webSocket, String text) {
// doing something
}
@Override
public void onMessage(WebSocket webSocket, ByteString bytes) {
}
@Override
public void onClosing(WebSocket webSocket, int code, String reason) {
// …Run Code Online (Sandbox Code Playgroud) 我已经看到很多教程这样做,我自己也一直坚持这个标准做法。
当谈到训练数据的批量大小时,我们以几何级数分配任何值,从 2 开始,如 2,4,8,16,32,64。
即使在选择隐藏层中的神经元数量时,我们也以相同的方式分配。其中任何一个 - 2,4,8,16,32,64,128,256,512,...
这背后的核心原因是什么?为什么神经网络在这样做时表现更好?
machine-learning neural-network deep-learning keras tensorflow
我知道 LSTM 单元内部有许多 ANN。
但是在为同一问题定义隐藏层时,我看到有些人只使用 1 个 LSTM 单元,而其他人则使用 2、3 个 LSTM 单元,如下所示 -
model = Sequential()
model.add(LSTM(256, input_shape=(n_prev, 1), return_sequences=True))
model.add(Dropout(0.3))
model.add(LSTM(128, input_shape=(n_prev, 1), return_sequences=True))
model.add(Dropout(0.3))
model.add(LSTM(64, input_shape=(n_prev, 1), return_sequences=False))
model.add(Dropout(0.3))
model.add(Dense(1))
model.add(Activation('linear'))
Run Code Online (Sandbox Code Playgroud)