似乎已经有几个线程/问题,但在我看来,这已经解决了:
https://github.com/fchollet/keras/issues/6050
https://github.com/fchollet/keras/issues/3230
人们似乎遇到了变量初始化或度量标准为0的问题.
我需要计算不同的细分指标,并希望在我的Keras模型中包含tf.metric.mean_iou.这是迄今为止我能够想到的最好的:
def mean_iou(y_true, y_pred):
score, up_opt = tf.metrics.mean_iou(y_true, y_pred, NUM_CLASSES)
K.get_session().run(tf.local_variables_initializer())
return score
model.compile(optimizer=adam, loss='categorical_crossentropy', metrics=[mean_iou])
Run Code Online (Sandbox Code Playgroud)
此代码不会抛出任何错误,但mean_iou总是返回0.我相信这是因为不评估up_opt.我已经看到在TF 1.3之前,人们已经建议使用control_flow_ops.with_dependencies([up_opt],score)来实现这一点.这在TF 1.3中似乎不太可能.
总之,如何评估Keras 2.0.6中的TF 1.3指标?这似乎是一个非常重要的特征.
我有一个具有多个GPU的服务器,并希望在Java应用程序内的模型推理期间充分利用它们.默认情况下,tensorflow会占用所有可用的GPU,但仅使用第一个GPU.
我可以想出三个选项来克服这个问题:
限制设备在流程级别上的可见性,即使用CUDA_VISIBLE_DEVICES环境变量.
这将要求我运行java应用程序的几个实例并在它们之间分配流量.不是那个诱人的想法.
在单个应用程序中启动多个会话,并尝试通过ConfigProto以下方式为每个会话分配一个设备:
public class DistributedPredictor {
private Predictor[] nested;
private int[] counters;
// ...
public DistributedPredictor(String modelPath, int numDevices, int numThreadsPerDevice) {
nested = new Predictor[numDevices];
counters = new int[numDevices];
for (int i = 0; i < nested.length; i++) {
nested[i] = new Predictor(modelPath, i, numDevices, numThreadsPerDevice);
}
}
public Prediction predict(Data data) {
int i = acquirePredictorIndex();
Prediction result = nested[i].predict(data);
releasePredictorIndex(i);
return result;
}
private synchronized int acquirePredictorIndex() {
int i …Run Code Online (Sandbox Code Playgroud)我对tf.get_collection()形式文档感到困惑,它说
返回具有给定名称的集合中的值列表.
这里有一个来自互联网的例子
from_vars = tf.get_collection(tf.GraphKeys.TRAINABLE_VARIABLES, from_scope)
Run Code Online (Sandbox Code Playgroud)
是不是就意味着它收集的变量来自tf.GraphKeys.TRAINABLE_VARIABLES 于from_scope?
但是,如果我想从另一个范围获取变量,我该如何使用此函数?谢谢!
DenseNets倾向于占用TensorFlow中的大量内存,因为每个concat操作都存储在单独的分配中.最近的一篇文章"DenseNets的内存高效实现"表明,通过共享分配可以大大降低内存利用率.来自paper + pytorch实现的图像说明了共享内存方法:
如何使用TensorFlow实现这一点?如果无法通过python完成,如何在支持CPU和GPU的Op中正确实现?
我已经为必要的分配功能创建了TensorFlow功能请求.
我正在尝试使用一个gpu上的训练代码和另一个上的eval代码运行CIFAR10教程.我知道我的计算机上有两个gpus,我可以通过运行这里的简单示例来测试它:https://www.tensorflow.org/how_tos/using_gpu/index.html
但是,使用a with device('/gpu:0')对CIFAR示例中的大多数变量都不起作用.我在gpu与cpu上尝试了很多不同变量的组合,或者在一个或另一个上尝试了所有变量.某些变量总是出现相同的错误,如下所示:
Cannot assign a device to node 'shuffle_batch/random_shuffle_queue': Could not satisfy explicit device specification '/gpu:0'
Run Code Online (Sandbox Code Playgroud)
这可能是Tensor Flow中的错误还是我错过了什么?
我正在对tensorflow服务模型进行预测,我将此PredictResponse对象作为输出返回:
结果:
outputs {
key: "outputs"
value {
dtype: DT_FLOAT
tensor_shape {
dim {
size: 1
}
dim {
size: 20
}
}
float_val: 0.000343723397236
float_val: 0.999655127525
float_val: 3.96821117632e-11
float_val: 1.20521548297e-09
float_val: 2.09611101809e-08
float_val: 1.46216549979e-09
float_val: 3.87274603497e-08
float_val: 1.83520256769e-08
float_val: 1.47733780764e-08
float_val: 8.00914179422e-08
float_val: 2.29388191997e-07
float_val: 6.27798826258e-08
float_val: 1.08802950649e-07
float_val: 4.39628813353e-08
float_val: 7.87182985462e-10
float_val: 1.31638898893e-07
float_val: 1.42612295306e-08
float_val: 3.0768305237e-07
float_val: 1.12661648899e-08
float_val: 1.68554503688e-08
}
}
Run Code Online (Sandbox Code Playgroud)
我想把浮动值作为列表.或者,或者,返回argmax float_val的值/索引!
这是由以下生成的:
stub = prediction_service_pb2.beta_create_PredictionService_stub(channel)result = stub.Predict(request,200.0)
感谢您的帮助.
我使用TensorFlow函数tf.image.resize_images来调整我的图像大小,但我在代码中得到了这个错误:ValueError:'images'不包含任何形状.完整代码如下:
# -*- coding: utf-8 -*-
import tensorflow as tf
file = ["./1.jpg"]
f = tf.train.string_input_producer(file)
reader = tf.WholeFileReader()
key, img = reader.read(f)
img = tf.image.decode_image(img)
# img.set_shape([218,178,3])
img = tf.image.resize_images(img, [64,64])
coord = tf.train.Coordinator()
with tf.Session() as sess:
tf.train.start_queue_runners(coord=coord)
image = sess.run(img)
Run Code Online (Sandbox Code Playgroud)
完整的错误信息是
Traceback (most recent call last):
File "image_read_test.py", line 10, in <module>
img = tf.image.resize_images(img, [64,64])
File "C:\Python35\lib\site-packages\tensorflow\python\ops\image_ops_impl.py", line 724, in resize_images
raise ValueError('\'images\' contains no shape.')
ValueError: 'images' contains no shape.
Run Code Online (Sandbox Code Playgroud)
然后我尝试解决这个问题,但只找到了这样的方法
# -*- coding: utf-8 …Run Code Online (Sandbox Code Playgroud) 我正在使用keras和tensorflow后端的master的项目.我有intel(r)高清图形520,所以我无法使用tensorflow-gpu.cpu版本工作正常.有没有办法使用tensorflow-gpu与intel(r)高清图形520?
我试图从训练集/流程模型中提供的export_inference_graph.py脚本中将trained_checkpoint转换为最终冻结模型,但会出现以下错误结果.是的,我已经设置了$ PYTHONPATH"模特/苗条",但我仍然得到这个错误,有人可以帮助我吗?
$ echo $PYTHONPATH
:/home/ishara/tensorflow_models/models:/home/ishara/tensorflow_models/models/slim
Run Code Online (Sandbox Code Playgroud)
*****************************问题****************************************************************************
$sudo python3 object_detection/export_inference_graph.py --input_type image_tensor --pipeline_config_path = "ssd_inception_v2_pets.config" --trained_checkpoint_prefix="output/model.ckpt-78543" --output_directory="birds_inference_graph.pb"
Traceback (most recent call last):
File "object_detection/export_inference_graph.py", line 74, in <module>
from object_detection import exporter
File "/usr/local/lib/python3.5/dist-packages/object_detection-0.1-py3.5.egg/object_detection/exporter.py", line 28, in <module>
File "/usr/local/lib/python3.5/dist-packages/object_detection-0.1-py3.5.egg/object_detection/builders/model_builder.py", line 30, in <module>
File "/usr/local/lib/python3.5/dist-packages/object_detection-0.1-py3.5.egg/object_detection/models/faster_rcnn_inception_resnet_v2_feature_extractor.py", line 28, in <module>
ImportError: No module named 'nets'
Run Code Online (Sandbox Code Playgroud)
我已经苦苦挣扎了好几天了,试过很多解决方案没什么用,我正在使用带有tensorflow-gpu版本的Ubuntu 16.04.
我想使用Tensorflow的transform_graph工具优化图形.我尝试从MultiNet(以及其他具有类似编码器 - 解码器架构的图形)优化图形.但是,使用quantize_weights时,优化图实际上较慢,使用quantize_nodes时甚至要慢得多.从Tensorflow的文档来看,量化时可能没有任何改进,甚至可能更慢.知道下面的图形/软件/硬件是否正常吗?
以下是我的系统信息供您参考:
如有必要,我可以发布用于重现的所有脚本.
tensorflow-gpu ×10
tensorflow ×9
python ×4
keras ×2
c++ ×1
java ×1
keras-2 ×1
multi-gpu ×1
python-3.x ×1