问题提示: 当尝试使用scipy.optimize.fmin_bfgs最小化(优化)函数时,该函数抛出一个
derphi0 = np.dot(gfk,pk)ValueError:矩阵未对齐
错误.根据我的错误检查,这发生在第一次迭代的最后通过fmin_bfgs - 就在返回任何值或任何调用回调之前.
配置: Windows Vista Python 3.2.2 SciPy 0.10 IDE =带有PyDev的Eclipse
详细说明: 我使用scipy.optimize.fmin_bfgs来最小化简单逻辑回归实现的成本(从Octave转换为Python/SciPy).基本上,成本函数名为cost_arr函数,梯度下降在gradient_descent_arr函数中.
我已手动测试并完全验证*cost_arr*和*gradient_descent_arr*正常工作并正确返回所有值.我还测试了验证正确的参数是否传递给*fmin_bfgs*函数.然而,运行时,我得到ValueError:矩阵没有对齐.根据来源评论,确切的错误发生在
def line_search_wolfe1函数在#Minpack的Wolfe行和scaplar搜索中由scipy包提供.
值得注意的是,如果我使用scipy.optimize.fmin,则fmin函数将运行完成.
确切错误:
文件"D:\ Users\Shannon\Programming\Eclipse\workspace\SBML\sbml\LogisticRegression.py",第395行,在fminunc_opt中
Run Code Online (Sandbox Code Playgroud)optcost = scipy.optimize.fmin_bfgs(self.cost_arr, initialtheta, fprime=self.gradient_descent_arr, args=myargs, maxiter=maxnumit, callback=self.callback_fmin_bfgs, retall=True)文件"C:\ Python32x32\lib\site-packages\scipy\optimize\optimize.py",第533行,在fmin_bfgs old_fval,old_old_fval)
文件"C:\ Python32x32\lib\site-packages\scipy\optimize\linesearch. py",第76行,in line_search_wolfe1 derphi0 = np.dot(gfk,pk)ValueError:矩阵未对齐
我用以下方法调用优化函数:optcost = scipy.optimize.fmin_bfgs(self.cost_arr,initialtheta,fprime = self.gradient_descent_arr,args = myargs,maxiter = maxnumit,callback = self.callback_fmin_bfgs,retall = True)
我花了几天时间试图解决这个问题,似乎无法确定是什么导致 矩阵没有对齐错误.
附录:2012-01-08我更多地使用了这个并且似乎已经缩小了问题(但是对于如何修复它们感到困惑).首先,fmin(仅使用fmin)使用这些函数 - 成本,渐变.其次,在手动实现中的单次迭代中测试时,成本和梯度函数都能准确地返回预期值(不使用fmin_bfgs).第三,我在optimize.linsearch中添加了错误代码,错误似乎是在def line_search_wolfe1行中引发的:derphi0 = np.dot(gfk,pk).在这里,根据我的测试,scipy.optimize.optimize pk = [[12.00921659] [11.26284221]] pk type = and …
我问这是一个编程和环境问题.您可以在访问物理GPU卡的虚拟机中测试/编程CUDA吗?
我正在购买一个新的(非常好的系统),部分地尝试基本的CUDA编程.处理器将是Intel i7-4770,支持VT-d(直接IO直通)或i7-4770K,但不支持VT-d.VT-d支持是否允许从VM访问GPU卡?(我看过英特尔,主板制造网站和虚拟机上的文档,但没有看到这个问题的答案.)
我打算在带有虚拟机(可能通过QEMU/KVM)的新开发盒上运行Linux作为我的基本操作系统,以测试其他环境(如Windows和Mac OS)中的软件.换句话说,我会在Linux机器上进行主要开发,然后需要在同一个盒子上运行的虚拟机上进行测试.
但是,VM OS是否能够访问GPU卡进行测试/开发?
[2013年7月首问]
我有一个最初使用SQLite开发的小型数据库.我的桌面应用程序在用户最初启动应用程序时自动设置数据库表.
问题 有几个表有FOREIGN KEY约束.假设我有表A,表B和表C.A对C有一个FOREIGN KEY约束.但是当我进行初始表生成时,每次都会抛出SQLExceptions:
约束"SQL130319142644383"无效:引用的表PREDICTIONRUN不存在.
(注意:由于其他FOREIGN KEY问题,我不能简单地重新组织表.)
那么,如何使用FOREIGN KEY约束创建表?
例
if (! this.checkIfTableExists("DocumentClassification", conn)) {
sql.setLength(0) ;
sql.append("CREATE TABLE DocumentClassification ( " ) ;
if (dbtype.equalsIgnoreCase("javadb")) {
sql.append(" classificationid INTEGER PRIMARY KEY NOT NULL GENERATED ALWAYS AS IDENTITY (START WITH 1, INCREMENT BY 1) , " ) ;
} else {
sql.append(" classificationid INTEGER PRIMARY KEY, " ) ;
}
sql.append(" classid INTEGER, " ) ;
sql.append(" documentid INTEGER, " ) ;
sql.append(" predictionrunid INTEGER, " ) ;
sql.append(" …Run Code Online (Sandbox Code Playgroud) Lucene 4.3新手
如何在Lucene 4.3中进行简单的搜索?
我在一个简单的Java测试用例中修改了大纲:http: //lucene.apache.org/core/4_3_0/core/overview-summary.html#overview_description
该示例以:
DirectoryReader ireader = DirectoryReader.open(directory);
IndexSearcher isearcher = new IndexSearcher(ireader);
Run Code Online (Sandbox Code Playgroud)
但根据文档,DirectoryReader不可见(受保护).所以看起来好像你不能使用DirectoryReader.
所以我做了挖掘并尝试了各种排列以避免直接使用DirectoryReader,包括:
File indexdir = new File("D:\\lucenetest\\") ; // location of my index
Directory directory = FSDirectory.open(indexdir);
IndexReader ireader = IndexReader.open(FSDirectory.open(indexdir)); //ERROR NoSuchMethodError
//IndexReader ireader = IndexReader.open(directory); //variation ERROR NoSuchMethodError
IndexSearcher isearcher = new IndexSearcher(ireader);
Run Code Online (Sandbox Code Playgroud)
等等(包括尝试原子阅读器).似乎没什么用.(我确认Lucene Core已正确导入.)索引工作正常.
我查看了Lucene示例搜索代码以获取更多线索.http://lucene.apache.org/core/4_2_1/demo/src-html/org/apache/lucene/demo/SearchFiles.html
IndexReader reader = DirectoryReader.open(FSDirectory.open(new File(index))); //DirectoryReader not visible error
IndexSearcher searcher = new IndexSearcher(reader);
Run Code Online (Sandbox Code Playgroud)
在简单的示例文件中使用时,这也不起作用.
我已经能够使简单的索引工作,以前能够使Lucene演示工作(索引和搜索).但是,我似乎无法进行简单的搜索工作.
有线索吗?
问题:
我将Eclipse项目从Linux机器移动到Windows 8.1机器,但无法在新的Windows Box上加载Git存储库.我在Eclipse中使用eGit(并不是GIT的复杂用户).
我通过手动复制整个项目目录和所有子目录,将项目从Linux框移动到Windows框.我的Git/eGit文件似乎存储在,例如,
D:\TheUser\Programming\eclipse\project1\project1gui\.git.
当我在Windows框中启动Eclipse时,我收到了一个eGit错误,并且没有打开任何存储库.错误是:
java.nio.file.InvalidPathException:索引66处的非法char <:>:\ home\TheUser\Programming\eclipse\project1\project1gui.git:\ home\TheUser\Programming\eclipse\project2.git:\ objects
注意:错误中的路径似乎是旧的Ubuntu/Linux路径.
我理解错误,路径中有一个Windows无效字符,但我根本无法找到配置文件或其他手动重新配置eGit(我不想丢失我的存储库).
规格:
Eclipse Kelper SR2
JDK 1.7
Windows 8.1 x64 Pro
(从Ubuntu x64移动)