我在 Eager Execution 中使用 TensorFlow 1.12,我想在训练期间检查不同点的梯度值和权重以进行调试。这个答案使用 TensorBoard 来获得很好的权重和梯度分布图,这正是我想要的。但是,当我使用Keras 的 TensorBoard callback 时,我得到了这个:
WARNING:tensorflow:Weight and gradient histograms not supported for eagerexecution, setting `histogram_freq` to `0`.
Run Code Online (Sandbox Code Playgroud)
换句话说,这与急切执行不兼容。有没有其他方法可以打印渐变和/或权重?大多数非 TensorBoard 答案似乎依赖于基于图的执行。
我正在寻找一个简单的库,与 Python 3.7 兼容,它可以提取视频文件的元数据,特别是捕获/录制日期时间;拍摄视频的日期和时间。我主要希望在 .mov 文件上执行此操作。hachoir-metadata据我所知,没有 Python 库;只是一个命令行界面,并且enzyme只适用于 .mkv 文件,尽管这在描述中没有明确说明。我想将记录/捕获数据时间作为字符串检索的原因是我想把它放在文件名中。
在此问题被标记为重复之前:类似的问题要么没有答案,要么已经过时。老实说,我对为什么还没有在 Python 脚本中检索视频元数据的正确方法感到困惑。
我正在尝试使用Mutagen以下列方式更改一堆 MP3 文件的 ID3(版本 2.3)封面艺术:
from mutagen.mp3 import MP3
from mutagen.id3 import APIC
file = MP3(filename)
with open('Label.jpg', 'rb') as albumart:
file.tags['APIC'] = APIC(
encoding=3,
mime='image/jpeg',
type=3, desc=u'Cover',
data=albumart.read()
)
file.save(v2_version=3)
Run Code Online (Sandbox Code Playgroud)
然而,文件(或至少APIC标签)保持不变,通过读回标签来检查。但是,在系统文件资源管理器中,该文件确实显示了更新的Date modified. 如何让 Mutagen 正确更新封面?
我使用 TensorFlow 1.12 和 Keras 进行语义分割。我提供了一个权重向量(大小等于类的数量)来tf.keras.Model.fit()使用它的class_weight参数。我想知道这在内部是如何工作的。我使用自定义损失函数(骰子损失和焦点损失等),并且权重在输入损失函数之前不能与预测或单一热的基本事实相乘,因为这不会产生任何感觉。我的损失函数输出一个标量值,所以它也不能与函数输出相乘。那么在何处以及如何准确地考虑类权重?
我的自定义损失函数是:
def cross_entropy_loss(onehots_true, logits): # Inputs are [BATCH_SIZE, height, width, num_classes]
logits, onehots_true = mask_pixels(onehots_true, logits) # Removes pixels for which no ground truth exists, and returns shape [num_gt_pixels, num_classes]
return tf.losses.softmax_cross_entropy(onehots_true, logits)
Run Code Online (Sandbox Code Playgroud) 我对 TFRecord 文件格式以及如何使用它感到困惑。我有一个 TFRecord,但不知道它究竟包含什么以及它的结构是什么。如何打印和检查 TFRecord 和/或其 TFExamples?我基本上问了与这个问题相同的问题,但是那个答案已经过时了。打印output_shapes,output_types或output_classesmyTFRecord告诉我什么都没有(为什么?)。该tf.io.tf_record_iterator()函数已被弃用,但 TFRecord 数据集现在看起来自己是可迭代的(但为什么仍然需要其他迭代器?)。然而,简单地打印每次迭代会返回乱码,并tf.train.Example.FromString(example)抛出一个TypeError: a bytes-like object is required, not 'tensorflow.python.framework.ops.EagerTensor'. 这一切都比较混乱。简单地初始化一个tf.data.Datasetusingfrom_tensor_slices() 看起来更容易检查,实际上提供了有关其形状和类型的信息。
我正在尝试使用 Python 在 OpenCV 中的黑色二维 NumPy 数组(一个带有一个通道的图像)上编写一个白色蒙版:
mask = np.zeros(shape=(100, 100), dtype=np.int8)
cv2.fillPoly(mask, np.array([[[0,0], [89, 0], [99,50], [33,96], [0,47]]], dtype=np.int32), color=255)
print(mask)
Run Code Online (Sandbox Code Playgroud)
但是,当我打印蒙版时,多边形呈灰色:
[[127 127 127 ... 0 0 0]
[127 127 127 ... 0 0 0]
[127 127 127 ... 0 0 0]
...
[ 0 0 0 ... 0 0 0]
[ 0 0 0 ... 0 0 0]
[ 0 0 0 ... 0 0 0]]
Run Code Online (Sandbox Code Playgroud)
我尝试了一个 3D NumPy 数组color=(255,255,255),我尝试了不同的颜色,但都无济于事。为什么它忽略了这个color论点?
我想将 matplotlib 自动生成的主要刻度标签保留在图下的默认位置。但是,我自己在特定的 x 值处添加了一些小刻度(带有垂直线),但它们的标签不适合默认的主要刻度。如何将这些标签移动到图的顶部?
我的代码供参考:
meta = comparisons['meta']
lagsAnycast = np.array(meta['lagsAnycast'])
lagsPenultimate = np.array(meta['lagsPenultimate'])
avgLagAnycast = meta['avgLagAnycast']
avgLagPenultimate = meta['avgLagPenultimate']
plt.step(lagsAnycast, (np.arange(lagsAnycast.size) + 1)/lagsAnycast.size, color='k', label='to anycast IPs', linewidth=1.5)
plt.step(lagsPenultimate, (np.arange(lagsPenultimate.size) + 1)/lagsPenultimate.size, color='k', label='to penultimate IPs', linewidth=1)
plt.axvline(round(avgLagAnycast,1), ls="dashed", color="k", label="average lag to anycast IPs", linewidth=1.5)
plt.axvline(round(avgLagPenultimate,1), ls="dashed", label="average lag to penultimate IPs", color="k", linewidth=1)
plt.axis([-0.34,60,0.7,1])
plt.xlabel("Lag (ms)")
plt.ylabel("CDF")
existingTicks = (plt.xticks())[0][1:].tolist()
plt.gca().xaxis.grid(True, which='major')
plt.gca().xaxis.grid(False, which='minor')
plt.gca().tick_params(axis="x", which="minor", direction="out", top=True)
plt.gca().set_xticks([round(avgLagAnycast,1), round(avgLagPenultimate,1)], minor=True)
plt.legend(loc='right', fontsize=10)
plt.grid(True, ls="dotted")
majorFormatter …Run Code Online (Sandbox Code Playgroud) python ×5
tensorflow ×3
colors ×1
drawing ×1
id3-tag ×1
id3v2 ×1
keras ×1
matplotlib ×1
metadata ×1
mp3 ×1
mutagen ×1
opencv ×1
python-3.x ×1
tfrecord ×1
video ×1