pytorch数据加载和处理问题解决方案

问题

最近跟着pytorch中文文档学习遇到一些小问题,已经解决,在此对这些错误进行记录:

  1. 在读取数据集时报错:
AttributeError: 'Series' object has no attribute 'as_matrix'
  1. 在显示图片是时报错:
ValueError: Masked arrays must be 1-D
  1. 显示单张图片时figure一闪而过

  2. 在显示多张散点图的时候报错:

TypeError: show_landmarks() got an unexpected keyword argument 'image'

解决方案

  1. 主要问题在这一行: 最终目的是将Series转为Matrix,即调用np.mat即可完成。
  • 修改前:
landmarks =landmarks_frame.iloc[n, 1:].as_matrix()
  • 修改后:
landmarks =np.mat(landmarks_frame.iloc[n, 1:])
  1. 打散点的x和y坐标应该均为向量或列表,故将landmarks后使用tolist()方法即可
  • 修改前:
plt.scatter(landmarks[:,0],landmarks[:,1],s=10,marker='.',c='r')
  • 修改后
plt.scatter(landmarks[:,0].tolist(),landmarks[:,1].tolist(),s=10,marker='.',c='r')
  1. 前面使用plt.ion()打开交互模式,则后面在plt.show()之前一定要加上plt.ioff()。这里直接加到函数里面,避免每次plt.show()之前都用plt.ioff()
  • 修改前
def show_landmarks(imgs,landmarks):
    '''显示带有地标的图片'''
    plt.imshow(imgs)
    plt.scatter(landmarks[:,0].tolist(),landmarks[:,1].tolist(),s=10,marker='.',c='r')#打上红色散点
    plt.pause(1)#绘图窗口延时
  • 修改后
def show_landmarks(imgs,landmarks):
    '''显示带有地标的图片'''
    plt.imshow(imgs)
    plt.scatter(landmarks[:,0].tolist(),landmarks[:,1].tolist(),s=10,marker='.',c='r')#打上红色散点
    plt.pause(1)#绘图窗口延时
    plt.ioff()
  1. 网上说对于字典类型的sample可通过 **sample的方式获取每个键下的值,但是会报错,于是把输入写的详细一点,就成功了。
  • 修改前
show_landmarks(**sample)
  • 修改后
show_landmarks(sample['image'],sample['landmarks'])
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值