我有一个交换信息的服务器和客户端架构.我想从服务器返回连接通道的数量.我想使用promise将服务器的消息返回给客户端.我的代码是:
public static void callBack () throws Exception{
String host = "localhost";
int port = 8080;
try {
Bootstrap b = new Bootstrap();
b.group(workerGroup);
b.channel(NioSocketChannel.class);
b.option(ChannelOption.SO_KEEPALIVE, true);
b.handler(new ChannelInitializer<SocketChannel>() {
@Override
public void initChannel(SocketChannel ch) throws Exception {
ch.pipeline().addLast(new RequestDataEncoder(), new ResponseDataDecoder(), new ClientHandler(promise));
}
});
ChannelFuture f = b.connect(host, port).sync();
//f.channel().closeFuture().sync();
}
finally {
//workerGroup.shutdownGracefully();
}
}
public static void main(String[] args) throws Exception {
callBack();
while (true) {
Object msg = promise.get();
System.out.println("The number if the connected clients …
Run Code Online (Sandbox Code Playgroud) 我正在使用Java中的Netty NIO开发客户端和服务器通信系统.我的代码可以在以下存储库中找到.目前我有一台服务器和两台客户端,我正在从服务器向客户端发送信息,反之亦然.
我试图弄清楚,当我接收消息形式的第一客户机到服务器,如何发送该消息到第二客户端(和从客户端2到客户机1相反).如何向特定客户发送消息?
我注意到我的问题出现了,因为我试图从服务器发送消息的方式.我在serverHandler中的代码如下:
for (Channel ch : channels1) {
responseData.setIntValue(channels1.size());
remoteAddr.add(ch.remoteAddress().toString());
future = ch.writeAndFlush(responseData);
//future.addListener(ChannelFutureListener.CLOSE);
System.out.println("the requested data from the clients are: "+requestData);
responseData1.setStringValue(requestData.toString());
future = ch.writeAndFlush(responseData1);
System.out.println(future);
}
Run Code Online (Sandbox Code Playgroud)
默认情况下正在发送一个有关的连接的数量的消息,而且当我从客户机1或2我要发送回2和1因此,我要执行的两个部件之间的通信接收消息.如何从服务器发送到特定客户端?我不知道如何将消息发送回客户端.
我有一个numpy数组的大小46928x28x28
,我想随机将该数组分成两个大小(41928x28x28)
和子矩阵(5000x28x28)
.因此,要从初始数组中随机选择行.到目前为止我尝试的代码(计算两个子数组的索引)如下:
ind = np.random.randint(input_matrix.shape[0], size=(5000,))
rest = np.array([i for i in range(0,input_matrix.shape[0]) if i not in ind])
rest = np.array(rest)
Run Code Online (Sandbox Code Playgroud)
然而,令人惊讶的是,ind (5000,)
的形状是其余的形状(42192,)
.在那种情况下,我做错了什么?
我已经使用Keras训练了CNN模型并存储了权重。当我尝试将它们加载回相同的模型时,出现以下错误:
ValueError:您正在尝试将包含2层的权重文件加载到具有1层的模型中。
我发现这是一个常见错误。但是,建议的补救措施似乎对我没有用。我试图将当前的Keras版本降级2.2.4
为2.1.6
。我的模型如下:
def build_model(self):
model = Sequential()
#pdb.set_trace()
model.add(Dense(128 * 7 * 7, activation="relu", input_shape=(None, self.latent_dim)))
model.add(Reshape((7, 7, 128)))
model.add(UpSampling2D())
model.add(Conv2D(128, kernel_size=4, padding="same"))
model.add(BatchNormalization(momentum=0.8))
model.add(Activation("relu"))
model.add(UpSampling2D())
model.add(Conv2D(64, kernel_size=4, padding="same"))
model.add(BatchNormalization(momentum=0.8))
model.add(Activation("relu"))
model.add(UpSampling2D(size=(1, 2)))
model.add(Conv2D(64, kernel_size=4, padding="same"))
model.add(BatchNormalization(momentum=0.8))
model.add(Activation("relu"))
model.add(UpSampling2D(size=(1, 2)))
model.add(Conv2D(64, kernel_size=4, padding="same"))
model.add(BatchNormalization(momentum=0.8))
model.add(Activation("relu"))
model.add(Conv2D(self.channels, kernel_size=4, padding="same"))
model.add(Activation("tanh"))
model.summary()
noise = Input(shape=(self.latent_dim,))
img = model(noise)
return Model(noise, img)
Run Code Online (Sandbox Code Playgroud)
然后,为了加载权重,我正在执行以下操作:
self.my_model = self.build_model()
input = Input(shape=(self.latent_dim,))
img = self.my_model(input)
output = self.my_critic(img)
self.the_model = Model(input, …
Run Code Online (Sandbox Code Playgroud) 我有一个numpy数组大小31x36
,我想转换成pandas数据帧,以便处理它.我试图使用以下代码转换它:
pd.DataFrame(data=matrix,
index=np.array(range(1, 31)),
columns=np.array(range(1, 36)))
Run Code Online (Sandbox Code Playgroud)
但是,我收到以下错误:
ValueError:传递值的形状是(36,31),索引暗示(35,30)
如何解决问题并正确转换?
我试图从这里运行代码,这是使用 keras python 的生成对抗网络的实现。我按照说明安装了所有要求。然后我尝试运行DCGAN的代码。但是,库的兼容性似乎存在一些问题。我在运行代码时收到以下消息:
AttributeError: 'module' 对象没有属性 'leaky_relu'
File "main.py", line 176, in <module>
dcgan = DCGAN()
File "main.py", line 25, in __init__
self.discriminator = self.build_discriminator()
File "main.py", line 84, in build_discriminator
model.add(LeakyReLU(alpha=0.2))
File "/opt/libraries/anaconda2/lib/python2.7/site-packages/keras/models.py", line 492, in add
output_tensor = layer(self.outputs[0])
File "/opt/libraries/anaconda2/lib/python2.7/site-packages/keras/engine/topology.py", line 617, in __call__
output = self.call(inputs, **kwargs)
File "/opt/libraries/anaconda2/lib/python2.7/site-packages/keras/layers/advanced_activations.py", line 46, in call
return K.relu(inputs, alpha=self.alpha)
File "/opt/libraries/anaconda2/lib/python2.7/site-packages/keras/backend/tensorflow_backend.py", line 2918, in relu
x = tf.nn.leaky_relu(x, alpha)
Run Code Online (Sandbox Code Playgroud)
我正在使用 kerasVersion: 2.1.3
而 …
我在python中有一个2D numpy数组,它对应于在for循环中计算的图像.阵列的大小是Nx40.我希望在循环的每个步骤中将初始数组拆分为大小为40x40(大约)的矩形数组.如果N不能除以40,那么最后一个图像应该包含剩余的除法.因此,例如87x40应为(40x40和47x40).到目前为止我做了什么:
div_num = spec.shape[0] / spec.shape[1]
remaining = spec.shape[0] % spec.shape[1]
lista = []
for i in range(1, div_num+1):
img = spec[((i-1)*40):(i*40)][0:40]
lista.append(img)
Run Code Online (Sandbox Code Playgroud)
如何在最后一张图片中添加剩余的行?
我在 python list_A 和 list_B 中有两个列表,我想找到它们共享的公共项目。我这样做的代码如下:
both = []
for i in list_A:
for j in list_B:
if i == j:
both.append(i)
Run Code Online (Sandbox Code Playgroud)
列表中的common 最终包含了common 项。但是,我还想返回最初两个列表中这些元素的索引。我怎么能这样做?
我从文本文件中读取数据.我的数据的每一行都有以下结构
(110, 'Math', 1, 5)
(110, 'Sports', 1, 5)
(110, 'Geography', 4, 10)
(112, 'History', 1, 9)
....
Run Code Online (Sandbox Code Playgroud)
当我从文件中读取数据时,它被解析为字符串.因此,对于所有行,我将数据解析为字符串列表.但是我想创建一个包含4个不同元素(整数和字符串)的列表.如何以元素方式读取文件而不将其解析为字符串?
我读取文件的代码如下:
data1 = [line.strip() for line in open("data.txt", 'r')]
Run Code Online (Sandbox Code Playgroud) 我有一个元组列表seg = [(874, 893), (964, 985), (1012, 1031)]
和一个索引.我想检查索引是否在这些元组的范围内,例如,876
while 870
不是.
我这样做的代码如下:
if [x for (x, y) in seg if x <= index <= y]:
print ("index inside the segment")
Run Code Online (Sandbox Code Playgroud)
但是,如果索引位于列表seg的第一个第二个段中,我也想返回.
例如,对于index = 876
返回1
和index = 1015
返回3
.
我怎么能这样做?