Trending December 2023 # Complete Guide On Independent Director # Suggested January 2024 # Top 16 Popular

You are reading the article Complete Guide On Independent Director updated in December 2023 on the website We hope that the information we have shared is helpful to you. If you find the content interesting and meaningful, please share it with your friends and continue to follow and support us for the latest updates. Suggested January 2024 Complete Guide On Independent Director

Introduction to Independent Director

Start Your Free Investment Banking Course

Who is the Independent Director?

An independent director is a member of the board of directors of a company who does not participate in the daily chores of the entity’s operations and does not have a material relationship with the company. Thus, he is also referring as the non-executive director of the company.

The word “independent” attains its importance only when the board of directors confirms that the directors do not have any material relationship with the company. Material relationship refers to a business relationship between a person and a limited benefit company transacting through self, a family member, or an officer wherein the person has some beneficial interest.

Material relations can be in the form of direct control of the other entity, being a partner or shareholder or an officer of another entity. Related-party transactions are generally allowed but only up to a certain level.

These provisions apply to the listed entities. In addition, the parent or subsidiary of such a listed company also covers these provisions.

Role of Independent Director

The independent director plays a passive role in day-to-day activities but plays an active role in the committees set up by the company. In addition, he is responsible for managing the risks and ensuring corporate governance standards within the company.

He holds a vital role in succession planning for the company.

He ensures a balance between the conflicting interest of the stakeholders.

Independent Director is Mentor and guides the company since he possesses expertise in one of the primary business areas.

He is responsible for being objective while evaluating the performance of the directors.

Independent Directors are vital in ensuring the integrity of the financial controls and systems.

He is involved in the key strategy-making process, appointing key persons, designing the standards of conduct, and risk management.

Should provide levels within which remuneration can pay to the key managerial personnel of the entity and other executive directors.

He provides solutions in case of conflicts between the management and the interest of the company’s shareholders.

Responsibility of Independent Director

He Should try to attend the general meeting of the company and meetings of the board of directors.

He should act within the authority provided to him.

Attend the committee meetings wherein he is the committee’s chairperson.

Should have enough knowledge of the company and the environment surrounding the company.

Independent directors should take care of the interests of the company, its shareholders, and its employees.

He is responsible for reporting the actual or suspected chances of fraud or any willful violation of the company’s code of ethics.

He holds critical information such as technologies, promotion plans, price-sensitive knowledge, and business secrets. And should keep the information confidential unless expressly allowed to disseminate by the board or required under the law.

He should safeguard the interest of the stakeholders, especially the minority ones.

He should ensure that the vigil mechanism is adequate and functional at all times and the person using the facility is free from any risk due to using such facilities.

Applicability on appointing Independent Director

At the time of appointment of an independent director, the board needs to determine whether the person has any material relationship with the company.

In doing so, the board checks that the person’s relationship falls within the familial, accounting, consulting, commercial, banking, charitable, or legal category.

If the board successfully determines that no such relationship exists, the person is eligible for appointment as an independent director of the company.

Provisions related to Independent Director

Is an employee, or is an immediate family member of the company’s executive director?

A partner of an employee of internal or external company auditors, whether present or former auditor.

Is an immediate family member of the partner or employee of such auditors in clause b.

Is in receipt of compensation of more than US $ 120,000 per annum for services other than being a director of the listed company. However, such compensation should not be contingent on the continued services and not concern the pension or deferred compensation for prior services.

Is an immediate family of the person as specified in clause d.

Is an employee of the company who receives or makes payments to the listed company concerning the property or services for an amount that exceeds 2% of the company’s consolidated gross revenues or the US $ 1 million in any of the preceding three fiscal years.

An immediate family member of the company’s executive officer as specified in clause f.

Also, if the person has had such a relationship as above in the last three years, the person would not be qualified as an independent director. Thus, the criteria limit is three years preceding the year of appointment.

Companies listed on the New York Stock Exchange and Nasdaq must comply with stricter norms about the independence criteria. Such companies should ensure that the director’s ability to remain independent is not affected by any material relationships, including the impact of any compensatory fee paid or being affiliated with the subsidiary or affiliate of a subsidiary of the company.

If the company imposes additional independence standards, it must disclose the same.

As per NYSE listing rules, the listed companies in the US should have the majority of directors as independent directors.


The business transactions are fair without the dent of being biased toward directors.

Stakeholders’ interest is protected.

Independent directors are free from undue influence from the management.

The expertise of the independent directors can be used for the company’s benefit.

The performance evaluation of the directors is objective and without any bias.

They are essential to good corporate governance policies.

He helps in the succession planning of the company.

He resolves the conflicts between the shareholders and the management.

The company has information asymmetry since independent directors do not know about the daily chores. Thus, the information received by such a director is some systematic noise.

An Independent director is still a director, and his decisions are subject to approval from the board members.

Due to asymmetry in the information exchange, ad hoc invitations to the board meetings do not suffice for the purpose. Thus, a completely independent board would work with poor information, and the objective of independence would be ineffective.

Conclusion Recommended Articles

You're reading Complete Guide On Independent Director

Complete Guide On Django Graphql Api

Introduction to Django GraphQL

Django provides different types of features to the users; graphql is one of the features that Django provides. Typically graphql is an open-source data query management tool used to manipulate the different languages for APIs and provides the existing data at the runtime to fulfill query requirements. In other, we can say that Django graphql is one of the most powerful tools, and it is also more extensible to the REST API of Django. Django GraphQL is not an API framework like REST; it is just a language that helps us share data in a new fashion or per our requirements.

Start Your Free Software Development Course

Web development, programming languages, Software testing & others

What is Django GraphQL?

Web APIs are the motors that power many of our applications today. For a long time, REST has been the prevailing engineering for APIs. With REST APIs, you, by and large, make URLs for each open object of information. Suppose we’re fabricating a REST API for motion pictures – we’ll have URLs for the actual films, entertainers, grants, chiefs, and makers. It’s now getting clumsy! This could mean a lot of solicitations for one cluster of related information. Envision you were the client of a low-fueled cell phone over a sluggish web association; this present circumstance isn’t extraordinary.

We influence GraphQL’s framework to characterize the information we need to access the API. At that point, we then make a pattern for the API, arranging permitted inquiries to recover and modify data.

Django GraphQL API

Let’s see the GraphQL API as follows:

There are three basic operations of GraphQL: reading data, writing data, manipulating data, and receiving real-time data whenever required. GraphQL provides some predefined schema and standard schema between client and server.

Given Below are the features of GraphQL as follows:

First, it is static, so there is no need to define the variable.

It is decoupled from the backend.

Underflows did not happen here.

Third, it is based on language and HTTP.

Therefore, it is not a required cost for documentation.

By using GraphQL API, we can save bandwidth.

A GraphQL blueprint sets a solitary wellspring of truth in a GraphQL application. It offers an association and a method for unifying its whole API.

Using GraphQL, we can easily handle a round trip which means request and response.

Firmly characterized information types decrease miscommunication between the client and the server.

GraphQL is contemplative. A client can demand a rundown of information types accessible. This is great for auto-creating documentation.

By using GraphQL with API, we can easily handle the existing queries.

In GraphQL, we have many open-source features unavailable in REST API.

GraphQL doesn’t direct particular application engineering. However, it may be presented well on top of a current REST API and can work with existing API the board apparatuses.

Django GraphQL New Project

Let’s create a new project for API as follows:

First, we must have Python and understand Django; here, we try to create a student management project. So first, open the terminal we execute the below command as follows.


mkdir stud_management cd stud_management

After that, we need to set the virtual environment for the newly created project, so we need to install the virtual environment using the below command.


pip install virtualenv virtualenv env

Now we have a virtual environment, so start the Django project using the below command.


django-admin startproject stud_management cd stud_management django-admin startapp student

Now we can check the chúng tôi file of our application, as shown below code.


INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', ' student ', ]

In the next step, we need to create the models inside the model file, as shown below code.

from chúng tôi import models class Stud(models.Model): stud_name = models.CharField(max_length=255) class Meta: verbose_name_plural = 'studnames' def __str__(self): return self.stud_name class studclass(models.Model): classname = models.CharField(max_length=150) classteacher = models.CharField(max_length=100') studcount = models.CharField(max_length=13) class Meta: conduct= ['Conducted_Date'] def __str__(self): return self.stud_name class subject(models.Model): subject_name = models.CharField(max_length=10) topic= models.CharField(max_length=100) class Meta: ordering = ['Conducted_Date'] def __str__(self): return self.subjectname


In the above code, we created three models as shown; now, we need to register our model in the admin file as shown below code.


from django.contrib import admin from .models import Stud, studclass, subject

After registration, we need to migrate with the help of the below commands as follows.


python chúng tôi makemigrations python chúng tôi migrate

Once migration is done, we can start the server using the below command.


python chúng tôi runserver

Now we need to add the GraphQL url inside the chúng tôi file as follows.


from django.contrib import admin from chúng tôi import path from graphene_django.views import GraphQLView from student.schema import schema urls = [ path('admin/',, path("graphql", GraphQLView.as_view(graphiql=True, schema=schema)), ]

Let’s consider the chúng tôi file below.


[ { "model": "studclass", "classname":"First" , "classteache":"Jenny" "studcount": 34 }, { "model": "studclass", "classname":"Second" , "classteache":"Jhon" "studcount": 30 } } ]

Now we need to run the below command to load data.


python chúng tôi loaddata stud.json

After executing the above command, we can see the output on the screen below.



With the help of the above article, we saw Django GraphQL. From this article, we saw basic things about Django GraphQL, its features and installation of Django GraphQL, and how we use it in Django GraphQL.

Recommended Articles

We hope that this EDUCBA information on “Django GraphQL” was beneficial to you. You can view EDUCBA’s recommended articles for more information.

Complete Guide To Python Stopiteration

Introduction to Python StopIteration

The following article outlines Python StopIteration as we know the topic ‘iterator’ and ‘iterable’ in Python. The basic idea of what the ‘iterator’ is? An iterator is an object that holds a value (generally a countable number) that is iterated upon. Iterator in Python uses the __next__() method to traverse to the next value. To tell that no more deals need to be traversed by the __next__() process, a StopIteration statement is used. Programmers usually write a terminating condition inside the __next__() method to stop it after reaching the specified state.

Syntax of Python StopIteration

When the method used for iterators and generators completes a specified number of iterations, it raises the StopIteration exception. It’s important to note that Python treats raising StopIteration as an exception rather than a mistake. Like how Python handles other exceptions, this exception can be handled by catching it. This active handling of the StopIteration exception allows for proper control and management of the iteration process, ensuring that the code can gracefully handle the termination of the iteration when required.

The general syntax of using StopIteration in if and else of next() method is as follows:

class classname: def __iter__(self): … … #set of statements return self; def __next__(self): if …. #condition till the loop needs to be executed …. #set of statements that needs to be performed till the traversing needs to be done return … else raise StopIteration #it will get raised when all the values of iterator are traversed How StopIteration works in Python?

It is raised by the method next() or __next__(), a built-in Python method to stop the iterations or to show that no more items are left to be iterated upon.

We can catch the StopIteration exception by writing the code inside the try block, catching the exception using the ‘except’ keyword, and printing it on screen using the ‘print’ keyword.

The following () method in both generators and iterators raises it when no more elements are present in the loop or any iterable object.

Examples of Python StopIteration

Given below are the examples mentioned:

Example #1

Stop the printing of numbers after 20 or printing numbers incrementing by 2 till 20 in the case of Iterators.


class printNum: def __iter__(self): self.z = 2 return self def __next__(self): if self.z <= 20: #performing the action like printing the value on console till the value reaches 20 y = self.z self.z += 2 return y else: raise StopIteration #raising the StopIteration exception once the value gets increased from 20 obj = printNum() value_passed = iter(obj) for u in value_passed: print(u)



In the above example, we use two methods, namely iter() and next(), to iterate through the values. The next() method utilizes if and else statements to check for the termination condition of the iteration actively.

If the iterable value is less than or equal to 20, it continues to print those values at the increment of 2. Once the value exceeds 20, the next() method raises a StopIteration exception.

Example #2

Finding the cubes of number and stop executing once the value becomes equal to the value passed using StopIteration in the case of generators.


def values(): #list of integer values with no limits x = 1 #initializing the value of integer to 1 while True: yield x x+= 1 def findingcubes(): for x in values(): yield x * x *x #finding the cubes of value ‘x’ def func(y, sequence): sequence = iter(sequence) output = [ ] #creating an output blank array try: for x in range(y): #using the range function of python to use for loop output.append(next(sequence)) #appending the output in the array except StopIteration: #catching the exception pass return output print(func(5, findingcubes())) #passing the value in the method ‘func’



In the above example, we find the cubes of numbers from 1 to the number passed in the function. We generate multiple values at a time using generators in Python, and to stop the execution once the value reaches the one passed in the function, we raise a StopIteration exception.

We create different methods serving their respective purposes, such as generating the values, finding the cubes, and printing the values by storing them in the output array. The program uses basic Python functions like range and append, which should be clear to the programmer in the initial stages of learning.

How to Avoid StopIteration Exception in Python?

As seen above StopIteration is not an error in Python but an exception and is used to run the next() method for the specified number of iterations. Iterator in Python uses two methods, i.e. iter() and next().

The next() method raises a StopIteration exception when the next() method is called manually.

The best way to avoid this exception in Python is to use normal looping or use it as a normal iterator instead of writing the next() method repeatedly.

Otherwise, if not able to avoid StopIteration exception in Python, we can simply raise the exception in the next() method and catch the exception like a normal exception in Python using the except keyword.


As discussed above in the article, it must be clear to you what is the StopIteration exception and in which condition it is raised in Python. StopIteration exception could be an issue to deal with for the new programmers as it can be raised in many situations.

Recommended Articles

This is a guide to Python StopIteration. Here we discuss how StopIteration works in Python and how to avoid StopIteration exceptions with programming examples. You may also have a look at the following articles to learn more –

A Complete Guide To K


In the four years of my data science career, I have built more than 80% of classification models and just 15-20% of regression models. These ratios can be more or less generalized throughout the industry. The reason behind this bias towards classification models is that most analytical problems involve making decisions. In this article, we will talk about one such widely used machine learning classification technique called k nearest neighbor (KNN) algorithm. Our focus will primarily be on how the algorithm works on new data and how the input parameter affects the output/prediction.

Note: People who prefer to learn through videos can learn the same through our free course – K-Nearest Neighbors (KNN) Algorithm in Python and R. And if you are a complete beginner to Data Science and Machine Learning, check out our Certified BlackBelt program –

Learning Objectives

Understand the working of KNN and how it operates in python and R.

Get to know how to choose the right value of k for KNN

Understand the difference between training error rate and validation error rate

What is KNN (K-Nearest Neighbor) Algorithm?

The K-Nearest Neighbor (KNN) algorithm is a popular machine learning technique used for classification and regression tasks. It relies on the idea that similar data points tend to have similar labels or values.

During the training phase, the KNN algorithm stores the entire training dataset as a reference. When making predictions, it calculates the distance between the input data point and all the training examples, using a chosen distance metric such as Euclidean distance.

Next, the algorithm identifies the K nearest neighbors to the input data point based on their distances. In the case of classification, the algorithm assigns the most common class label among the K neighbors as the predicted label for the input data point. For regression, it calculates the average or weighted average of the target values of the K neighbors to predict the value for the input data point.

The KNN algorithm is straightforward and easy to understand, making it a popular choice in various domains. However, its performance can be affected by the choice of K and the distance metric, so careful parameter tuning is necessary for optimal results.

When Do We Use the KNN Algorithm?

KNN can be used for both classification and regression predictive problems. However, it is more widely used in classification problems in the industry. To evaluate any technique, we generally look at 3 important aspects:

1. Ease of interpreting output

2. Calculation time

3. Predictive Power

Let us take a few examples to  place KNN in the scale :

KNN classifier fairs across all parameters of consideration. It is commonly used for its ease of interpretation and low calculation time.

How Does the KNN Algorithm Work?

Let’s take a simple case to understand this algorithm. Following is a spread of red circles (RC) and green squares (GS):

You intend to find out the class of the blue star (BS). BS can either be RC or GS and nothing else. The “K” in KNN algorithm is the nearest neighbor we wish to take the vote from. Let’s say K = 3. Hence, we will now make a circle with BS as the center just as big as to enclose only three data points on the plane. Refer to the following diagram for more details:

The three closest points to BS are all RC. Hence, with a good confidence level, we can say that the BS should belong to the class RC. Here, the choice became obvious as all three votes from the closest neighbor went to RC. The choice of the parameter K is very crucial in this algorithm. Next, we will understand the factors to be considered to conclude the best K.

How Do We Choose the Factor K?

First, let us try to understand exactly the K influence in the algorithm. If we see the last example, given that all the 6 training observation remain constant, with a given K value we can make boundaries of each class. These decision boundaries will segregate RC from GS. In the same way, let’s try to see the effect of value “K” on the class boundaries. The following are the different boundaries separating the two classes with different values of K.

If you watch carefully, you can see that the boundary becomes smoother with increasing value of K. With K increasing to infinity it finally becomes all blue or all red depending on the total majority.  The training error rate and the validation error rate are two parameters we need to access different K-value. Following is the curve for the training error rate with a varying value of K :

As you can see, the error rate at K=1 is always zero for the training sample. This is because the closest point to any training data point is itself.Hence the prediction is always accurate with K=1. If validation error curve would have been similar, our choice of K would have been 1. Following is the validation error curve with varying value of K:

This makes the story more clear. At K=1, we were overfitting the boundaries. Hence, error rate initially decreases and reaches a minima. After the minima point, it then increase with increasing K. To get the optimal value of K, you can segregate the training and validation from the initial dataset. Now plot the validation error curve to get the optimal value of K. This value of K should be used for all predictions.

The above content can be understood more intuitively using our free course – K-Nearest Neighbors (KNN) Algorithm in Python and R

Breaking It Down – Pseudo Code of KNN

We can implement a KNN model by following the below steps:

Load the data

Initialise the value of k

For getting the predicted class, iterate from 1 to total number of training data points

Calculate the distance between test data and each row of training dataset. Here we will use Euclidean distance as our distance metric since it’s the most popular method. The other distance function or metrics that can be used are Manhattan distance, Minkowski distance, Chebyshev, cosine, etc. If there are categorical variables, hamming distance can be used.

Sort the calculated distances in ascending order based on distance values

Get top k rows from the sorted array

Get the most frequent class of these rows

Return the predicted class

Implementation in Python From Scratch

We will be using the popular Iris dataset for building our KNN model. You can download it from here.

Comparing Our Model With Scikit-learn from sklearn.neighbors import KNeighborsClassifier neigh = KNeighborsClassifier(n_neighbors=3)[:,0:4], data['Name']) # Predicted class print(neigh.predict(test)) # 3 nearest neighbors print(neigh.kneighbors(test)[1])

We can see that both the models predicted the same class (‘Iris-virginica’) and the same nearest neighbors ( [141 139 120] ). Hence we can conclude that our model runs as expected.

Implementation of KNN in R

View the code on Gist.


#Top observations present in the data SepalLength SepalWidth PetalLength PetalWidth Name 1 5.1 3.5 1.4 0.2 Iris-setosa 2 4.9 3.0 1.4 0.2 Iris-setosa 3 4.7 3.2 1.3 0.2 Iris-setosa 4 4.6 3.1 1.5 0.2 Iris-setosa 5 5.0 3.6 1.4 0.2 Iris-setosa 6 5.4 3.9 1.7 0.4 Iris-setosa #Check the dimensions of the data [1] 150 5 #Summarise the data SepalLength SepalWidth PetalLength PetalWidth Name Min. :4.300 Min. :2.000 Min. :1.000 Min. :0.100 Iris-setosa :50 1st Qu.:5.100 1st Qu.:2.800 1st Qu.:1.600 1st Qu.:0.300 Iris-versicolor:50 Median :5.800 Median :3.000 Median :4.350 Median :1.300 Iris-virginica :50 Mean :5.843 Mean :3.054 Mean :3.759 Mean :1.199 3rd Qu.:6.400 3rd Qu.:3.300 3rd Qu.:5.100 3rd Qu.:1.800 Max. :7.900 Max. :4.400 Max. :6.900 Max. :2.500

Step 3: Splitting the Data

View the code on Gist.

Step 4: Calculating the Euclidean Distance

View the code on Gist. View the code on Gist.


For K=1 [1] "Iris-virginica"

In the same way, you can compute for other values of K.

Comparing Our KNN Predictor Function With “Class” Library

View the code on Gist.


For K=1 [1] "Iris-virginica"

We can see that both models predicted the same class (‘Iris-virginica’).


The KNN algorithm is one of the simplest classification algorithms. Even with such simplicity, it can give highly competitive results. KNN algorithm can also be used for regression problems. The only difference from the discussed methodology will be using averages of nearest neighbors rather than voting from nearest neighbors. KNN can be coded in a single line on R. I am yet to explore how we can use the KNN algorithm on SAS.

Key Takeaways

KNN classifier operates by finding the k nearest neighbors to a given data point, and it takes the majority vote to classify the data point.

The value of k is crucial, and one needs to choose it wisely to prevent overfitting or underfitting the model.

One can use cross-validation to select the optimal value of k for the k-NN algorithm, which helps improve its performance and prevent overfitting or underfitting. Cross-validation is also used to identify the outliers before applying the KNN algorithm.

The above article provides implementations of KNN in Python and R, and it compares the result with scikit-learn and the “Class” library in R.

Frequently Asked Questions Related

Rcs Messaging On Android: A Complete Guide With 14 Tips

Apple has had iMessage for several years. Unfortunately, due to the wide variety of Android phones and messaging apps, a similar feature on Android has taken time. Fortunately, RCS messaging is now available as an iMessage equivalent on Android. What exactly is RCS messaging on Android, and how do you use it? You’ll find the answer right here.

What Is RCS? What Is RCS Messaging?

As with the other chat apps, you can text in real time and see typing indicators and message receipts. RCS also unlocks the ability to send high-quality photos, videos, GIFs, stickers, location, and much more right from the default messaging app without using any third-party app.

RCS messaging capability is provided by your mobile carrier or Jibe Mobile from Google, with the latter being the most popular. RCS must also be supported by your messaging app. Google’s Messages app is the best RCS app right now because it supports all features and is featured in this guide. More messaging apps will be able to use RCS in the future.

Let’s look at a comparison of RCS and SMS to get a better understanding of RCS messaging.

What Are the Differences Between RCS and SMS? Character Limit

Currently, a single SMS message can only be 160 characters long. Anything beyond that is regarded as a second message, and third, fourth, and fifth, etc., if needed, and you are charged accordingly. RCS messaging, thankfully, removes this restriction, allowing you to send messages of virtually any length.


You don’t need an Internet connection to send or receive SMS messages, whereas RCS messaging requires mobile data or Wi-Fi because everything is handled over the data network.


SMS/MMS messages are deducted from your mobile operator’s regular balance or your mobile plan. On the contrary, because RCS connects to the Internet, data charges will apply based on the type and quantity of data sent or received, just like WhatsApp and other chat apps. You do not need to be concerned about the charges if you have an unlimited Internet plan.

Cross-Platform Support Group Conversation

RCS also adds the group chat feature to Android messages, which was previously unavailable in regular text messaging.

Other Features

RCS messages can carry more information than traditional SMS or MMS messages. You can send high-quality photos, videos, location, stickers, and other similar items but can’t with SMS. RCS also provides read receipts, emoji reactions, and typing indicators.

How to Enable RCS Messaging on Android Requirements for RCS

Before we begin, make sure your Android phone meets the following requirements:

The Messages app from Google should be installed on your Android phone and set as the default SMS app. To make it the default app, go to “Settings → Apps → Default apps → SMS app.” Select the Messages app.

Your Android phone should be running Android 5.0 and higher.

The same SIM card should be used for data and calls if you have multiple SIM cards in your phone.

You should have a regular balance in your mobile, as RCS messaging may need to verify your phone number by sending an SMS.

Activate RCS Messaging

Once your phone meets the above requirements, you can activate RCS messaging, provided it’s supported by your country and carrier.

Open the Messages app by Google. Tap on the three-dot icon and go to “Settings.”

Tap on “Chat features.” If RCS is available on your phone, you will see the option to enable the feature. Turn on the toggle next to “Enable chat features’ to activate RCS messaging. If RCS messaging or chat features aren’t available for your phone, you will not see the option to enable it.

Follow the on-screen instructions to set up RCS messaging. Once RCS is enabled, you will see “Connected” next to “Status.”

Tips for Using RCS Messaging

Now that you know what RCS is and how to set it up, let’s explore various RCS messaging tips to enhance your experience.

1. Find Out Whether Your Message Will Be Sent as RCS or SMS

One of the major concerns while using RCS messaging is to figure out whether the recipient has RCS. You can check that in the field where you would type your message.

If it says “Chat messages,” the messages will be sent using RCS.

If it says “Text messages,” RCS isn’t active, so messages will be sent as SMS/MMS.

Further, the Send icon next to that field also helps in identifying the type of message that will be sent.

If the Send icon doesn’t show any text, it means the message will be sent as RCS over Wi-Fi or mobile data.

If the icon says SMS or MMS, messages will be sent as SMS or MMS respectively.

The Lock icon on the Send icon indicates that the message is end-to-end encrypted.

2. Identify RCS Messages in Chat

RCS messages are slightly darker in color than SMS/MMS messages. On both sent and received messages, you will notice a darker blue color.

Alternatively, hold down a message and tap the three-dot icon, then select “View details”. The resulting pop-up will indicate whether the message is RCS or regular SMS.

3. React with Emojis

Touch and hold on any message that you want to react to with emojis. The emoji bar will open. Choose the desired emoji. To change the emoji, touch and hold the message, and choose a different emoji. To remove an emoji, press the same emoji again. Please note that the other person will be notified about any changes made to emoji reactions.

4. Enable or Disable Read Receipts

You can disable read receipts if you don’t want others to know you’ve read their messages. Navigate to “the Messages app settings → Chat features.” Turn off the toggle next to “Send read receipts.”

5. Turn the Typing Indicator On or Off

When you use RCS in the Messages app, you will see typing indicators by default. If you don’t want others to see when you’re typing, you can turn it off. Navigate to “Chat features” in the Messages app settings. Deactivate the toggle next to “Show typing indicators.”

6. Turn Off Auto Download Files

Files up to 100 MB are automatically downloaded in the Messages app by default. However, you can change this by either completely disabling auto-download or changing the file size limit. To do so, navigate to “Settings → Chat features → Auto-download files you receive over mobile data” in the Messages app. Select the appropriate option.

7. Send Voice Messages

RCS messaging allows you to send voice messages. Touch and hold the microphone icon next to the typing area to start recording your voice message. Lift your finger to preview the recording, then hit the Send button.

8. Send Images

It should come as no surprise that you can send images while using Chat in Android Messages. To open the Camera view or select an image from your Gallery, press the Gallery icon on the left side of the message compose box. Tap the Send button after selecting the photo you want to send.

9. Doodle or Write on Images

Once you select the image as shown in the above tip, it’s added to the message compose box. Tap on the image thumbnail in the compose box to edit it and press the “Edit” button.

Tap on the A icon to add text on the image or hit the Doodle icon to draw on the picture. Hit the Send button.

Tip: you can use the Messages app as a photo editor. Press the Download button at the bottom of the image to save it on your device after editing it.

10. Send GIFs and Stickers 11. Send Location

With chat features in the Android Messages app, you can share your location as well. You can send your current location or use the search feature to find a location. To use this feature, tap on the add (+) icon and hit the location tab. Select the location to share.

12. Use Assistant Features

The Messages app will make auto suggestions based on the text you’re typing while you’re chatting. It is possible with the help of Google Assistant. You can also use Assistant features manually within the Messages app. Tap the (+) icon and select the Assistant section’s buttons such as Restaurants, Movies, and so on. Also, learn how to send and read messages using Google Assistant.

13. Share Contact and Files

Similarly, you can share contacts and files in the Messages app. Tap on the respective buttons inside the add (+) icon and choose the data you want to send.

14. Create Group Chats

To create a group chat, press the floating Start chat button on the app’s home screen, then tap on “Create group” and add the people. Alternatively, open any existing chat thread, press the three-dot icon and select “Details.” Tap on “Add people.”

How to Turn Off RCS Messaging Disable RCS for Individual Contacts

The Messages app lets you disable chat features for specific contacts. All messages to that contact will be delivered via SMS or MMS. To do so, open the chat thread, then tap the three-dot icon and select “Details.” Enable the “Only send SMS and MMS messages” toggle.

Disable RCS for All Contacts

If you don’t enjoy RCS messaging or chat features, you can disable it. To do so, go to “the Messages app settings → Chat features.” Turn off the toggle next to “Enable chat features.”

Generally, the chat feature will also stop working when you remove the SIM card from your phone. However, it may continue to work on the same device for up to 14 days after removing the SIM.

Deactivate RCS without Phone

If you bought a new device and forgot to turn off chat features on the old phone, you can deactivate it from Google’s deactivation web portal as well. Enter your number and the security code in the portal to disable RCS, then activate it on the new phone.

What to Do If RCS Doesn’t Work

If RCS isn’t working, make sure it meets the above-mentioned requirements, such as a working Internet connection, Android version, default messaging app, and so on. After that, restart the phone and re-insert the SIM card. If that doesn’t work, reactivate RCS by first disabling it and then enabling it again.

Make the Most of Android Messages

Once RCS becomes mainstream, like iMessage or WhatsApp, businesses can explore its capabilities to send important information. Boarding passes, parcel tracking, and customer service are some examples. If you want to know more of what you can do with RCS now, see our other tips related to the Messages app and how to use it on the Web.

Mehvish Mushtaq

Mehvish is a tech lover from Kashmir. With a degree in computer engineering, she’s always been happy to help anyone who finds technology challenging. She’s been writing about technology for over six years, and her favorite topics include how-to guides, explainers, tips and tricks for Android, iOS/iPadOS, Windows, social media, and web apps.

Subscribe to our newsletter!

Our latest tutorials delivered straight to your inbox

Sign up for all newsletters.

By signing up, you agree to our Privacy Policy and European users agree to the data transfer policy. We will not share your data and you can unsubscribe at any time.

A Complete Guide To Pytorch Tensors

Introduction to PyTorch Tensors

The following article provides an outline for PyTorch Tensors. PyTorch was released as an open-source framework in 2023 by Facebook, and it has been very popular among developers and the research community. PyTorch has made building deep neural network models by providing easy programming and faster computation. However, PyTorch’s strong feature is providing Tensors. Tensors are defined as single dimensions or a matrix of a multi-dimensional array containing an element of single data types.

Start Your Free Software Development Course

Web development, programming languages, Software testing & others

Tensors are also used in the Tensorflow framework, which Google released. NumPy Arrays in Python are basically just tensors processed by using GPUs or TPUs for training neural network models. PyTorch has libraries included in it for calculating gradient descent for feed-forward networks as well as back-propagation. PyTorch has more support to the Python libraries like NumPy and Scipy compared to other frameworks like Tensorflow.

PyTorch Tensors Dimensions

In any linear algebraic operations, the user may have data in vector, matrix or N-dimensional form. Vector is basically a single-dimensional tensor, Matrix is two-dimensional tensors, and an Image is a 3-dimensional tensor with RGB as a dimension. PyTorch tensor is a multi-dimensional array, same as NumPy and also it acts as a container or storage for the number. To create any neural network for a deep learning model, all linear algebraic operations are performed on Tensors to transform one tensor to new tensors.


import torch tensor_1 = torch.rand(3,3)

Here random tensor of size 3*3 is created.

How to Create PyTorch Tensors Using Various Methods

Let’s create a different PyTorch tensor before creating any tensor import torch class using the below command:


import torch

1. Create tensor from pre-existing data in list or sequence form using torch class.

It is a 2*3 matrix with values as 0 and 1.


torch.tensor(data, dtype=None, device=None, requires_grad=False, pin_memory=False)


import torch tensor_b = torch.Tensor([[0,0,0], [1,1,1]]) tensor_b


2. Create n*m tensor from random function in the torch.


torch.randn(data_size, dtype=input.dtype, layout=input.layout, device=input.device)


import torch tensor_a = torch.rand((3, 3)) tensor_a


3. Creating a tensor from numerical types using functions such as ones and zeros.

torch.zeros(data_size, dtype=input.dtype, layout=input.layout, device=input.device)


tensor_d = torch.zeros(3, 3) tensor_d


In the above, tensor .zeros() is used to create a 3*3 matrix with all the values as ‘0’ (zero).

4. Creating a PyTorch tensor from the numpy tensor.

To create a tensor from numpy, create an array using numpy and then convert it to tensor using the .as_tensor keyword.


torch.as_tensor(data, dtype=None, device=None)


import numpy arr = numpy.array([0, 1, 2, 4]) tensor_e = torch.as_tensor(arr) tensor_e


Here is the basic tensor operation to perform the matrix product and get a new tensor.


tensor_e = torch.Tensor([[1, 2], [7, 8]]) tensor_f = torch.Tensor([[10], [20]]) tensor_mat = tensor_mat



Here is the list and information on parameters used in syntax:

data: Data for tensors.

dtype: Datatype of the returned tensor.

device: Device used is CPU or CUDA device with returned tensor.

requires_grad: It is a boolean data type with values as True or False to record automatic gradient on returned tensor.

data_size: Data shape of the input tensor.

pin_memory: If the pin_memory is set to Truly returned tensor will have pinned memory.

See below jupyter notebook for the above operation to create tensors.

Importance of Tensors in PyTorch

Tensor is the building block of the PyTorch libraries with a matrix-like structure. Tensors are important in PyTorch framework as it supports to perform a mathematical operation on the data.

Following are some of the key important points of tensors in PyTorch:

Tensors are important in the PyTorch as it is a fundamental data structure and all the neural network models are built using tensors as it has the ability to perform linear algebra operations

Tensors are similar to numpy arrays, but they are way more powerful than the numpy array as They perform their computation GPU or CPU. Hence, It is way more faster than the numpy library of python.

It offers seamless interoperability with Python libraries so that the programmer can easily use Sci-kit, SciPy libraries with tensors. Also, using functions like as_tensors or from_numpy programmer can easily convert the numpy array to PyTorch tensors.

One of the important features offered by tensor is it can store track of all the operations performed on them, which helps to compute the gradient descent of output; this can be done using Autograd functionality of tensors.

It is a multi-dimensional array which holds data for Images that can be converted into a 3-dimensional array based on its color like RGB (Red, Green and Blue); also, it holds Audio data or Time series data; any unstructured data can be addressed using tensors.


To learn PyTorch framework for building deep learning models for computer vision, Natural language processing or reinforcement learning. In the above tutorial, a programmer can get an idea of how useful and simple it is to learn and implement tensors in PyTorch. Of course, tensors can be used in PyTorch as well as Tensorflow. Still, the basic idea behind using tensors stays the same: using GPU or CPU with Cuda cores to process data faster which one framework to use for building models is developers decisions. Still, the above articles give a clear idea about tensor in the PyTorch.

Recommended Articles

We hope that this EDUCBA information on “PyTorch Tensors” was beneficial to you. You can view EDUCBA’s recommended articles for more information.

Update the detailed information about Complete Guide On Independent Director on the website. We hope the article's content will meet your needs, and we will regularly update the information to provide you with the fastest and most accurate information. Have a great day!