1.扯一会

提到Mac很多人估计会觉得高大上,其实我也是这么认为的,因为我在13年之前用的不是Mac 而是普通的笔记本,总幻想着拥有一台Mac,当然了这个愿望在13年10月份左右就实现了

Mac最大的特点估计就是

a. 装x

b. 轻便好携带

c. Mac OS系统的流畅,以及几乎没有广告以及病毒的侵扰

d. 很容易编写、运行类Unix系统平台上的程序(MacOS就是根据很久之前的Unix系统发展而来,当然得支持Linux控的需求啦)

e. 搞UI设计的同学也非常喜欢

。。。

2.引入正题

2.1 为什么我会想到在Mac上安装Ubuntu呢?

2.1.1 “模型”惹的祸

之前当我需要用到Linux系统(例如Ubuntu这个发型版本)时,我基本都会在虚拟机(就是在Mac电脑上用特殊软件再虚拟出一台电脑,软件有很多,我一直喜欢用VMware)

可是最近需要研究人工智能(听上去高大上,实际上啊离真正的智能人脑还有很大差距)中的深度学习,再说的具体点就是需要用到训练模型,例如使用TensorFlow进行训练,

说到这估计很多同学就说,我要进行的“训练”与安装Ubuntu什么关系啊,这八杆子还没有一撇呢!请听我慢慢道来

因为我手头只有Mac电脑,自己阿里云的服务器性能一般(平时也就用来完成基本的web项目),而想要完成人工智能 其中一个很重要的一点是得到一个“类似人脑”的模型,可用理解为一套算法,用这个“算法”去工作,像语音识别,车牌识别等,而得到这个“模型”,就需要“训练”,这个过程是需要大量的计算的,而使用CPU(就是电脑上最核心的那块)的话 训练的时间太长太长了

因此,在研究深度学习这块,基本都不会使用CPU,而是使用GPU来实现模型的训练

2.1.2 Mac上的GPU

也不知是为什么,Mac电脑这么优秀,按常理说什么都是优秀的才对,这话在人工智能方面就差点意思了,为什么这么说呢?

现在(2019年)Mac上的GPU型号都是AMD的,而不是英伟达的,而训练模型方面英伟达的显卡被很多人工智能框架的厂商支持,而AMD的很少,当时自己不知郁闷了多久(我一直跟学生说Mac多么多么的好,这脸被打的啪啪响。。。)

还好,终于搜索到了一点信息,可用使用ROCm这个平台来实现对TensorFlow的支持,逻辑图如下

既然看到了曙光,那么久研究呗,所以进入到ROCm的研究

2.1.3 要疯了,Mac竟然不支持ROCm

看到ROCm之后,就像看到了一根 jiu ming 稻草,赶紧各种Google、Bing,最终发现,这个该s的ROCm现在支持支Linux系统版本

2.1.4 安装Ubuntu的原因归纳

经过上面的一番折腾,终于到了本话题的结束语,由于需要使用TensorFlow这样的框架,它需要计算性能更高的GPU,而Mac只有AMD的GPU,而想要用这样的GPU就需要安装ROCm,而ROCm不能再Mac OS上安装,

所以我需要在Mac这台电脑上安装Ubuntu,那为什么不使用之前提到的虚拟机来实现呢,我的想法时虚拟机的性能本来就比物理机要慢,然后用它来训练模型肯定不会很快,所以就在在Mac电脑上在保留Mac os系统的前提下 安装Ubuntu这款Linux发行版系统

2.2 Mac安装Ubuntu双系统(注意新手最好不要操作,有可能会将Mac给全盘抹掉)

安装的大体流程如下,如果遇到问题请自行google

a. 下载Ubuntu18.04.iso 文件,这个Google、百度出很多,免费的

b. 找一个U盘

c. 将Ubuntu18.04.iso解压(普通的压缩文件即可)会得到一个文件夹

d. 将上一步得到的文件夹中的所有文件复制到U盘中

e. 磁盘分区(就是从现有硬盘中分一片空间 用来安装Ubuntu)

f. 关闭Mac电脑

g. 启动电脑(注意,在按下电源键之后,要迅速的按下option键),此时会出现选择项

h. 选择EFI

i. 接下来会看到Ubuntu的系统界面,然后桌面上有安装的快捷键,一步步安装即可(注意这个过程中选择硬盘时 一定要选择步骤e分出来的那块,否则选错之后Mac系统上的所有资料就可能全被删除)

注意:

1. 上述步骤仅仅是我现存的一点记忆,安装的时候没有截图,所以各位同学如果觉得抽象,且自己想安装的话,可用自行google也会查询出很多Mac安装Ubuntu的教程

2. 因为已经安装了双系统所以,重启电脑后,默认是进去Ubuntu,如果想切换到Mac 请重启电脑,然后按住option键,选择即可

2.3 Ubuntu安装ROCm

当成功启动Ubuntu系统之后,立即就通过ROCm的官方文档,安装了ROCm,安装的过程还算顺利

大体流程如下:

a. 修改Ubuntu18.04的更新源为阿里云

b. 使用apt-get install 命令安装ROCm

如果安装过程有问题,可用参考这篇文章https://www.jianshu.com/p/6fabdcde831b

2.4 又又又遇到问题

安装完ROCm之后,就安装TensorFlow的GPU版本,参考的方式见https://pypi.org/project/tensorflow-gpu/ 效果如下

本以为安装完TensorFlow之后,就可以了,说实在的 当时的心情真的 很开心。。。。就像中奖一样。。。。飘阿飘啊。。。。。我飘了。。。。

但是,但是,但是

当我在执行import tensorflow后,竟然出错了,,,,,,天空一万匹马。。。。

万念俱灰,,,,

怎么办?

干脆删了Ubuntu吧,既然它不能用ROCm留着还占用空间,不删除等什么。。。。。

2.5 Mac系统崩溃了

重启系统之后,选择运行了Mac OS,然后准备用“磁盘工具”将之前分配给Ubuntu的空间删除,所以就打开了这个软件

打开之后,选择了之前分配的Ubuntu空间,然后将其进行了“抹掉”

但是抹掉的操作是成功的,只不过当时抹掉之后,我注意到了一点 磁盘的某个信息是FFFFFFFFFF,当时心里还在嘀咕,不会重启之后不能启动吧,,,,呸,,这乌鸦嘴。。。。

果不其然,重启之后,就么有然后了,不能进入macOS,而是一个"grub"的界面,,,,,,这个我大体之后再09年上学那会当时用的普通笔记本电脑重新Windows系统时遇到过,可是这都10年了谁还记得

当时是晚上11点左右(周4),既然不能进入那就赶紧Google吧,晚上11点了,电脑不能开机,怎么查?只能用手机,此时才真正体会大屏的好处,,,,查了N久 结果无功而返。。。

还好第二天周五不上课,学生做项目(Python Django web 项目),我这一天也没闲着,打了4个苹果客服的电话,让其帮我解决问题 (主要的问题是 可用重装macOS系统,但是想把之前的数据copy,即备份),

可是 他们依然没有解决(不过这个过程倒是知道了一件事情,苹果的官方客服可用远程操作指定apple id的手机,之前远程控制过Mac,而这次是手机 这个就厉害了,这足够说明 苹果的系统有很多个后门,只是我们用户不知道而已,可想而知暗地里苹果收集了多少中国的重要信息,真的是可怕;感慨什么时候我们国家才会有真正自己研发的可以真正用的操作系统,当然了此时华为已经发布了 鸿蒙操作系统,但是真正商用,老百姓用还很久。。。)

最终我决定全盘抹掉,哥哥我 不要数据了总行了吧,让我开机这可以吧,我下周还有上课的啊。。。。。。。

以上就是我在Mac上安装Ubuntu18.04组成双系统,以及最后悲催的整个事情来龙去脉,看到这也累了吧,没关系 下面还有总结呢 哈哈哈。。。

3. 总结

对于此事情,我感受颇深,以下是简明扼要的总结

a. Mac还是Mac 就不要瞎搞 安装Ubuntu了,因为Mac本身就能做到大部分的Linux的事情(本是同根生嘛)

b. 想要搞深度学习,肯定离不开训练模型,此时可以考虑租用云GPU(我也是事后才知道还有这,获取这个事情的代价太大了,这学费太贵了),如果土豪可以考虑直接买像2080的GPU,土豪嘛不差钱

c. 苹果的售后真的很棒,这已经不止是第一次感慨这个事了。试想如果苹果对我服务的到位了,我肯定会介绍更多的人买Mac啊,苹果收益会更大,而不是像一些其他公司 剩这些小钱不去做服务,眼光不够长远

d. 数据备份很重要,我之前为了以防万一已经把课件、视频、资料等都进行了备份,但是备份时间较长了,一些最新的数据并没有及时备份,这导致事后我花了一点时间 来将之前的数据(包括一些课件)重写了一遍

Mac安装Ubuntu18.04双系统经验以及感悟的更多相关文章

  1. Windows10安装ubuntu18.04双系统教程

    写在前面:本教程为windows10安装ubuntu18.04(64位)双系统教程,是我多次安装双系统的经验总结,安装方法同样适用于ubuntu16.04(64位).为了直观和易于理解,我会尽量图文并 ...

  2. win10系统下安装Ubuntu18.04双系统

    1.http://releases.ubuntu.com/18.04/ubuntu-18.04.2-desktop-amd64.iso下载Ubuntu 18.04镜像,准备好一个空的U盘 2.下载ru ...

  3. Windows10安装ubuntu16.04双系统教程

    写在前面:本教程为windows10安装ubuntu16.04(64位)双系统教程,是我多次安装双系统的经验总结,安装方法同样适用于ubuntu18.04(64位).为了直观和易于理解,我会尽量图文并 ...

  4. Ubuntu18.04双系统下安装CUDA10+cuDNN7.5

    前言 本篇写于2019-4-25 这两天装Ubuntu18.04双系统简直装到崩溃.一是非常著名的开机卡死在Logo界面的问题,另一个是在装Nvidia驱动和CUDA的时候,更是费心.而网上的资料又良 ...

  5. Win7 U盘安装Ubuntu16.04 双系统详细教程

    Win7 U盘安装Ubuntu16.04 双系统详细教程 安装主要分为以下几步: 一. 下载Ubuntu 16.04镜像软件: 二. 制作U盘启动盘使用ultraISO: 三. 安装Ubuntu系统: ...

  6. win10安装ubuntu16.04双系统

    前话:因为感兴趣吧也是专业需要,所以自学了U盘重装系统以及在win10的情况下安装Ubuntu16.04双系统.借此博客,记录下我安装Ubuntu的过程,方便日后回忆. 正因如此,本篇博客会写的十分简 ...

  7. win10安装ubuntu16.04双系统历程

    目录 win10安装ubuntu16.04双系统 历程 安装时间 安装准备 安装过程 其他问题 win10安装ubuntu16.04双系统 历程 安装时间 2018.11.30 安装准备 u盘(格式化 ...

  8. Windows下安装Ubuntu16.04双系统

    ROS需要在Ubuntu系统上开发,虚拟机跑Ubuntu开发ROS容易出现各种各样的问题,所以需要安装Ubuntu16.04双系统.笔者也是一步步按着网上的帖子来,由于网上的教程都不是最新的而且有的也 ...

  9. Win10系统下安装ubuntu16.04双系统-常见问题解答

    Win10系统下安装ubuntu16.04双系统-常见问题解答 1. 安装ubuntu16.04.2系统 磁盘分区形式有两种:GPT和MBR,关系到设置引导项.在win10下压缩出500GB空间给ub ...

随机推荐

  1. MAC终端中tree命令

    Mac没有自带的tree命令,需要额外安装才可以,操作方法有两种: 一.用find命令模拟tree效果 1.mac下默认是没有 tree命令的,不过我们可以使用find命令模拟出tree命令的效果,如 ...

  2. drf组件之jwt认证

    drf组件之jwt认证模块 一.认证规则 全称:json web token 解释:加密字符串的原始数据是json,后台产生,通过web传输给前台存储 格式:三段式 - 头.载荷.签名 - 头和载荷才 ...

  3. Centos下安装PHP ldap扩展

    Centos下安装PHP ldap扩展,有两种方法,仅供参考. 一.在线安装 执行下面命令: 1 yum install PHP-ldap 可能出现的问题: Error: php70w-common- ...

  4. 官方宣布IPV4已然耗尽,IPv6D风口或将到来?

    急救箱 IPV4真的用完了吗? ​ IPV4真的用完了吗?其实 小兰 一点也不惊讶 ,毕竟全球人口这么多,多N的几次幂就用完了吧- 43亿个IPv4地址已分配完毕,这意味着没已经有更多的IPv4地址可 ...

  5. 扛把子组20191121-3 Final阶段贡献分配规则

    此作业的要求参见http://edu.cnblogs.com/campus/nenu/2019fall/homework/10063 队名:扛把子 组长:孙晓宇 组员:宋晓丽 梁梦瑶 韩昊 刘信鹏 F ...

  6. 深入理解.NET Core的基元(三) - 深入理解runtimeconfig.json

    原文:Deep-dive into .NET Core primitives, part 3: runtimeconfig.json in depth 作者:Nate McMaster 译文:深入理解 ...

  7. 小白学 Python 爬虫(9):爬虫基础

    人生苦短,我用 Python 前文传送门: 小白学 Python 爬虫(1):开篇 小白学 Python 爬虫(2):前置准备(一)基本类库的安装 小白学 Python 爬虫(3):前置准备(二)Li ...

  8. 个人收藏--未整理—C# http/https 上传下载文件

    c# HTTP/HTTPS 文件上传. 分类: .net 2015-02-03 08:36 541人阅读 评论(0) 收藏 举报 方法主体 [csharp] view plaincopy public ...

  9. 查找节点(getAttribute())

    getAttribute():方法将返回一个给定元素的一个给定属性节点的值: attributeValue = element.getAttribute(attributeName); 给定属性的名字 ...

  10. java数据类型(大小等),变量定义,各进制书写方法

    1. java中字符占两个字节,因为char类型占两个字节(16位),而C,C++中占1字节(8位). 2. 变量定义 第一步:声明(Declaration) 第二步:赋值(Assignment) 这 ...