我有一个P = [1, 5, 3, 6, 4, ...]大小N和平均数组A.
我想找到最有效的方法来最大化以下3D功能:
f(x, y) = 1 / ( (1+e^(-6(x-2))) * (1+e^(-6(y-2))) * (1+e^(-0.1x-0.3y+1.5)) )
where x = c(S) = Count(S)和y = m(S) = Min(S[0]/A, S[1]/A, ..., S[n]/A),S是和的一个子集P.子集不必是连续的P.
我有一种感觉,这可能会减少到子集求和问题的某些变体,但我真的不知道从哪里开始除了排序P.目标是在PHP中实现该算法,但实际上任何伪代码都会有很大帮助.
我知道堆栈和github等上有无数关于如何在Tensorflow中恢复训练模型的问题.我已阅读大部分(1,2,3).
我有几乎完全相同的问题3然而我想尽可能以不同的方式解决它,因为我的训练和我的测试需要在从shell调用的单独脚本中,我不想添加完全相同的行我用于在测试脚本中定义图形,因此我不能使用tensorflow FLAGS和其他基于手动重新运行图形的答案.
我也不想sess.run每个变量并手动映射它们,因为它解释为我的图表非常大(使用带有参数input_map的import_graph_def).
所以我运行一些图表并在特定的脚本中训练它.比如(但没有培训部分)
#Script 1
import tensorflow as tf
import cPickle as pickle
x=tf.Variable(42)
saver=tf.train.Saver()
sess=tf.Session()
#Saving the graph
graph_def=sess.graph_def
with open('graph.pkl','wb') as output:
pickle.dump(graph_def,output,HIGHEST_PROTOCOL)
#Training the model
sess.run(tf.initialize_all_variables())
#Saving the variables
saver.save(sess,"pretrained_model.ckpt")
Run Code Online (Sandbox Code Playgroud)
我现在已经保存了图形和变量,所以我应该能够从另一个脚本运行我的测试模型,即使我的图形中有额外的训练节点.
#Script 2
import tensorflow as tf
import cPickle as pickle
sess=tf.Session()
with open('graph.pkl','rb') as input:
graph_def=pickle.load(input)
tf.import_graph_def(graph_def,name='persisted')
Run Code Online (Sandbox Code Playgroud)
然后显然我想使用保护程序恢复变量,但我遇到了与3相同的问题,因为没有找到保存甚至创建保护程序的变量.所以我写不出来:
saver=tf.train.Saver()
saver.restore(sess,"pretrained_model.ckpt")
Run Code Online (Sandbox Code Playgroud)
有没有办法绕过这些限制,我认为通过导入图形它会恢复每个节点中未初始化的变量,但似乎不是我真的需要第二次重新运行它像大多数给出的答案?
以下是他们的文件:
InstancedMesh:https://thirdjs.org/docs/#api/en/objects/InstancedMesh
InstancedBufferGeometry:https:// Threejs.org/docs/#api/en/core/InstancedBufferGeometry
这里还有一些示例: https://github.com/mrdoob/ Three.js/blob/dev/examples/webgl_buffergeometry_instancing.html
我总体上了解 Threejs 和 WebGL 中“实例化”的基本概念。我目前的理解是 Mesh 由Geometry和组成Material(例如const plane = new THREE.Mesh(geometry, material))。几何形状不包含颜色,但材料包含颜色。
从上面的示例中,我看到他们将颜色属性放入InstancedBufferGeometry,这非常令人困惑......几何体不应该有颜色,对吧?我错了吗?
geometry.setAttribute( 'offset', new THREE.InstancedBufferAttribute( new Float32Array( offsets ), 3 ) );
geometry.setAttribute( 'color', new THREE.InstancedBufferAttribute( new Float32Array( colors ), 4 ) );
geometry.setAttribute( 'orientationStart', new THREE.InstancedBufferAttribute( new Float32Array( orientationsStart ), 4 ) );
geometry.setAttribute( 'orientationEnd', new THREE.InstancedBufferAttribute( new Float32Array( orientationsEnd ), 4 ) );
Run Code Online (Sandbox Code Playgroud)
我的问题是,如果我想用不同颜色渲染 1000 个正方形平面并独立移动,我应该使用InstancedMesh …
我想优化经过冻结训练的Tensorflow模型。但是,我发现该optimize_for_inference库不再可用。
import tensorflow as tf
from tensorflow.python.tools import freeze_graph
from tensorflow.python.tools import optimize_for_inference_lib
input_graph_def = tf.GraphDef()
with tf.gfile.Open("./inference_graph/frozen_model.pb", "rb") as f:
data = f.read()
input_graph_def.ParseFromString(data)
output_graph_def = optimize_for_inference_lib.optimize_for_inference(
input_graph_def,
["image_tensor"], ## input
["'detection_boxes, detection_scores, detection_classes, num_detections"], ## outputs
tf.float32.as_datatype_enum)
f = tf.gfile.FastGFile("./optimized_model.pb", "wb")
f.write(output_graph_def.SerializeToString())
Run Code Online (Sandbox Code Playgroud)
我transform_graph从https://github.com/tensorflow/tensorflow/blob/master/tensorflow/tools/graph_transforms/README.md#strip_unused_nodes找到了优化我的冻结模型。我能够成功地为我的对象检测模型生成一个可以工作的优化模型。生成模型的优化版本的目的是提高模型的推理速度。我在bash(/ tensorflow根目录)中输入了以下代码:
bazel-bin/tensorflow/tools/graph_transforms/transform_graph \
--in_graph=/Users/cvsanbuenaventura/Documents/tensorflow_fastlog/models/research/object_detection/inference_graph/frozen_inference_graph.pb \
--out_graph=/Users/cvsanbuenaventura/Documents/tensorflow_fastlog/models/research/object_detection/inference_graph/optimized_inference_graph-transform_graph-manyoutputs-planA2-v2.pb \
--inputs='image_tensor' \
--outputs='detection_boxes, detection_scores, detection_classes, num_detections' \
--transforms='fold_batch_norms
fold_old_batch_norms
fold_constants(ignore_errors=true)'
Run Code Online (Sandbox Code Playgroud)
所以我的问题是:
fold_batch_norms, fold_old_batch_norms, fold_constants(ignore_errors=true)strip_unused_nodes(type=float, shape="1,299,299,3"))。这是做什么的?我应该在这里放什么形状?optimize_for_inference库不存在了吗?我一直使用 OneDrive 存储大量图像,现在需要处理这些图像,因此我已将 OneDrive 文件夹同步到我的计算机,这相对不占用磁盘空间。但是,由于我open()的代码中必须包含它们,因此它们都会被下载,这将占用比我计算机上的可用内存更多的空间。我可以手动使用右键单击上下文菜单中的“释放空间”操作,这可以使它们保持同步而不占用空间。
我正在寻找一种方法来做同样的事情,但是在我的代码中,在我处理每张图像之后。
试图找到如何获取上下文菜单项的命令,我找到了注册表中的这两个位置:
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\shell
HKEY_LOCAL_MACHINE\SOFTWARE\Classes*\shellex\ContextMenuHandlers
然而我找不到任何与之相关的东西,而且那些树有太多的键来盲目检查。此外,此论坛帖子(外部链接)显示了几种自动释放空间的方法,但它似乎会影响所有文件,并且仅限于全天间隔。
那么有什么方法可以访问该命令或释放 python 中的空间吗?
我家和大学的机器安装了不同版本的Unity.在我家更新,在大学时更老,我想知道这是不是导致我的问题.游戏工作正常,直到我试图在我的家用电脑上进一步开发它.
获取两条错误消息:
'UnityEngine.Component' does not contain a definition for 'bounds' and no extension method 'bounds' of type 'UnityEngine.Component' could be found. Are you missing an assembly reference?
和:
'UnityEngine.Component' does not contain a definition for 'MovePosition' and no extension method 'MovePosition' of type 'UnityEngine.Component' could be found. Are you missing an assembly reference?
这是我的代码:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class SantaBagController : MonoBehaviour {
public Camera cam;
private float maxWidth;
// Use this for initialization
void Start () …Run Code Online (Sandbox Code Playgroud) 这是我的代码,我无法检索多个数据,如果我只给它一个列它可以工作,但当我给多列时,它与我使用c#和sql服务器工作.
SqlConnection con3 = new SqlConnection(conString);
con3.Open();
if (con3.State == System.Data.ConnectionState.Open)
{
string s = "SELECT ([reg_grade] ,[t_name],[start_time], [end_time]) from addteacher where class_id='" + comboBox2.SelectedItem.ToString() + "' ";
SqlCommand cm = new SqlCommand(s, con3);
SqlDataReader dr1 = cm.ExecuteReader();
while (dr1.Read())
{
grade_att.Text = (dr1["reg_grade"]).ToString();
tname_att.Text = (dr1["t_name"]).ToString();
stime.Text = (dr1["start_time"]).ToString();
etime.Text = (dr1["end_time"]).ToString();
}
}
con3.Close();
Run Code Online (Sandbox Code Playgroud)