小编Fra*_*ois的帖子

+和+之间的差异与python列表

我一直在玩python列表,我发现以下有点奇怪.

list = ["test"]
list + "test1" 
Traceback (most recent call last):
    File "<stdin>", line 1, in <module>
TypeError: can only concatenate list (not "str") to list

list += "test1"
print(list)
['test', 't', 'e', 's', 't', '1']
Run Code Online (Sandbox Code Playgroud)

有人可以帮助我理解为什么+ =有效但+没有?

另外,我希望将"test1"作为单个元素追加.为什么每个字母一个元素?

python python-3.x

6
推荐指数
0
解决办法
54
查看次数

接受整数的int或元组作为python函数参数

我有以下功能:

def port_status(self, port=(1, 2)):
    for i in port:
        print_status(i)
Run Code Online (Sandbox Code Playgroud)

但我希望用户能够使用单个端口号调用该函数,如下所示:

port_status(port=2)
Run Code Online (Sandbox Code Playgroud)

在这种特定情况下,它最终会如下所示:

TypeError: 'int' object is not iterable
Run Code Online (Sandbox Code Playgroud)

我可以在这里使用一些蟒蛇魔法吗?

python python-3.x

1
推荐指数
1
解决办法
113
查看次数

在等待实时预测输入时将tensorflow估计器保存在内存中

我有一个训练有素的估算器,当有新输入数据输入时,我会用它进行实时预测。

在代码的开头,我实例化了估算器:

estimator = tf.estimator.Estimator(
    model_fn=model_fn,
    model_dir="{}/model_dir_{}".format(script_dir, 3))
Run Code Online (Sandbox Code Playgroud)

然后,在循环中,每当我获得足够的新数据进行预测时,我都会这样做:

predict_input_fn = tf.estimator.inputs.numpy_input_fn(
    x={"x": np.array([sample.normalized.input_data])},
    num_epochs=1,
    shuffle=False)
predictions = estimator.predict(
    input_fn=predict_input_fn,
)
Run Code Online (Sandbox Code Playgroud)

每次执行此操作时,我都会在控制台中收到以下tensorflow消息:

2018-04-21 16:01:08.401319:I tensorflow / core / common_runtime / gpu / gpu_device.cc:1195]创建TensorFlow设备(/ device:GPU:0)->(设备:0,名称:GeForce GTX 1060 6GB ,PCI总线ID:0000:04:00.0,计算能力:6.1)

INFO:tensorflow:从/home/fgervais/tf/model_dir_3/model.ckpt-103712恢复参数

似乎整个GPU检测过程和模型加载都在每个预测上都完成了。

有没有办法在实时输入之间将模型保持在内存中,以便获得更好的预测率?

tensorflow tensorflow-datasets

1
推荐指数
1
解决办法
874
查看次数