我试图创建一个视频来显示数据的动态变化,比如只是连续快速地逐个显示图像,所以我使用了图像(图像只是称为1,2,3,4,......)并编写了以下代码:
import cv2
import numpy as np
img=[]
for i in range(0,5):
img.append(cv2.imread(str(i)+'.png'))
height,width,layers=img[1].shape
video=cv2.VideoWriter('video.avi',-1,1,(width,height))
for j in range(0,5):
video.write(img)
cv2.destroyAllWindows()
video.release()
Run Code Online (Sandbox Code Playgroud)
并引发了一个错误:
TypeError: image is not a numpy array, neither a scalar
Run Code Online (Sandbox Code Playgroud)
我想我以错误的方式使用了这个列表,但我不确定.那我哪里做错了?
我编写了一个for循环来生成一组图像:
for p in range(0,153):
im=plt.imshow(M[p,0:28,:].T,extent=[0,time.max(),depth.max(),0],aspect='auto')
plt.tight_layout()
cbar=plt.colorbar(im,orientation='vertical')
cbar.set_label('Vz[mm]')
plt.title('Rohdaten '+str(p)+'. Umlauf D874 Ch5')
plt.xlabel('Messzeit[s]')
plt.ylabel('Messtiefe[mm]')
savefig(os.path.join('/Users/gaoyingqiang/Desktop/1-153Umlauf',str(p)+'.png'))
Run Code Online (Sandbox Code Playgroud)
但这使图像中的颜色条像下面那样循环:

我不明白为什么彩条在重复自己。
我正在尝试使用CNN输出中的描述符来定义三重态损失,但是当我尝试训练网络时会出现此错误。
我对损失函数的定义:
def compute_loss(descriptor, margin):
diff_pos = descriptor[0:1800:3] - descriptor[1:1800:3]
diff_neg = descriptor[0:1800:3] - descriptor[2:1800:3]
Ltriplet = np.maximum(0, 1 - tf.square(diff_neg)/(tf.square(diff_pos) + margin))
Lpair = tf.square(diff_pos)
Loss = Ltriplet + Lpair
return Loss
Run Code Online (Sandbox Code Playgroud)
这里的描述子是CNN的结果,CNN的收入是一组三重集合,包含按此顺序准确的锚,拉和推。输入时,我将600个三元组打包在一起,并将其输入到CNN中。
然后在训练网络时出现此错误:
2018-03-08 16:40:49.529263: I tensorflow/core/platform/cpu_feature_guard.cc:140] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2 FMA
Traceback (most recent call last):
File "/Users/gaoyingqiang/Documents/GitHub/Master-TUM/TDCV/exercise_3/ex3/task2_new.py", line 78, in <module>
loss = compute_loss(h_fc2, margin)
File "/Users/gaoyingqiang/Documents/GitHub/Master-TUM/TDCV/exercise_3/ex3/task2_new.py", line 37, in compute_loss
Ltriplet = np.maximum(0, 1 - …Run Code Online (Sandbox Code Playgroud) 我使用 MNIST 数据集训练了一个 CNN 模型,现在想要预测图像的分类,其中包含数字 3。
但是当我尝试使用这个 CNN 进行预测时,pytorch 给了我这个错误:
TypeError: 'collections.OrderedDict' object is not callable
Run Code Online (Sandbox Code Playgroud)
这就是我写的:
cnn = torch.load("/usr/prakt/w153/Desktop/score_detector.pkl")
img = scipy.ndimage.imread("/usr/prakt/w153/Desktop/resize_num_three.png")
test_x = Variable(torch.unsqueeze(torch.FloatTensor(img), dim=1), volatile=True).type(torch.FloatTensor).cuda()
test_output, last_layer = cnn(test_x)
pred = torch.max(test_output, 1)[1].cuda().data.squeeze()
print(pred)
Run Code Online (Sandbox Code Playgroud)
这里有一些解释:
img要预测的图像大小为 28*28score_detector.pkl是经过训练的 CNN 模型
任何帮助将不胜感激!
我想用 屏蔽分数矩阵中的所有零-np.inf,但我只能屏蔽部分零,看起来像
你在右上角看到还有没有被掩盖的零 -np.inf
这是我的代码:
q = torch.Tensor([np.random.random(10),np.random.random(10),np.random.random(10), np.random.random(10), np.zeros((10,1)), np.zeros((10,1))])
k = torch.Tensor([np.random.random(10),np.random.random(10),np.random.random(10), np.random.random(10), np.zeros((10,1)), np.zeros((10,1))])
scores = torch.matmul(q, k.transpose(0,1)) / math.sqrt(10)
mask = torch.Tensor([1,1,1,1,0,0])
mask = mask.unsqueeze(1)
scores = scores.masked_fill(mask==0, -np.inf)
Run Code Online (Sandbox Code Playgroud)
也许面具是错的?
我有一个DataFrame,每一行都有一个句子。但是句子的长度不一样。我想选择包含10个以上单词的行,例如
df = df.loc[len(df[src].str.split()) > 10]
Run Code Online (Sandbox Code Playgroud)
但这会引起密钥为真的错误。怎么做?