考虑以下示例:
string_now = 'apple and avocado'
stringthen = string_now.swap('apple', 'avocado') # stringthen = 'avocado and apple'
Run Code Online (Sandbox Code Playgroud)
和:
string_now = 'fffffeeeeeddffee'
stringthen = string_now.swap('fffff', 'eeeee') # stringthen = 'eeeeefffffddffee'
Run Code Online (Sandbox Code Playgroud)
在 Python 中交换字符串字符中讨论的方法不起作用,因为其中使用的映射技术仅考虑一个字符。Python 的内置功能str.maketrans()也只支持单字符翻译,当我尝试执行多个字符翻译时,它会抛出以下错误:
Traceback (most recent call last):
File "main.py", line 4, in <module>
s.maketrans(mapper)
ValueError: string keys in translate table must be of length 1
Run Code Online (Sandbox Code Playgroud)
方法链replace()不仅远非理想(因为我有很多替换要做,链接替换将是一大块代码),而且由于其顺序性质,它不会将事情完美地翻译为:
string_now = 'apple and avocado'
stringthen = string_now.replace('apple', 'avocado').replace('avocado', 'apple')
Run Code Online (Sandbox Code Playgroud)
给出'apple and apple'而不是'avocado and apple'. …
我正在尝试使用 tensorflow==1.13.1 在多个 GPU 上训练Grover 的鉴别器模型。该模型的默认配置假设在多个 TPU 上进行训练,并被证明适用于具有多个 TPU 的系统。然而,由于 TPU 不可用,我试图通过使用 tensorflow 分布策略更改模型的运行配置来将训练分布在多个 GPU 上,如下所示:
dist_strategy = tf.contrib.distribute.MirroredStrategy(
num_gpus=8,
cross_device_ops=AllReduceCrossDeviceOps('nccl', num_packs=8),
# cross_device_ops=AllReduceCrossDeviceOps('hierarchical_copy')
)
Run Code Online (Sandbox Code Playgroud)
然后我尝试更改 GPU 的运行配置,如下所示:
run_config = RunConfig(
train_distribute=dist_strategy,
eval_distribute=dist_strategy,
log_step_count_steps=log_every_n_steps,
model_dir=FLAGS.output_dir,
save_checkpoints_steps=FLAGS.iterations_per_loop)
Run Code Online (Sandbox Code Playgroud)
它似乎正确分配数据(我可以通过 GPU 使用情况和其他指标来判断),但是在收集梯度时它失败并出现以下错误:
ValueError: You must specify an aggregation method to update a MirroredVariable in Replica Context.
Run Code Online (Sandbox Code Playgroud)
但是,我在分发策略中提供了跨设备操作。对我来说,最终的解决方案似乎是使用分布策略代码修改损失函数,但我认为它应该可以与 TPU 一起使用。任何帮助表示高度赞赏!
因此,我的数据框有一堆定价列,其中包含 16 美元 99 美分的 16.99 等值。我希望我的定价准确到几美分。但在将其导出到 csv 时,如果美分是 10 的倍数(例如 16.50 变成 16.5),它会通过删除最后一个零来截断定价。对其进行格式化,甚至格式化然后将其解析为字符串都没有帮助:
for col in df.columns:
if col.__contains__('USD'):
df[col] = '$'+df[col].round(decimals=2).astype(str).str.strip()
df.to_csv('pricing.txt', '\t')
Run Code Online (Sandbox Code Playgroud)
无论我将多少小数作为参数传递给那里,它都不起作用。当前的解决方法是编写一个具有条件格式的单独函数,但有没有办法通过pandas自身来完成此操作。
与我们在 MATLAB 中使用 subplot 命令在单个图中绘制多个图类似,如何使用 Simulink 在同一图中绘制不同的图?
笔记:
有什么帮助吗?