我正在使用NHibernate并通过命名查询调用存储过程:
<sql-query name="SearchStuff" read-only="true" cacheable="true">
<return class="ResultEntity" />
EXEC [SearchStuff] ?, ?, ? </sql-query>
Run Code Online (Sandbox Code Playgroud)
许多存储过程参数都是故意可以为空的 - 这是无法更改的.
C#:
IQuery listQuery = this.Session.GetNamedQuery("SearchStuff");
listQuery.SetInt32(0, param1);
listQuery.SetDateTime(1, param2);
listQuery.SetString(2, param3);
IList<ResultEntity> results = listQuery.List<ResultEntity>();
Run Code Online (Sandbox Code Playgroud)
不幸的是,NHibernate没有为可为空的值类型提供任何SetXyz()方法,所以我尝试添加一些扩展方法来补偿:
public static class QueryExtensions
{
public static void SetInt32(this IQuery query, int position, int? val)
{
if (val.HasValue)
{
query.SetInt32(position, val.Value);
}
else
{
query.SetParameter(position, null);
}
}
public static void SetInt32(this IQuery query, string name, int? val)
{
if (val.HasValue)
{
query.SetInt32(name, val.Value);
}
else
{ …Run Code Online (Sandbox Code Playgroud) 我想获得SQL Server数据库中所有用户及其角色的列表.我想要做的是找出某些用户是否拥有多个数据库的权限.有查询可以直接执行此操作吗?
是否可以将该freeze_graph.py工具与saver.saveTensorFlow v1中保存的模型一起使用?如果是这样,怎么样?
我的代码看起来大致如下:
supervisor = tf.train.Supervisor(logdir=output_directory_path)
with supervisor.managed_session() as session:
# train the model here
supervisor.saver.save(session, output_directory_path)
Run Code Online (Sandbox Code Playgroud)
这会生成一个包含以下内容
checkpoint
output
output-16640.data-00000-of-00001
output-16640.index
output-16640.meta
Run Code Online (Sandbox Code Playgroud)
output包含中间培训步骤文件的目录在哪里.其余的是文件.
我的理解是这是一个元图(.meta文件)及其变量(.data*文件)的保护程序v2格式.这些文件包含该freeze_graph.py工具所需的数据,但不清楚如何告诉freeze_graph.py工具从这些文件加载数据.
所有这些尝试都会产生错误消息 Input checkpoint '...' doesn't exist!
python freeze_graph.py --input_checkpoint checkpoint --output_graph /tmp/out
python freeze_graph.py --input_checkpoint . --output_graph /tmp/out
python freeze_graph.py --input_checkpoint output-16640 --output_graph /tmp/out
Run Code Online (Sandbox Code Playgroud)
该freeze_graph.py代码包括注释'input_checkpoint' may be a prefix if we're using Saver V2 format的位置旁边的--input_checkpoint参数使用,因此我还以为上面的尝试的第三个会工作,但,唉,没有.
使用Replace Into,如果我有两个字段.FirstName LastName.该表中有John Smith,如果我要运行REPLACE INTO tblNames(FirstName,LastName)VALUES(John,Jones)会用Jones代替Smith,还是创建一个新名字?
是什么决定它的更新还是插入?
考虑以下两行Python / TensorFlow交互式会话:
import tensorflow as tf
s=tf.Session()
Run Code Online (Sandbox Code Playgroud)
如果这些命令的Ubuntu Linux操作系统14.04机,采用水蟒Python的2.7.13和TensorFlow R1.3(从来源汇编)中,用32G物理存储器和2分的GPU(一个GTX泰坦X和GTX 970)上执行,而CUDA_VISIBLE_DEVICES不是集(即两个GPU都可见),结果python进程分配了59.7G的内存!请注意,它实际上仅使用754M。
如果CUDA_VISIBLE_DEVICES=0(即只有Titan X是可见的),则分配55.2G,并且使用137M。
如果CUDA_VISIBLE_DEVICES=1(即仅970是可见的)则分配了47.0G,并且正在使用325M。
如果CUDA_VISIBLE_DEVICES=(即两个GPU都不可见),则仅分配2.5G,仅使用131M。
这在分配的内存量受到限制的环境(例如,Grid Engine设置内部)中是一个问题。
有什么方法可以限制TensorFlow使用CUDA时分配的主内存量吗?
更新1
在这些试验中,通过查看中的VIRT列来确定分配的内存量htop。
TensorFlow r1.3编译时大多带有默认configure答案。唯一的变化是通往CUDA和cuDNN的路径。结果,jemalloc正在被使用。
更新2
我尝试使用jemalloc禁用重新编译并看到相同的行为。
在相对路径中,〜/ directory /子目录 和 ./directory/subdirectory之间有什么区别?
sql ×2
tensorflow ×2
java ×1
mysql ×1
nhibernate ×1
null ×1
parameters ×1
path ×1
python ×1
replace ×1