小编kon*_*tin的帖子

Netty Nio中承诺的异步更新

我有一个交换信息的服务器和客户端架构.我想从服务器返回连接通道的数量.我想使用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 sockets nio netty web

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

Netty NIO:读取收到的消息

我正在使用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因此,我要执行的两个部件之间的通信接收消息.如何从服务器发送到特定客户端?我不知道如何将消息发送回客户端.

java sockets netty web

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

随机拆分一个numpy数组

我有一个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,).在那种情况下,我做错了什么?

python numpy

7
推荐指数
4
解决办法
3510
查看次数

Keras您正在尝试将包含2层的权重文件加载到具有1层的模型中

我已经使用Keras训练了CNN模型并存储了权重。当我尝试将它们加载回相同的模型时,出现以下错误:

ValueError:您正在尝试将包含2层的权重文件加载到具有1层的模型中。

我发现这是一个常见错误。但是,建议的补救措施似乎对我没有用。我试图将当前的Keras版本降级2.2.42.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)

python keras

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

将numpy数组转换为pandas数据帧

我有一个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)

如何解决问题并正确转换?

python numpy pandas

5
推荐指数
2
解决办法
2万
查看次数

模块对象没有属性leaky_relu

我试图从这里运行代码,这是使用 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 keras

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

拆分2D numpy数组,可以进行不均匀的分割

我在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 arrays numpy

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

在两个 python 列表中查找常见项的索引

我在 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 项。但是,我还想返回最初两个列表中这些元素的索引。我怎么能这样做?

python list

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

从Python中读取文本行作为列表

我从文本文件中读取数据.我的数据的每一行都有以下结构

(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)

python

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

在元组列表中查找索引

我有一个元组列表seg = [(874, 893), (964, 985), (1012, 1031)]和一个索引.我想检查索引是否在这些元组的范围内,例如,876while 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返回1index = 1015返回3.

我怎么能这样做?

python indexing tuples

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

标签 统计

python ×8

numpy ×3

java ×2

keras ×2

netty ×2

sockets ×2

web ×2

arrays ×1

indexing ×1

list ×1

nio ×1

pandas ×1

tuples ×1