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. iOS核心动画高级技巧-2

    3. 图层几何学 图层几何学 不熟悉几何学的人就不要来这里了 --柏拉图学院入口的签名 在第二章里面,我们介绍了图层背后的图片,和一些控制图层坐标和旋转的属性.在这一章中,我们将要看一看图层内部是如何 ...

  2. Github相关知识

    github的提交流程 mkdir 目录名      :创建一个空文件夹 mkdir webs webs代表创建的新文件名称 cd 目录名   :切换到文件夹 cd webs 切换到当前新建的目录下 ...

  3. 关于 “'sqlite3' 不是内部或外部命令.....”问题

    学习django 按书上的  执行 manage.py dbshell 时, 报“'sqlite3' 不是内部或外部命令,也不是可运行的程序 或批处理文件.” 也就是指,环境变量中没有“sqlite3 ...

  4. AsyncDisplayKit编译和使用注意事项

    Facebook开源框架,在github上可下载到.首先要编译AsyncDisplayKit库项目,有可能会出现下面错误: cocoaPods是基于ruby的项目版本控制软件,如果是ruby新手就会不 ...

  5. opencv 3 core组件进阶(1 访问图像中的像素)

    访问图像像素的三类方法 ·方法一 指针访问:C操作符[ ]; ·方法二 迭代器iterator; ·方法三 动态地址计算. #include <opencv2/core/core.hpp> ...

  6. 关于Java 值传递深度分析

    首先说观点:java只有值传递没有引用传递 然后再来看看值传递与引用传递两者的定义 值传递(pass by value)是指在调用函数时将实际参数复制一份传递到函数中,这样在函数中如果对参数进行修改, ...

  7. useReducer代替Redux

    创建state.js import React, { createContext,useContext,useReducer } from 'react'; export const countTex ...

  8. Lab4\5:进程和线程

    进程的定义 进程是指一个具有一定独立功能的程序在一个数据集合上的一次动态执行过程 源代码在经过编译链接之后生成了可执行文件,再由操作系统进行加载并且进行一些堆栈的分配才是进程 进程控制块 操作系统管理 ...

  9. 5. 彤哥说netty系列之Java NIO核心组件之Channel

    你好,我是彤哥,本篇是netty系列的第五篇. 简介 上一章我们一起学习了如何使用Java原生NIO实现群聊系统,这章我们一起来看看Java NIO的核心组件之一--Channel. 思维转变 首先, ...

  10. Altium Designer 18 画keepout层与将keepout层转换成Mechanical1层的方法

    画keepout的方法 先选中Keepout层:然后 右键->Place->Keepout->然后选择要画圆还是线 Keepout层一般只用来辅助Layout,不能作为PCB的外形结 ...