小编ThR*_*R37的帖子

获取泛型类的泛型参数的类型名称

在使用泛型时我在java中遇到一个小问题.我有一节课A:

public class A<T>
Run Code Online (Sandbox Code Playgroud)

在一个方法中A,我需要获取类型名称T.有没有办法找到s使用的字符串T

(如果我创建A<String> temp = new A<String>();,我希望能够获得java.lang.String一点 - 我必须使用通用性,因为我的一个方法必须返回一个List<T>).

这似乎很容易,但我不知道该怎么做.

java generics

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

结构有2个单元格vs std :: pair?

可能重复:
使用带有两个字段和一对的结构有什么区别?

亲爱的大家,

关于对和结构,我有一个小问题.使用std :: pair而不是带有两个单元格的结构有什么好处吗?我已经使用了一段时间,但主要的问题是可读性:如果你想表示例如一个双重(int"标签",双"值")你可以使用a:

typedef std::pair<int,double> myElem;
Run Code Online (Sandbox Code Playgroud)

或者a

typedef struct {
    int label;
    double value;
} myElem;
Run Code Online (Sandbox Code Playgroud)

如果你的语句具有"语义"意义,那么代码就会变得更具可读性(你将永远知道x.label是什么.这与x.first不同).

但是,我猜使用pair有一个优势.它更高效还是其他什么?

c++ struct std-pair

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

PyDev错误导入

我正在使用PyDev/Eclipse进行几次修改,并且我得到了与导入相同的错误:PyDev用红色强调下载并说出来Unresolved import xxx ; Found at yyy.当我点击yyyeclispe查找并打开模块的实现时.(PyDev告诉我,它找不到模块xxx,并且在同一条消息中它可以找到它!)

该模块xxx处于日食的PYTHONPATH中.当我"探索"项目的解释器时,我可以毫无问题地找到它.当我尝试执行(从eclipse),我没有得到任何错误,它工作正常.

有时,错误消息将保留几天并将消失.有时,它不会.我试图刷新项目,但它没有对此产生影响.有时,它在项目上运行良好,我可以使用自动完成,但它不能在另一个项目中工作(同一个解释器)......

我只是无法理解发生了什么?

到目前为止,我已经忽略了这些错误,因为一切都是完全有效的,但有时候,当你工作时有红色标记"错误"有点令人不安.

你有没有办法在PyDev中避免这些错误?这是"正常"吗?有没有办法迫使PyDev"刷新"?

谢谢.

参考文献:

  • python 2.4.4(从源代码构建)
  • PyDev v 1.6.0 2010071813

python eclipse pydev

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

Libtool认为"图书馆被移动"但事实并非如此

我目前正在从源代码重新编译gtk +和依赖项(我没有其他选择).

我的所有自定义软件包都安装在一个特定的自定义点(让我们称之为/packages)(它看起来很奇怪,但这一次,我别无选择).

当我尝试重新编译pango时,它需要freetype.Freetype的已安装/packages/freetype/2.1.10/amd64-linux (LIB,包括......在此目录)和不同的配置路径设置(LD_LIBRARY_PATH,LIBRARY_PATH,CPLUS_INCLUDE_PATH,INCLUDE_PATH,PKG_CONFIG_PATH).pango配置运行良好.它找到freetype并生成Makefile.当我尝试制作时,我收到以下错误:

libtool: link: warning: library `/packages/freetype/2.1.10/amd64-linux//lib/libfreetype.la' was moved.
grep: /usr/local/lib/libfreetype.la: No such file or directory
Run Code Online (Sandbox Code Playgroud)

libtool我的lib有问题(但libfreetype.la存在于目录中,/packages/freetype/2.1.10/amd64-linux//lib/并且没有访问问题).所以libtool试图在"经典地方"中/usr/...找到它并且找不到它.

一开始,我认为libtool与两个斜杠混淆(可能是由于在编译freetype期间--prefix标志中的错误)所以我确实重新编译了没有拼写错误的freetype但它没有改变任何东西.

有人有意帮助我吗?我以前从未在我的个人项目中使用过libtool所以我不知道是否有办法解决这种奇怪的行为...(这可能无关紧要,但libtool是版本1.5.22)

提前致谢.

gtk x86-64 pango freetype libtool

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

Python Numpy:np.int32比np.float64"慢"

我想了解python的一个奇怪的行为.让我们考虑一个M有形状的矩阵6000 x 2000.该矩阵用有符号整数填充.我想计算np.transpose(M)*M.两种选择:

  • 当我"自然地"(即没有指定任何打字)时,numpy选择类型np.int32,操作大约需要150s.
  • 当我强制使用类型np.float64(使用dtype=...)时,相同的操作大约需要2秒.

我们如何解释这种行为?我天真地认为int乘法比浮点乘法便宜.

非常感谢你的帮助.

python floating-point numpy int32

10
推荐指数
2
解决办法
3241
查看次数

使mingw出问题

make和mingw有一个小问题.我通常使用Linux,我并不熟悉windows的做法.

C:\MingGW\bin在我的路径中(我可以通过Windows命令行直接启动g ++或sh)但是当我尝试输入时make我有以下错误:

make: g++: command not found
Run Code Online (Sandbox Code Playgroud)

我不知道这make是使用(没有makeC:\MinGw\bin),我不知道是哪的Windows中的等价物.我忘记了必不可少的一步吗?

谢谢你的帮助.

windows mingw makefile path

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

在Eclipse中自定义Java编辑器

我想知道是否有一种简单的方法可以在Eclipse中为某些自定义项目扩展Java编辑器的功能.

示例:当我在eclipse中写道时:

@Deprecated
public void foo();
Run Code Online (Sandbox Code Playgroud)

foo将自动划掉,因此很容易被注意到.在某些项目中,我想对自定义注释(如@Untested或@Verified)执行相同操作以获得更好的开发环境(但当然,有很多这样的示例(特殊类颜色等等).

我想创建一个简单的eclipse包来扩展这种规则,但我无法为此找到足够的扩展点.我是否必须从头开始创建新的文本编辑器?

感谢您的帮助或评论,

java eclipse editor

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

如何在dockerized Apache Zeppelin后面公开Spark Driver?

我目前正在使用Apache Zeppelin + Spark 2.x内部的普通发行版构建自定义docker容器.

我的Spark作业将在远程集群中运行,我将yarn-client用作主人.

当我运行笔记本并尝试打印时sc.version,程序卡住了.如果我转到远程资源管理器,已经创建并接受了一个应用程序,但在日志中我可以阅读:

INFO yarn.ApplicationMaster: Waiting for Spark driver to be reachable

我对情况的理解是集群无法与容器中的驱动程序通信,但我不知道如何解决这个问题.

我目前正在使用以下配置:

  • spark.driver.port设置为PORT1和选项-p PORT1:PORT1传递给容器
  • spark.driver.host设置为172.17.0.2(容器的IP)
  • SPARK_LOCAL_IP设置为172.17.0.2(容器的IP)
  • spark.ui.port设置为PORT2和选项-p PORT2:PORT2传递给容器

我觉得我应该将SPARK_LOCAL_IP更改为主机ip,但如果我这样做,SparkUI无法启动,阻止该过程前一步.

提前感谢任何想法/建议!

docker apache-spark apache-zeppelin

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

Python API C++:Type对象的"静态变量"

我有一个关于静态变量和TypeObjects的小问题.我使用API​​ C来包装一个c ++对象(我们称之为Acpp),它有一个名为x的静态变量.让我们调用我的TypeObject A_Object:

typedef struct {
  PyObject_HEAD
  Acpp* a;
} A_Object;
Run Code Online (Sandbox Code Playgroud)

TypeObject作为"A"附加到我的python模块"myMod".我已经定义了getter和setter(tp_getset),以便我可以从python访问和修改Acpp的静态变量:

>>> import myMod
>>> myA1 = myMod.A(some args...)
>>> myA1.x = 34 # using the setter to set the static variable of Acpp
>>> myA2 = myMod.A(some other args...)
>>> print myA2.x
34
>>> # Ok it works !
Run Code Online (Sandbox Code Playgroud)

这个解决方案有效,但并不是真的"干净".我想通过使用TypeObject而不是实例来访问python中的静态变量:

>>> import myMod
>>> myMod.A.x = 34 # what I wish...
Run Code Online (Sandbox Code Playgroud)

有人有想法帮助我吗?

提前致谢.

c++ python api static wrapper

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

Tensorflow 2 + Keras 的知识蒸馏损失

我正在尝试实现一个非常简单的 keras 模型,该模型使用来自另一个模型的知识蒸馏 [1]。粗略地说,我需要更换原来的损失L(y_true, y_pred)L(y_true, y_pred)+L(y_teacher_pred, y_pred)哪里y_teacher_pred是另一个模型的预测。

我试过做

def create_student_model_with_distillation(teacher_model):

  inp = tf.keras.layers.Input(shape=(21,))

  model = tf.keras.models.Sequential()
  model.add(inp)

  model.add(...) 
  model.add(tf.keras.layers.Dense(units=1))

  teacher_pred = teacher_model(inp)

  def my_loss(y_true,y_pred):
      loss = tf.keras.losses.mean_squared_error(y_true, y_pred)
      loss += tf.keras.losses.mean_squared_error(teacher_pred, y_pred)
      return loss

  model.compile(loss=my_loss, optimizer='adam')

  return model
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试调用fit我的模型时,我得到了

TypeError: An op outside of the function building code is being passed
a "Graph" tensor. It is possible to have Graph tensors
leak out of the function building context by including a
tf.init_scope …
Run Code Online (Sandbox Code Playgroud)

python deep-learning tf.keras tensorflow2.0

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

在动态库中包含静态库

我有以下问题:

  • 几个目标文件a1.o,a2.o,a3.o,...
  • 存档libxxxx.a.存档libxxxx.a只包含目标文件:b1.o,b2.o等...

我想从所有目标文件创建一个共享库(.so).

问题:如果我使用:

g++ -shared libxxxx.a a1.o a2.o ... -o libnew.so
Run Code Online (Sandbox Code Playgroud)

g ++确实理解我想要链接静态库libxxxx.a并且不包括存档的所有符号.

一个简单的解决方法是首先使用ar -x然后创建lib 来扩展存档,但它并不是真正的"优雅".

必须有一个简单的命令强制g ++将整个存档包含在.so中,但我找不到它.

谢谢你的帮助.

g++ object shared-libraries archive

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

从 Mac Os X 全局路径中删除已安装的 Python 3.5

我最近在 Mac Os X (El Capitan) 上安装了“官方”Python 3.5。在此安装过程中,Python 将全局路径更改为包含/Library/Frameworks/Python.framework/Versions/3.5/bin(这可以使用例如 看到/usr/libexec/path_helper)。

但是,我无法理解这个“集合”是在哪里完成的(在 中/etc/paths既没有也没有/etc/paths.d)。我想从全局路径中删除此条目(不删除安装本身,因为它总是有用的)。

python macos osx-elcapitan

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

如何外包捆绑包的配置?

我正在开发一个由几个捆绑包组成的OSGi程序,我有时在我的本地Windows开发计算机上运行,​​有时在经典的Linux上运行.目前,几个专用于资源连接的捆绑包有自己的配置文件(属性文件),其中包含一些信息,例如访问某些重要文件的路径(存在于两个环境中).

但是,由于两个执行环境中的路径不同,我必须在编译之前手动更改配置,具体取决于我将运行程序的环境.

bundle有没有办法引用外部配置文件?一个解决方案可能是为我只生成一次的每个环境创建一个片段,但是我将无法轻松更改配置文件,因为它将位于片段的jar中.

是否有一些我应该知道的"最佳实践"来解决我的"简单"问题?

java configuration osgi

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