我已经根据自己的数据训练了function test(max, n) {
const r = ~~(Math.random() * (max + 1));
console.log(r);
if (r !== n) test(max, n);
}
test(6, 6); // max 6, stop if 6
模型。我想在进行预测时获取自定义图层的输出。我尝试使用下面的代码获取自定义层的输出,它以张量格式给出数据,但是我需要ResNet50
格式的数据。我试图将张量转换为NumPy数组,但出现错误,我遵循了这个post,但没有帮助
任何人都可以分享一些想法,任何建议将非常有帮助
NumPy array
我尝试过的事情
from keras.models import load_model
import tensorflow as tf
import numpy as np
config = tf.ConfigProto()
config.gpu_options.allow_growth = True
tf.Session(config=config)
model = load_model(model_path) # load trained model
data = load_data(data_path) # load data for predictions
result = model.predict(data)
print(type(result_dev))
#<class 'numpy.ndarray'>
result = model.get_layer('avg_pool').output
print(type(result))
#<class 'tensorflow.python.framework.ops.Tensor'>
AttributeError:“ Tensor”对象没有属性“ numpy”
result = result.numpy()
2020-09-22 11:21:59.522138:我 tensorflow / stream_executor / cuda / cuda_gpu_executor.cc:983]成功 从SysFS读取的NUMA节点的值为负(-1),但必须存在 至少一个NUMA节点,因此返回NUMA节点为零2020-09-22 11:21:59.522343:我 tensorflow / core / common_runtime / gpu / gpu_device.cc:1618]找到设备0 具有属性:
已安装依赖项:
result = result.eval(session=tf.compat.v1.Session())
答案 0 :(得分:0)
您只能在Eager执行期间将张量转换为numpy数组。由于您使用的版本早于2.0,因此默认情况下未启用该功能。
在任何情况下,您都可以在导入张量流后调用它:
tf.compat.v1.enable_eager_execution()
根据您的框架和用例,您可能还必须运行tf.config.run_functions_eagerly
(如果在任何地方定义了tf.function
)。为了更好地支持Eager模式,您应该将tensorflow升级到最新版本并使用tf.keras
,因为您的代码可能无法与旧的独立版本Keras
一起正常工作。在较新的版本中,您可以指定keras模型像这样热切地运行:
model.run_eagerly = True
答案 1 :(得分:0)
可以使用以下enum Foo { a = 'a', b = 'b' }
type TFoo = {
[k in Foo]: boolean;
}
const foo1: TFoo = { a: true, b: false} // good
// const foo2: TFoo = { a: true } // bad: missing b
// const foo3: TFoo = { a: true, b: 0} // bad: b is not a boolean
// So type does roughly what I'd expect and want
interface IFoo {
// [k in Foo]: boolean;
/*
Uncommenting the above line gives the following errors:
A computed property name in an interface must refer to an expression whose type is a
literal type or a 'unique symbol' type.
A computed property name must be of type 'string', 'number', 'symbol', or 'any'.
Cannot find name 'k'.
*/
}
// ???
函数将tensor
转换为numpy
数组:
tensorflow
例如:
import tensorflow as tf
tf.make_ndarray(
tensor
)
答案 2 :(得分:0)
最后提到的方法here与tensorflow-gpu==2.0.0
和keras==2.2.4
一起为我工作