我的文凭课程有一个很大的问题,如果你们能帮助我,我会很高兴的!我制作了一个Maven多模块项目并拥有3个"核心项目"
NaviClean:(父母)NaviCleanDomain:包含域模型用我所有的实体和接口MeinRemoteDienst是由需要NaviCleanServer
和NaviCleanCleint对HessianprotocolNaviCleanClient:包含GUI和Hessian连接
NaviCleanServerNaviCleanServer:这里是我的仓库,我到数据库连接和接口的实现einRemoteDienst
NaviCleanServer和NaviCleanClient具有NaviCleanDomain在Maven作为依赖.现在每次我尝试在Tomcat上启动服务器时都会出现以下错误:
ERROR: org.springframework.web.context.ContextLoader - Context initialization failed
org.springframework.beans.factory.BeanCreationException:
Error creating bean with name 'transaktionsRepository':
Injection of persistence dependencies failed;
nested exception is org.springframework.beans.factory.CannotLoadBeanClassException:
Error loading class [at.naviclean.service.impl.MeinRemoteDienstImpl] for bean with name 'meinRemoteDienstImpl' defined in file [C:\Users\Fredy\Documents\workspace-sts-3.1.0.RELEASE\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\NaviCleanServer\WEB-INF\classes\at\naviclean\service\impl\MeinRemoteDienstImpl.class]:
problem with class file or dependent class;
nested exception is java.lang.NoClassDefFoundError: at/naviclean/service/MeinRemoteDienst
at org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor.postProcessPropertyValues(PersistenceAnnotationBeanPostProcessor.java:342)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1106)
……………….
Run Code Online (Sandbox Code Playgroud)
模型库:
package at.naviclean.domain; …Run Code Online (Sandbox Code Playgroud) 我知道有很多关于 pytorch 中“计算 Hessian 矩阵”的内容,但据我所知,我还没有发现任何对我有用的内容。因此,为了尽可能精确,我想要的 Hessian 矩阵是损失相对于网络参数的梯度的雅可比矩阵。也称为参数的二阶导数矩阵。
我发现一些代码可以以直观的方式工作,尽管速度不应该很快。显然,它只是计算参数与参数之间的损失梯度的梯度,并且一次只计算一个(梯度的)元素。我认为逻辑绝对是正确的,但我收到了一个错误,与requires_grad. 我是 pytorch 初学者,所以也许这是一件简单的事情,但错误似乎是说它不能接受变量的梯度env_grads,这是之前 grad 函数调用的输出。
任何对此的帮助将不胜感激。这是错误消息后面的代码。我还打印出了该env_grads[0]变量,因此我们可以看到它实际上是一个张量,这是上一次调用的正确输出grad。
env_loss = loss_fn(env_outputs, env_targets)
total_loss += env_loss
env_grads = torch.autograd.grad(env_loss, params,retain_graph=True)
print(env_grads[0])
hess_params = torch.zeros_like(env_grads[0])
for i in range(env_grads[0].size(0)):
for j in range(env_grads[0].size(1)):
hess_params[i, j] = torch.autograd.grad(env_grads[0][i][j], params, retain_graph=True)[0][i, j] # <--- error here
print(hess_params)
Run Code Online (Sandbox Code Playgroud)
输出:
tensor([[-6.4064e-03, -3.1738e-03, 1.7128e-02, 8.0391e-03],
[ 7.1698e-03, -2.4640e-03, -2.2769e-03, -1.0687e-03],
[-3.0390e-04, -2.4273e-03, -4.0799e-02, -1.9149e-02],
...,
[ 1.1258e-02, -2.5911e-05, -9.8133e-02, -4.6059e-02],
[ 8.1502e-04, -2.5814e-03, …Run Code Online (Sandbox Code Playgroud) 我有一个需要良好二进制协议的新项目.
我在考虑使用Hessian,除非有人有更好的想法.
我正在阅读他们的一些文档,并不像我想的那么简单,所以我有几个简单的问题.
主页有一个标题为"文档"的部分,其中包含以下文档:
* Hessian Documentation
* Hessian 1.0.1 spec
* Hessian 2.0 Serialization Draft
* Hessian 2.0 Web Service Draft
* Taxonomy explaining Hessians relationship to CORBA, SOAP, RMI
Run Code Online (Sandbox Code Playgroud)
1)这些有什么区别?我假设1.0.1后来变为2.0,今天使用2.0是正确的,但我不确定.
2)您是否希望有人使用2.0序列化或2.0 Web服务?看起来Web服务应该是创建新实现的参考,但同样对我来说并不完全清楚.
3)如何使用PHP实现支持Hessian的服务器.您是否需要使用Caucho服务器,或者您是否可以在Fedora Core上使用PHP实现服务器并使用Java客户端进行连接?
你会推荐使用Google Protocol Buffers或Caucho Hessian作为跨语言的线上二进制格式吗?或者其他任何事情,例如Facebook Thrift?
问题:
我们目前将 Caucho Hessian 3.2.0 与 Java 8 和 Java 11 应用程序结合使用。这工作正常,但我们想迁移到 Java 17,我们收到以下 systen.out 消息:
java.lang.reflect.InaccessibleObjectException: Unable to make field private java.lang.String java.lang.StackTraceElement.classLoaderName accessible: module java.base does not "opens java.lang" to unnamed module @78e03bb5
at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:354)
at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:297)
at java.base/java.lang.reflect.Field.checkCanSetAccessible(Field.java:178)
at java.base/java.lang.reflect.Field.setAccessible(Field.java:172)
at com.caucho.hessian.io.JavaDeserializer.getFieldMap(JavaDeserializer.java:299)
at com.caucho.hessian.io.JavaDeserializer.<init>(JavaDeserializer.java:77)
at com.caucho.hessian.io.StackTraceElementDeserializer.<init>(StackTraceElementDeserializer.java:60)
at com.caucho.hessian.io.SerializerFactory.<clinit>(SerializerFactory.java:627)
at com.caucho.hessian.io.AbstractHessianOutput.findSerializerFactory(AbstractHessianOutput.java:95)
at com.caucho.hessian.io.Hessian2Output.writeObject(Hessian2Output.java:486)
at Main.serializeWithHessian(Main.java:23)
at Main.main(Main.java:13)
Run Code Online (Sandbox Code Playgroud)
有一个解决方法是添加以下 JVM 参数:
--add-opens java.base/java.lang=ALL-UNNAMED
Run Code Online (Sandbox Code Playgroud)
我们不想在所有生产应用程序中使用此标志,因此我们尝试将 Hessian 升级到最新版本 4.0.66。基本上,这适用于最常见的用例,但当我们多次序列化具有相同对象实例的数据时,这不起作用。
我创建了一个小示例应用程序: https: //github.com/MatWein/hessian-test
该应用程序从其类路径中读取一些 java 序列化测试数据,并尝试使用 Hessian 对其进行序列化和反序列化。如果您使用 Hessian 3.2.0 运行此应用程序,它适用于运行和调试模式下的所有 Java …
目前我正在开展人脸识别项目,我正在使用Fisherfaces/LDA在更广泛的层面上过滤掉图像,然后使用SURF来验证LDA的输出.应该传递给Hessian门槛的是CvSURFParam()什么?OpenCV提供的示例代码有500个.它是最佳的吗?
此外,应该匹配的最小描述符数是多少,以便我的代码可以确认身份?50%会满足吗?
我在Windows上使用OpenCV 2.4和C++.
当我通过Spring的Hessian函数调用返回BigDecimal值的远程方法时,它总是返回零.直接调用方法或使用普通的Hessian servlet(非Spring)正常工作.
可以做些什么来解决这个问题?
web.xml中:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
id="WebApp_ID" version="3.0">
<servlet>
<servlet-name>remoting</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>remoting</servlet-name>
<url-pattern>/remoting/*</url-pattern>
</servlet-mapping>
</web-app>
Run Code Online (Sandbox Code Playgroud)
远程-servlet.xml中:
<beans>
<context:annotation-config />
<context:component-scan base-package="hr.spi.logic.lcspi" />
<tx:annotation-driven proxy-target-class="true" />
<bean name="/lcspi/lc302/poslovi" class="org.springframework.remoting.caucho.HessianServiceExporter">
<property name="service" ref="posloviLogic" />
<property name="serviceInterface" value="hr.spi.logic.lcspi.lc302.PosloviLogicInterface" />
</bean>
</beans>
Run Code Online (Sandbox Code Playgroud)
我调用的方法的服务类:
package hr.spi.logic.lcspi.lc302;
@Transactional
@Repository
public class PosloviLogic implements PosloviLogicInterface {
@Override
public BigDecimal test()
{
BigDecimal bd = new BigDecimal("2.2");
return bd;
}
}
Run Code Online (Sandbox Code Playgroud)
Spring配置 - applicationContextHessian.xml:
<beans> …Run Code Online (Sandbox Code Playgroud) 假设向量\theta是神经网络中的所有参数,我想知道如何\theta在 pytorch 中计算Hessian矩阵。
假设网络如下:
class Net(Module):
def __init__(self, h, w):
super(Net, self).__init__()
self.c1 = torch.nn.Conv2d(1, 32, 3, 1, 1)
self.f2 = torch.nn.Linear(32 * h * w, 5)
def forward(self, x):
x = self.c1(x)
x = x.view(x.size(0), -1)
x = self.f2(x)
return x
Run Code Online (Sandbox Code Playgroud)
我知道可以通过调用torch.autograd.grad()两次来计算二阶导数,但是pytorch中的参数是由 组织的net.parameters(),我不知道如何计算所有参数的hessian。
我尝试torch.autograd.functional.hessian()在 pytorch 1.5 中使用如下:
import torch
import numpy as np
from torch.nn import Module
import torch.nn.functional as F
class Net(Module):
def __init__(self, h, w):
super(Net, self).__init__() …Run Code Online (Sandbox Code Playgroud) 我已经开始使用Maven开发一个新项目了,我无法在eclipse上正常工作.我有这个错误的倍数:
ArtifactTransferException: Failure to transfer com.caucho:hessian:jar:3.1.5 from <repository> was cached in the local repository, resolution will not be reattempted until the update interval of Archiva SIVPN Internal has elapsed or updates are forced. Original error: Could not transfer artifact com.caucho:hessian:jar:3.1.5 from/to Archiva SIVPN Internal (<repository>): No response received after 60000 pom.xml /<file> line 2 Maven Dependency Problem
Description Resource Path Location Type
Run Code Online (Sandbox Code Playgroud)
缺少工件com.caucho:hessian:jar:3.1.5 pom.xml/line 2 Maven依赖问题
在做了一些研究之后,我发现它可能是pom.xml错了,或者我有代理问题.
我检查了资源在我们的存储库中是否可用,并且pom片段与我的代码中声明的相同:
<dependency>
<groupId>com.caucho</groupId>
<artifactId>hessian</artifactId>
<version>3.1.5</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
我的代理适用于项目的主干,并且没有其他代理我知道.
我认为这可能是一次性连接问题,但是使用新的maven构建-U并没有解决问题.
我还找到了/sf/ask/427798591/, 其中有几个我不知道要做什么的其他解决方案,但是它对我不起作用...... …
我是Spring和Hessian的新手,从未使用过它们.
我想写一个小的Hello World程序,它清楚地显示了这项服务的工作原理.
我正在使用Maven列出项目详细信息和依赖项.
在线提供的粗麻布资源并非完整的分步指南.
如果我得到了一位编写过粗麻布服务的人的帮助,我将不胜感激
我正在尝试使用java me sdk 3.0 来使用hessian j2me实现@ http://hessian.caucho.com/.
http://hessian.caucho.com/doc/hessian-overview.xtp#Hessian%20Client%20for%20a%20cell-phone提到了j2me的用法.
应用程序构建时没有任何错误/警告.但是,在MicroHessianOutput实例化实例化的行的那一刻,java.lang.Error: ClassFormatError: 56
抛出了ClassFormatError().
继承人追踪:
TRACE: <at java.lang.Error: ClassFormatError: 56>, startApp threw an Exception
java.lang.Error: ClassFormatError: 56
- alert.AlertDemo.showOption(), bci=26
- alert.AlertDemo.startApp(), bci=9
- javax.microedition.midlet.MIDletTunnelImpl.callStartApp(), bci=1
- com.sun.midp.midlet.MIDletPeer.startApp(), bci=7
- com.sun.midp.midlet.MIDletStateHandler.startSuite(), bci=269
- com.sun.midp.main.AbstractMIDletSuiteLoader.startSuite(), bci=52
- com.sun.midp.main.CldcMIDletSuiteLoader.startSuite(), bci=8
- com.sun.midp.main.AbstractMIDletSuiteLoader.runMIDletSuite(), bci=161
- com.sun.midp.main.AppIsolateMIDletSuiteLoader.main(), bci=26
Run Code Online (Sandbox Code Playgroud)
和继承人showOption():
private void showOption () throws Exception{
String url = "http://localhost/hello";
HttpConnection c = (HttpConnection) Connector.open(url);
c.setRequestMethod(HttpConnection.POST);
OutputStream os = c.openOutputStream();
MicroHessianOutput out …Run Code Online (Sandbox Code Playgroud)