小编Nam*_*man的帖子

杰克逊为什么还要将瞬态成员序列化?

我使用Jackson 2.1.4将POJO序列化为JSON,但我想忽略序列化的特定字段.我使用了瞬态,但它仍在序列化该元素.

public class TestElement {

    int x;

    private transient String y;

    public int getX() {
        return x;
    }

    public void setX(int x) {
        this.x = x;
    }

    public String getY() {
        return y;
    }

    public void setY(String y) {
        this.y = y;
    }
}
Run Code Online (Sandbox Code Playgroud)

我正在序列化如下:

public static void main(String[] args) throws JsonProcessingException {
    TestElement testElement = new TestElement();
    testElement.setX(10);
    testElement.setY("adasd");
    ObjectMapper om = new ObjectMapper();
    String serialized = om.writeValueAsString(testElement);
    System.err.println(serialized);
}
Run Code Online (Sandbox Code Playgroud)

请不要建议,@JsonIgnore因为我不想将我的模型与杰克逊特定注释联系起来.可以仅使用瞬态完成吗?objectmapper上是否有用于可见性设置的API?

json transient jackson

30
推荐指数
3
解决办法
3万
查看次数

如何使用Jackson的objectMapper反序列化接口字段?

ObjectMapperreadValue(InputStream in, Class<T> valueType)功能需要班级.但是如果我在内部传递的类有一些接口作为数据成员,我该如何使用它.

虽然我可以理解这个例外背后的原因,因为杰克逊没有得到传递类的内部接口的具体类,但我的问题是如何解决它?我该如何反序列化呢?我试图反序列化的类是:

class BaseMetricImpl<N> implements Metric<N> {
    protected MetricValueDescriptor descriptor;
}
Run Code Online (Sandbox Code Playgroud)

MetricValueDescriptor是一个界面,所以这给了我以下错误: -

com.fasterxml.jackson.databind.JsonMappingException: Can not construct instance of MetricValueDescriptor, problem: abstract types either need to be mapped to concrete types, have custom deserializer, or be instantiated with additional type information
 at [Source: java.io.ByteArrayInputStream@2ede2c9f; line: 1, column: 2] (through reference chain: SingleValueMetricImpl["descriptor"])
    at com.fasterxml.jackson.databind.JsonMappingException.from(JsonMappingException.java:164)
    at com.fasterxml.jackson.databind.DeserializationContext.instantiationException(DeserializationContext.java:624)
    at com.fasterxml.jackson.databind.deser.AbstractDeserializer.deserialize(AbstractDeserializer.java:115)
    at com.fasterxml.jackson.databind.deser.SettableBeanProperty.deserialize(SettableBeanProperty.java:375)
    at com.fasterxml.jackson.databind.deser.impl.MethodProperty.deserializeAndSet(MethodProperty.java:98)
    at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserializeFromObject(BeanDeserializer.java:308)
    at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:121)
    at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:2793)
    at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:1989)
Run Code Online (Sandbox Code Playgroud)

java json jackson

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

优化键列表的字典成员资格的性能

我正在尝试编写一个代码,如果列表中存在任何列表元素,则该代码应返回true.这件作品的表现非常重要.我知道如果我找到第一个搜索命中,我可以循环遍历列表并中断.有没有更快或更多的Pythonic方式比下面给出的?

for x in someList:
     if x in someDict:
           return True
return False
Run Code Online (Sandbox Code Playgroud)

编辑:我正在使用Python 2.7.我的第一个偏好是更快的方法.

python performance dictionary list python-2.7

19
推荐指数
2
解决办法
1544
查看次数

Python多维稀疏数组

我正在开发一个需要处理三维大阵列的项目.我使用的是numpy 3d数组,但我的大多数条目都是零,所以这是很多内存的浪费.Scipy稀疏似乎只允许2D矩阵.有没有其他方法可以存储3D稀疏数组?

python scipy

11
推荐指数
2
解决办法
5617
查看次数

什么是有效的算法来逐位找到一个非常大的整数平方根?

我需要编写程序来查找长度为数千位的数字的整数平方根.我不能使用Newton Raphson,因为我没有数据类型来存储和划分这么大的数字.我在C中使用长数组来存储数字.是否有任何算法可以通过迭代数字找到平方根?

编辑:

我不能像GMP一样使用外部库.

c algorithm square-root integer-arithmetic

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

TensorFlow没有检测到GPU

我在ubuntu 16.04上安装了Cuda-8.0和Tensorflow GPU版本.它最初工作正常并使用GPU.但突然间它已停止使用GPU.我通过pip安装了tensorflow,并正确地安装了GPU版本,并且最初使用了GPU.

导入tensorflow时得到的消息是:

>>> import tensorflow as tf
I tensorflow/stream_executor/dso_loader.cc:135] successfully opened CUDA library libcublas.so.8.0 locally
I tensorflow/stream_executor/dso_loader.cc:126] Couldn't open CUDA library libcudnn.so.5. LD_LIBRARY_PATH: :/usr/local/cuda/lib64:/usr/local/cuda/extras/CUPTI/lib64:/usr/local/cuda/lib64:/usr/local/cuda/extras/CUPTI/lib64:/usr/local/cuda/lib64:/usr/local/cuda/extras/CUPTI/lib64:/usr/lib/x86_64-linux-gnu
I tensorflow/stream_executor/cuda/cuda_dnn.cc:3517] Unable to load cuDNN DSO
I tensorflow/stream_executor/dso_loader.cc:135] successfully opened CUDA library libcufft.so.8.0 locally
I tensorflow/stream_executor/dso_loader.cc:135] successfully opened CUDA library libcuda.so.1 locally
I tensorflow/stream_executor/dso_loader.cc:135] successfully opened CUDA library libcurand.so.8.0 locally
Run Code Online (Sandbox Code Playgroud)

很明显,它甚至可以从LD_LIBRARY_PATH找到cuda库.但是当我得到以下输出:

>>> sess = tf.Session(config=tf.ConfigProto(log_device_placement=True))
W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use SSE3 instructions, but these are available on your machine …
Run Code Online (Sandbox Code Playgroud)

gpu tensorflow cudnn

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

线性时间解决方案

在面试中我被问到这个问题.

你站在0,你必须到达一个位置X.你可以跳到D(1到D).如果X> D,很明显你在初始跳跃时无法到达位置X.

现在,每秒从1到N出现在随机位置的瓦片.这是作为零索引阵列A [k]给出的,其中A [k]表示出现在第k秒的瓦片的位置.你必须找出,在那时你可以到达(或越过)目的地X.

如果可能在初始时或在A [0]之后,则返回0,或返回最小秒.如果即使在所有瓷砖之后也不可能,则返回-1.

约束:1 <= N <= 100,000

1 <= D <= 100,000

1 <= X <= 100,000

1 <= A [i] <= X.

例如.

X = 7,D = 3

A = {1,3,1,4,2,5}

然后回答是3.因为在第3个第二个图块出现在位置4,所以可以达到X = 7.在此之前的任何一秒都不可能.

我知道这是一个措辞太多的问题,但如果我不能很好地沟通,我绝对可以清除任何事情.

问题是预期的时间复杂度为O(N),您可以使用额外的空间O(X).

我找到了一个O(n*log n*log n)的解决方案.这是二次搜索并获得第一个[1..mid]元素,按位置排序并验证解决方案.它似乎通过了测试用例,但它不是线性的.

我努力但却找不到任何O(N)解决方案.你能帮我么?

language-agnostic algorithm

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

使用现有层在Caffe中进行L2规范化

我正在尝试在Caffe中对图层执行L2规范化.这个想法是在对比度损失中使用这些L2规范化fc7特征,如http://www.cs.cornell.edu/~kb/publications/SIG15ProductNet.pdf.

我可以找到一些链接,其中人们发布了L2规范化层的代码.但是我想知道是否可以使用Caffe的Local Response Normalization层或者其他任何一个.

我有一个1x2048的最终fc向量(大小为1x1的2048个通道).有人可以指导我这件事吗?

normalization computer-vision deep-learning caffe

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

如何通过java代码连接JBoss 7.1.1 remoting -jmx?

我有一个JBoss 7.1.1服务器,我想为其编写jmx客户端.据我所知,jboss 7.1.1没有使用典型的基于rmi的jmx,他们在本机管理上提供了一层remoting-jmx.我使用以下代码:

JMXServiceURL address = new JMXServiceURL("service:jmx:remoting-jmx://localhost:9999");

Map env = JMXConnectorConfig.getEnvironment(paramtbl);

JMXConnector connector = JMXConnectorFactory.connect(address, env);
Run Code Online (Sandbox Code Playgroud)

但是它给出了以下例外:

java.net.MalformedURLException: Unsupported protocol: remoting-jmx
Run Code Online (Sandbox Code Playgroud)

我用谷歌搜索它,以下线程似乎相关:https://community.jboss.org/thread/204653?tstart = 0

它要求将jboss的库添加到我的类路径中.我也试过但仍然得到同样的例外.

jboss jmx

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

索引numpy数组列由另一个numpy数组

我试图在numpy中索引一个2d矩阵,这样我就可以获得所有行但只有另一个numpy数组给出的特定列.它是如下:

a = [0,1,1,2,0,2,1]

d = [[1,2,3],[1,2,3],[1,2,3],[1,2,3],[1,2,3],[1,2,3],[1,2,3]]
Run Code Online (Sandbox Code Playgroud)

我想从d获取所有行,使得列由a给出.所以对于我想要的上述例子,

t = [1,2,2,3,1,3,2]
Run Code Online (Sandbox Code Playgroud)

我尝试了numpy文档中给出的一些方法,但是我无法得到它.

我认为这在matlab中是可行的,没有任何迭代.我可以这样做是python没有循环的东西吗?

numpy python-2.7

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